From 5aeed09cfb44c99337d79f18eee7486a357a4708 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 3 Jul 2018 11:29:12 +0200 Subject: [PATCH] Merge translations from 3.6. --- bugs.po | 2 +- c-api/abstract.po | 2 +- c-api/arg.po | 12 +- c-api/bytearray.po | 9 +- c-api/code.po | 19 +- c-api/complex.po | 2 +- c-api/concrete.po | 6 +- c-api/coro.po | 13 +- c-api/descriptor.po | 9 +- c-api/exceptions.po | 8 +- c-api/gen.po | 6 +- c-api/import.po | 2 +- c-api/index.po | 2 +- c-api/intro.po | 2 +- c-api/iter.po | 13 +- c-api/iterator.po | 7 +- c-api/method.po | 2 +- c-api/none.po | 11 +- c-api/objbuffer.po | 19 +- c-api/stable.po | 33 +- c-api/type.po | 2 +- c-api/typeobj.po | 2 +- distributing/index.po | 4 +- distutils/apiref.po | 6 +- distutils/builtdist.po | 80 +- distutils/commandref.po | 10 +- distutils/index.po | 18 +- distutils/setupscript.po | 2 +- distutils/sourcedist.po | 23 +- extending/building.po | 25 +- extending/embedding.po | 18 +- extending/extending.po | 18 +- extending/index.po | 41 +- extending/windows.po | 105 ++- faq/design.po | 30 +- faq/extending.po | 2 +- faq/general.po | 6 +- faq/gui.po | 2 +- faq/library.po | 2 +- faq/programming.po | 70 +- faq/windows.po | 13 + glossary.po | 999 ++++++++++----------- howto/argparse.po | 92 +- howto/clinic.po | 203 ++++- howto/descriptor.po | 4 +- howto/functional.po | 4 +- howto/regex.po | 189 +++- howto/sorting.po | 140 ++- howto/unicode.po | 2 +- install/index.po | 11 +- installing/index.po | 10 +- library/2to3.po | 8 +- library/__main__.po | 12 +- library/_dummy_thread.po | 2 +- library/_thread.po | 4 +- library/allos.po | 2 +- library/archiving.po | 2 +- library/argparse.po | 6 +- library/array.po | 16 +- library/ast.po | 4 +- library/asyncio-dev.po | 4 +- library/asyncio-eventloop.po | 2 +- library/asyncio-queue.po | 2 +- library/asyncio-stream.po | 2 +- library/asyncio-subprocess.po | 5 +- library/asyncio-task.po | 4 +- library/atexit.po | 2 +- library/base64.po | 2 +- library/binary.po | 11 +- library/bisect.po | 50 +- library/cgitb.po | 39 +- library/chunk.po | 2 +- library/cmd.po | 4 +- library/collections.abc.po | 2 +- library/colorsys.po | 28 +- library/concurrency.po | 4 +- library/configparser.po | 2 +- library/constants.po | 2 + library/contextlib.po | 2 + library/crypto.po | 4 +- library/custominterp.po | 10 +- library/datatypes.po | 11 +- library/datetime.po | 10 +- library/development.po | 2 +- library/distutils.po | 33 +- library/doctest.po | 2 +- library/dummy_threading.po | 2 +- library/email-examples.po | 14 +- library/email.iterators.po | 35 +- library/exceptions.po | 369 +++++++- library/filesys.po | 13 +- library/fractions.po | 74 +- library/frameworks.po | 7 +- library/functional.po | 7 +- library/functions.po | 10 +- library/functools.po | 30 +- library/getpass.po | 8 +- library/html.entities.po | 19 +- library/html.po | 23 +- library/i18n.po | 8 +- library/index.po | 23 +- library/internet.po | 2 +- library/intro.po | 40 +- library/io.po | 2 +- library/ipc.po | 10 +- library/itertools.po | 2 +- library/json.po | 14 +- library/keyword.po | 10 +- library/language.po | 7 +- library/linecache.po | 34 +- library/macpath.po | 12 +- library/mailbox.po | 2 +- library/misc.po | 4 +- library/mm.po | 4 +- library/modules.po | 7 +- library/numeric.po | 11 +- library/optparse.po | 2 +- library/os.po | 28 +- library/pdb.po | 277 +++++- library/persistence.po | 11 +- library/pipes.po | 40 +- library/platform.po | 2 +- library/pty.po | 32 +- library/pyclbr.po | 2 +- library/queue.po | 23 +- library/quopri.po | 25 +- library/re.po | 129 ++- library/runpy.po | 2 +- library/site.po | 2 +- library/smtpd.po | 2 +- library/sndhdr.po | 27 +- library/socket.po | 2 +- library/sqlite3.po | 4 +- library/statistics.po | 2 +- library/stdtypes.po | 150 ++-- library/string.po | 8 +- library/struct.po | 2 +- library/subprocess.po | 10 +- library/sunau.po | 2 +- library/superseded.po | 2 +- library/symbol.po | 15 +- library/sys.po | 115 +-- library/text.po | 8 +- library/time.po | 2 +- library/tk.po | 21 +- library/tkinter.po | 2 +- library/tkinter.scrolledtext.po | 21 +- library/tkinter.ttk.po | 2 +- library/token.po | 3 + library/tokenize.po | 24 +- library/tracemalloc.po | 2 +- library/tty.po | 18 +- library/types.po | 3 +- library/undoc.po | 18 +- library/urllib.error.po | 27 +- library/urllib.po | 14 +- library/urllib.robotparser.po | 25 +- library/uu.po | 19 +- library/webbrowser.po | 2 +- library/windows.po | 4 +- library/xdrlib.po | 2 +- library/xml.dom.po | 19 +- library/xml.etree.elementtree.po | 2 +- library/xml.po | 6 +- library/xml.sax.po | 108 ++- library/xmlrpc.po | 8 +- license.po | 22 +- reference/compound_stmts.po | 382 +++++++- reference/datamodel.po | 1397 ++++++++++++++++++++++++++++-- reference/executionmodel.po | 162 +++- reference/expressions.po | 874 +++++++++++++++++-- reference/grammar.po | 5 +- reference/import.po | 676 ++++++++++++++- reference/index.po | 10 +- reference/introduction.po | 103 ++- reference/lexical_analysis.po | 406 +++++++-- reference/simple_stmts.po | 458 +++++++++- reference/toplevel_components.po | 53 +- sphinx.po | 52 +- tutorial/appendix.po | 91 +- tutorial/appetite.po | 120 +-- tutorial/classes.po | 641 +++++++------- tutorial/controlflow.po | 191 ++-- tutorial/datastructures.po | 228 ++--- tutorial/errors.po | 172 ++-- tutorial/floatingpoint.po | 178 ++-- tutorial/index.po | 51 +- tutorial/inputoutput.po | 241 +++--- tutorial/interactive.po | 37 +- tutorial/interpreter.po | 71 +- tutorial/introduction.po | 198 +++-- tutorial/modules.po | 357 ++++---- tutorial/stdlib.po | 127 +-- tutorial/stdlib2.po | 213 ++--- tutorial/venv.po | 48 +- tutorial/whatnow.po | 87 +- using/cmdline.po | 322 +++++-- using/index.po | 2 +- using/mac.po | 2 +- whatsnew/2.3.po | 2 +- whatsnew/2.5.po | 2 +- whatsnew/2.6.po | 4 +- whatsnew/3.1.po | 4 +- whatsnew/3.2.po | 4 +- whatsnew/3.3.po | 4 +- whatsnew/3.4.po | 2 +- whatsnew/3.5.po | 3 + 207 files changed, 9465 insertions(+), 3225 deletions(-) diff --git a/bugs.po b/bugs.po index 8b8b12a4..359c6a0d 100644 --- a/bugs.po +++ b/bugs.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/bugs.rst:5 msgid "Dealing with Bugs" -msgstr "S'attaquer aux Bugs" +msgstr "S'attaquer aux bugs" #: ../Doc/bugs.rst:7 msgid "" diff --git a/c-api/abstract.po b/c-api/abstract.po index 21078546..1e6b6988 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/abstract.rst:7 msgid "Abstract Objects Layer" -msgstr "Couche d'Abstraction des Objets" +msgstr "Couche d'abstraction des objets" #: ../Doc/c-api/abstract.rst:9 msgid "" diff --git a/c-api/arg.po b/c-api/arg.po index e28f9667..e2972e02 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -103,7 +103,7 @@ msgstr "" "remplissage, le buffer sous-jacent est verrouillé pour permettre à " "l'appelant d'utiliser le buffer par la suite, même à l'intérieur d'un bloc :" "c:type:`Py_BEGIN_ALLOW_THREADS`. Ceci sans le risque pour les données " -"mutables de voir leur taille changée ou d'être supprimées. En conséquence, " +"muables de voir leur taille changée ou d'être supprimées. En conséquence, " "**il vous appartient d'appeler** :c:func:`PyBuffer_Release` après que vous " "ayez terminé de traiter les données (ou après une interruption prémataturée " "du traitement de ces données)." @@ -661,7 +661,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:303 msgid "Other objects" -msgstr "Autres Objets" +msgstr "Autres objets" #: ../Doc/c-api/arg.rst:308 ../Doc/c-api/arg.rst:627 msgid "``O`` (object) [PyObject \\*]" @@ -752,7 +752,7 @@ msgstr "" "L'objet doit être une séquence Python dont la longueur est le nombre " "d'unités de formats dans *articles*. Les arguments C doivent correspondre à " "chaque unité de format particulière dans *articles*. Les unités de formats " -"pour les séquences peuvent être imbriquées. " +"pour les séquences peuvent être imbriquées." #: ../Doc/c-api/arg.rst:356 msgid "" @@ -773,7 +773,7 @@ msgstr "" #: ../Doc/c-api/arg.rst:370 msgid "``|``" -msgstr "" +msgstr "``|``" #: ../Doc/c-api/arg.rst:366 msgid "" @@ -819,7 +819,7 @@ msgid "" msgstr "" "La liste des unités de format s'arrête ici ; la chaîne après le point-" "virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " -"défaut. ``:`` et ``;`` sont mutuellement exclusifs. " +"défaut. ``:`` et ``;`` sont mutuellement exclusifs." #: ../Doc/c-api/arg.rst:391 msgid "" @@ -828,7 +828,7 @@ msgid "" msgstr "" "Notez que n'importe quelles références sur un objet Python qui sont données " "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références ! " +"compteur de références !" #: ../Doc/c-api/arg.rst:394 msgid "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 7f2883fb..066a19bf 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/bytearray.rst:6 msgid "Byte Array Objects" -msgstr "Objets Tableau d'Octets" +msgstr "Objets tableau d'octets" #: ../Doc/c-api/bytearray.rst:13 msgid "" @@ -31,6 +31,8 @@ msgid "" "This instance of :c:type:`PyTypeObject` represents the Python bytearray " "type; it is the same object as :class:`bytearray` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." #: ../Doc/c-api/bytearray.rst:23 msgid "Type check macros" @@ -61,6 +63,8 @@ msgid "" "Return a new bytearray object from any object, *o*, that implements the :ref:" "`buffer protocol `." msgstr "" +"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui " +"implémente le :ref:`protocole buffer `." #: ../Doc/c-api/bytearray.rst:50 msgid "" @@ -88,6 +92,9 @@ msgid "" "Return the contents of *bytearray* as a char array after checking for a " "*NULL* pointer. The returned array always has an extra null byte appended." msgstr "" +"Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " +"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine " +"toujours par un octet *null*." #: ../Doc/c-api/bytearray.rst:73 msgid "Resize the internal buffer of *bytearray* to *len*." diff --git a/c-api/code.po b/c-api/code.po index e47c417c..71ad1eb1 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/code.rst:8 msgid "Code Objects" -msgstr "Objets Code" +msgstr "Objets code" #: ../Doc/c-api/code.rst:12 msgid "" @@ -26,7 +26,7 @@ msgid "" "represents a chunk of executable code that hasn't yet been bound into a " "function." msgstr "" -"Les objets Code sont un détail bas-niveau de l'implémentation CPython. " +"Les objets *Code* sont spécifiques à l'implémentation bas niveau de CPython. " "Chacun d'eux représente une partie de code exécutable, qui n'a pas encore " "été lié dans une fonction." @@ -35,20 +35,24 @@ msgid "" "The C structure of the objects used to describe code objects. The fields of " "this type are subject to change at any time." msgstr "" +"La structure C utilisée pour décrire les objets *Code*. Les attributs de " +"cette structure sont sujets à changer à tout moment." #: ../Doc/c-api/code.rst:24 msgid "" "This is an instance of :c:type:`PyTypeObject` representing the Python :class:" "`code` type." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." #: ../Doc/c-api/code.rst:30 msgid "Return true if *co* is a :class:`code` object." -msgstr "" +msgstr "Renvoie vrai si *co* est un objet :class:`code`." #: ../Doc/c-api/code.rst:34 msgid "Return the number of free variables in *co*." -msgstr "" +msgstr "Renvoie le nombre de variables libres dans *co*." #: ../Doc/c-api/code.rst:38 msgid "" @@ -57,6 +61,10 @@ msgid "" "directly can bind you to a precise Python version since the definition of " "the bytecode changes often." msgstr "" +"Renvoie un nouvel objet *code*. Si vous avez besoin d'un objet code factice " +"pour créer une *frame*, utilisez plutôt :c:func:`PyCode_NewEmpty`. Appeler :" +"c:func:`PyCode_New` peut vous lier directement à une version spécifique de " +"Python, le *bytecode* étant sujet à modifications." #: ../Doc/c-api/code.rst:46 msgid "" @@ -64,3 +72,6 @@ msgid "" "and first line number. It is illegal to :func:`exec` or :func:`eval` the " "resulting code object." msgstr "" +"Renvoie un nouvel objet *code* avec le nom de fichier, le nom de fonction, " +"et le numéro de première ligne donnés. Il n'est pas permis d'utiliser :func:" +"`exec` ou :func:`eval` sur l'objet renvoyé." diff --git a/c-api/complex.po b/c-api/complex.po index 8094f4fd..c7c6606f 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/complex.rst:6 msgid "Complex Number Objects" -msgstr "Objets Nombres Complexes" +msgstr "Objets nombres complexes" #: ../Doc/c-api/complex.rst:10 msgid "" diff --git a/c-api/concrete.po b/c-api/concrete.po index 4a45a2b6..ad488e28 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/concrete.rst:8 msgid "Concrete Objects Layer" -msgstr "Couche des Objets Concrets" +msgstr "Couche des objets concrets" #: ../Doc/c-api/concrete.rst:10 msgid "" @@ -80,7 +80,7 @@ msgstr "" #: ../Doc/c-api/concrete.rst:78 msgid "Container Objects" -msgstr "Objets Conteneurs" +msgstr "Objets conteneurs" #: ../Doc/c-api/concrete.rst:91 msgid "Function Objects" @@ -88,4 +88,4 @@ msgstr "Objets fonctions" #: ../Doc/c-api/concrete.rst:102 msgid "Other Objects" -msgstr "Autres Objets" +msgstr "Autres objets" diff --git a/c-api/coro.po b/c-api/coro.po index 1d8d7133..56a460a6 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -18,25 +18,28 @@ msgstr "" #: ../Doc/c-api/coro.rst:6 msgid "Coroutine Objects" -msgstr "" +msgstr "Objets coroutines" #: ../Doc/c-api/coro.rst:10 msgid "" "Coroutine objects are what functions declared with an ``async`` keyword " "return." msgstr "" +"Les objets coroutines sont les objets renvoyés par les fonctions déclarées " +"avec le mot clef ``async``." #: ../Doc/c-api/coro.rst:16 msgid "The C structure used for coroutine objects." -msgstr "" +msgstr "La structure C utilisée pour les objets coroutine." #: ../Doc/c-api/coro.rst:21 msgid "The type object corresponding to coroutine objects." -msgstr "" +msgstr "L'objet type correpondant aux objets coroutines." #: ../Doc/c-api/coro.rst:26 msgid "Return true if *ob*'s type is *PyCoro_Type*; *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type *PyCoro_Type*. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/coro.rst:31 msgid "" @@ -45,3 +48,7 @@ msgid "" "to *frame* is stolen by this function. The *frame* argument must not be " "*NULL*." msgstr "" +"Crée et renvoie un nouvel objet coroutine basé sur l'objet *frame*, avec " +"``__name__`` et ``__qualname__`` respectivement assignés de *name* et " +"*qualname*. Une référence à *frame* est empruntée par cette fonction. " +"L'argument *frame* ne doit pas être *NULL*." diff --git a/c-api/descriptor.po b/c-api/descriptor.po index cd8a7057..9add9a48 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -18,17 +18,19 @@ msgstr "" #: ../Doc/c-api/descriptor.rst:6 msgid "Descriptor Objects" -msgstr "" +msgstr "Les descripteurs" #: ../Doc/c-api/descriptor.rst:8 msgid "" "\"Descriptors\" are objects that describe some attribute of an object. They " "are found in the dictionary of type objects." msgstr "" +"Les \"Descripteurs\" sont des objets décrivant des attributs pour un objet. " +"Ils se trouvent dans le dictionnaire du type de l'objet." #: ../Doc/c-api/descriptor.rst:15 msgid "The type object for the built-in descriptor types." -msgstr "" +msgstr "L'objet *type* des descripteurs natifs." #: ../Doc/c-api/descriptor.rst:35 msgid "" @@ -36,3 +38,6 @@ msgid "" "false if it describes a method. *descr* must be a descriptor object; there " "is no error checking." msgstr "" +"Renvoie vrai si le descripteur *descr* décrit un attribut de donnée, ou faux " +"s'il décrit une méthode. *descr* doit être un objet descripteur. Il n'y a " +"pas de vérification d'erreur." diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 7f6c2bc3..f3b15709 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -551,7 +551,7 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:544 msgid "Exception Objects" -msgstr "Objets Exception" +msgstr "Objets exception" #: ../Doc/c-api/exceptions.rst:548 msgid "" @@ -602,7 +602,7 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:593 msgid "Unicode Exception Objects" -msgstr "Objets Exception Unicode" +msgstr "Objets exception unicode" #: ../Doc/c-api/exceptions.rst:595 msgid "" @@ -1163,11 +1163,11 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:899 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/c-api/exceptions.rst:902 msgid "This is a base class for other standard exceptions." -msgstr "C'est la classe de base pour les autres exceptions standards" +msgstr "C'est la classe de base pour les autres exceptions standards." #: ../Doc/c-api/exceptions.rst:905 msgid "This is the same as :exc:`weakref.ReferenceError`." diff --git a/c-api/gen.po b/c-api/gen.po index 4b9a6aaf..55aa9a03 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/gen.rst:6 msgid "Generator Objects" -msgstr "Objets Générateur" +msgstr "Objets générateur" #: ../Doc/c-api/gen.rst:8 msgid "" @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/c-api/gen.rst:15 msgid "The C structure used for generator objects." -msgstr "La structure C utilisée pour les objets générateurs" +msgstr "La structure C utilisée pour les objets générateurs." #: ../Doc/c-api/gen.rst:20 msgid "The type object corresponding to generator objects." @@ -60,7 +60,7 @@ msgid "" msgstr "" "Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*. Une " "référence à *frame* est volée par cette fonction. L'argument ne doit pas " -"être *NULL*" +"être *NULL*." #: ../Doc/c-api/gen.rst:41 msgid "" diff --git a/c-api/import.po b/c-api/import.po index 0417b6f3..d67a86cb 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/import.rst:6 msgid "Importing Modules" -msgstr "" +msgstr "Importer des modules" #: ../Doc/c-api/import.rst:16 msgid "" diff --git a/c-api/index.po b/c-api/index.po index 1ae906c7..4e7d3957 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/index.rst:5 msgid "Python/C API Reference Manual" -msgstr "Manuel de Référence de l'API Python/c" +msgstr "Manuel de référence de l'API Python/C" #: ../Doc/c-api/index.rst:7 msgid "" diff --git a/c-api/intro.po b/c-api/intro.po index 86830fc6..7bbf53cf 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -359,7 +359,7 @@ msgstr "" #: ../Doc/c-api/intro.rst:368 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/c-api/intro.rst:370 msgid "" diff --git a/c-api/iter.po b/c-api/iter.po index 645e954b..eb3d2315 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -18,15 +18,15 @@ msgstr "" #: ../Doc/c-api/iter.rst:6 msgid "Iterator Protocol" -msgstr "" +msgstr "Protocole d'itération" #: ../Doc/c-api/iter.rst:8 msgid "There are two functions specifically for working with iterators." -msgstr "" +msgstr "Il existe deux fonctions dédiées à l'interaction avec les itérateurs." #: ../Doc/c-api/iter.rst:12 msgid "Return true if the object *o* supports the iterator protocol." -msgstr "" +msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération." #: ../Doc/c-api/iter.rst:17 msgid "" @@ -35,9 +35,16 @@ msgid "" "values, returns *NULL* with no exception set. If an error occurs while " "retrieving the item, returns *NULL* and passes along the exception." msgstr "" +"Renvoie la valeur suivante d'une itération de *o*. L'objet doit être un " +"itérateur (c'est à l'appelant de faire cette vérification). Renvoie *NULL* " +"s'il n'y a plus de valeurs, sans déclarer d'exception. Renvoie *NULL* en " +"déclarant une exception si une erreur survient lors de la récupération d'un " +"élément." #: ../Doc/c-api/iter.rst:22 msgid "" "To write a loop which iterates over an iterator, the C code should look " "something like this::" msgstr "" +"Pour écrire une boucle itérant un itérateur, le code C devrait ressembler " +"à : ::" diff --git a/c-api/iterator.po b/c-api/iterator.po index cc35b449..e263e757 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/iterator.rst:6 msgid "Iterator Objects" -msgstr "" +msgstr "Itérateurs" #: ../Doc/c-api/iterator.rst:8 msgid "" @@ -28,6 +28,11 @@ msgid "" "sentinel value, calling the callable for each item in the sequence, and " "ending the iteration when the sentinel value is returned." msgstr "" +"Python fournit deux itérateurs génériques. Le premier est un itérateur de " +"séquence, il fonctionne avec n'importe quelle séquence gérant la méthode :" +"meth:`__getitem__`. Le second fonctionne avec un objet appelable et une " +"valeur sentinelle, il appelle l'appelable pour obtenir chaque élément de la " +"séquence, et l'itération se termine lorsque la sentinelle est reçue." #: ../Doc/c-api/iterator.rst:17 msgid "" diff --git a/c-api/method.po b/c-api/method.po index 7a3df545..1df77760 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -58,7 +58,7 @@ msgstr "" #: ../Doc/c-api/method.rst:47 msgid "Method Objects" -msgstr "Les objets méthode" +msgstr "Objets méthode" #: ../Doc/c-api/method.rst:51 msgid "" diff --git a/c-api/none.po b/c-api/none.po index 51fbd9b3..2e7a5684 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/none.rst:6 msgid "The ``None`` Object" -msgstr "" +msgstr "L'objet ``None``" #: ../Doc/c-api/none.rst:10 msgid "" @@ -27,6 +27,10 @@ msgid "" "identity (using ``==`` in C) is sufficient. There is no :c:func:" "`PyNone_Check` function for the same reason." msgstr "" +"Notez que le :c:type:`PyTypeObject` de ``None`` n'est pas directement exposé " +"via l'API Python/C. Puisque ``None`` est un singleton, tester son identité " +"(en utilisant ``==`` en C) est suffisant. Il n'existe pas de fonction :c:" +"func:`PyNone_Check` pour la même raison." #: ../Doc/c-api/none.rst:18 msgid "" @@ -34,9 +38,14 @@ msgid "" "methods. It needs to be treated just like any other object with respect to " "reference counts." msgstr "" +"L'objet Python ``None``, exprimant l'absence de valeur. Cet objet n'a " +"aucune méthode. Il doit être traité exactement comme les autres objets en " +"terme de comptage de références." #: ../Doc/c-api/none.rst:25 msgid "" "Properly handle returning :c:data:`Py_None` from within a C function (that " "is, increment the reference count of ``None`` and return it.)" msgstr "" +"Renvoie, de la bonne manière, :c:data:`Py_None` depuis une fonction C (c'est " +"à dire en incrémentant les références à ``None`` avant de le donner)." diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index b0b1511d..f7161663 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/objbuffer.rst:4 msgid "Old Buffer Protocol" -msgstr "" +msgstr "Ancien *Buffer Protocol*" #: ../Doc/c-api/objbuffer.rst:8 msgid "" @@ -29,6 +29,12 @@ msgid "" "you control over the lifetime of the resources acquired when a buffer is " "exported." msgstr "" +"Ces fonctions faisaient partie de l'API de l'ancien protocol de tampons dans " +"Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions sont " +"toujours exposées pour simplifier le portage de code Python 2.x. Elles se " +"comportent comme une abstraction de compatibilité du :ref:`nouveau protocole " +"de tampons `, mais sans vous donner de contrôle sur la durée " +"de vie des resources acquises lorsqu'un tampon est exporté." #: ../Doc/c-api/objbuffer.rst:15 msgid "" @@ -37,6 +43,10 @@ msgid "" "`PyArg_ParseTuple` family of functions) to get a buffer view over an object, " "and :c:func:`PyBuffer_Release` when the buffer view can be released." msgstr "" +"Il est donc recommandé d'appeler :c:func:`PyObject_GetBuffer` (ou les :ref:" +"`codes ` ``y*`` ou ``w*`` à la famille de fonctions :c:func:" +"`PyArg_ParseTuple`) pour obtenir une vue d'un tampon sur un objet, et :c:" +"func:`PyBuffer_Release` lorsque la vue peut être libérée." #: ../Doc/c-api/objbuffer.rst:23 msgid "" @@ -61,6 +71,8 @@ msgid "" "Returns ``1`` if *o* supports the single-segment readable buffer interface. " "Otherwise returns ``0``." msgstr "" +"Renvoie ``1`` si *o* gère l'interface *single-segment readable buffer*, " +"``0`` sinon." #: ../Doc/c-api/objbuffer.rst:47 msgid "" @@ -69,3 +81,8 @@ msgid "" "``0``, sets *buffer* to the memory location and *buffer_len* to the buffer " "length. Returns ``-1`` and sets a :exc:`TypeError` on error." msgstr "" +"Renvoie un pointeur vers un espace mémoire dans lequel il est possible " +"décrire. L'argument *obj* doit gérer l'interface *single-segment, character " +"buffer*. Si tout s'est bien passé, ``0`` est renvoyé, *buffer* pointe vers " +"l'espace mémoire, et *buffer_len* vaudra la taille du buffer. Renvoie ``-1`` " +"et met l'exception :exc:`TypeError` en cas d'erreur." diff --git a/c-api/stable.po b/c-api/stable.po index 1ba0a2cb..aa5de72c 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/stable.rst:7 msgid "Stable Application Binary Interface" -msgstr "" +msgstr "ABI Stable" #: ../Doc/c-api/stable.rst:9 msgid "" @@ -27,6 +27,10 @@ msgid "" "changing existing API or removing API (although some interfaces do get " "removed after being deprecated first)." msgstr "" +"L'API C de Python change à chaque version. La majorité de ces changement " +"n'affecte cependant pas la compatibilité du code source. Typiquement, des " +"API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines " +"interfaces puissent être supprimées, après avoir d'abord été dépréciées)." #: ../Doc/c-api/stable.rst:14 msgid "" @@ -39,6 +43,15 @@ msgid "" "addition, on Windows, extension modules link with a specific pythonXY.dll " "and need to be recompiled to link with a newer one." msgstr "" +"Malheureusement, la compatibilité de l'API ne s'étend pas à une " +"compatibilité binaire (l'ABI). L'évolution des structures en est la raison " +"principale : l'ajout de nouveaux attributs, ou le changement du type d'un " +"attribut peut ne pas casser l'API mais casser l'ABI. Par conséquent, les " +"modules d'extension doivent être recompilés à chaque nouvelle version de " +"Python (ce n'est exceptionnellement pas nécessaire sur Unix, si aucune des " +"interfaces modifiées n'est utilisée). De plus, sous Windows, les modules " +"d'extension sont liés à un *pythonXY.dll* spécifique, ils est donc " +"nécessaire de les recompiler pour les lier au nouveau DLL." #: ../Doc/c-api/stable.rst:23 msgid "" @@ -48,6 +61,12 @@ msgid "" "become hidden from the extension module; in return, a module is built that " "works on any 3.x version (x>=2) without recompilation." msgstr "" +"Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera une " +"ABI stable. Les modules d'extension souhaitant utiliser cette API (Appellée " +"\"API limitée\") doivent définir ``Py_LIMITED_API``. Des spécificités de " +"l'interpréteur sont alors cachées au module, en contrepartie le module " +"devient compatible avec toutes les versions de Python 3.x (x>=2) sans " +"recompilation." #: ../Doc/c-api/stable.rst:29 msgid "" @@ -59,6 +78,14 @@ msgid "" "Python releases, but fail to load (because of missing symbols) on the older " "releases." msgstr "" +"Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de " +"nouvelles fonctions. Les modules d'extension souhaitant utiliser ces " +"nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur " +"``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python qu'ils " +"souhaitent supporter (voir :ref:`apiabiversion`, par exemple ``0x03030000`` " +"pour Python 3.3). De tels modules fonctionneront dans toutes les versions " +"ultérieures de Python, mais ne pourront pas se charger (dû à des symboles " +"manquants) sur les versions plus anciennes." #: ../Doc/c-api/stable.rst:36 msgid "" @@ -66,3 +93,7 @@ msgid "" "documented in :pep:`384`. In the C API documentation, API elements that are " "not part of the limited API are marked as \"Not part of the limited API.\"" msgstr "" +"Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée est " +"documentée dans la :pep:`384`. Dans la documentation de l'API C, les " +"éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant pas " +"partie de l'API limitée\" (*\"Not part of the limited API\"*)." diff --git a/c-api/type.po b/c-api/type.po index b6a4633a..58621cc0 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/type.rst:6 msgid "Type Objects" -msgstr "Objets Type" +msgstr "Objets type" #: ../Doc/c-api/type.rst:13 msgid "The C structure of the objects used to describe built-in types." diff --git a/c-api/typeobj.po b/c-api/typeobj.po index faaa01d5..03c10f1d 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:6 msgid "Type Objects" -msgstr "Objets Type" +msgstr "Objets type" #: ../Doc/c-api/typeobj.rst:8 msgid "" diff --git a/distributing/index.po b/distributing/index.po index 5e862508..bb41b225 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/distributing/index.rst:5 msgid "Distributing Python Modules" -msgstr "Distribuer des Modules Python" +msgstr "Distribuer des modules Python" #: ../Doc/distributing/index.rst:7 msgid "distutils-sig@python.org" @@ -246,7 +246,7 @@ msgid "" "The Python Packaging User Guide includes more details on the `currently " "recommended tools`_." msgstr "" -" Le *Python Packaging User Guide* contient plus de détails sur les `(en) " +"Le *Python Packaging User Guide* contient plus de détails sur les `(en) " "outils actuellement recommandés `_." #: ../Doc/distributing/index.rst:117 diff --git a/distutils/apiref.po b/distutils/apiref.po index e01afab6..56223712 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -458,7 +458,7 @@ msgstr "" "des slashs) dans un souci de portabilité. Les fichiers de code source " "peuvent être du C, C++, SWIG (.i), des fichiers de ressources spécifiques à " "la plateforme ou tout autre reconnu par la commande :command:`build_ext` " -"comme source d'une extension Python" +"comme source d'une extension Python." #: ../Doc/distutils/apiref.rst:196 msgid "*include_dirs*" @@ -660,7 +660,7 @@ msgstr "" #: ../Doc/distutils/apiref.rst:334 msgid "Determine the default compiler to use for the given platform." msgstr "" -"Détermine le compilateur par défaut a utiliser par une plateforme donnée" +"Détermine le compilateur par défaut a utiliser par une plateforme donnée." #: ../Doc/distutils/apiref.rst:336 msgid "" @@ -1337,7 +1337,7 @@ msgstr "" #: ../Doc/distutils/apiref.rst:879 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/apiref.rst:885 msgid "" diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 533f1b9a..f005060a 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:5 msgid "Creating Built Distributions" -msgstr "Créer une Distribution Compilée" +msgstr "Créer une distribution compilée" #: ../Doc/distutils/builtdist.rst:7 msgid "" @@ -32,8 +32,8 @@ msgstr "" "Une \"distribution compilée\" vous fait surement penser à un \"paquet binaire" "\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est " "cependant pas forcément un binaire, il peut ne contenir que des sources " -"Python et/ou du byte-code; et nous n'appelons pas ça un *package* parce que " -"ce mot est déjà utiliseé dans Python (et \"installateur\" est un terme " +"Python et / ou du *byte-code* ; et nous n'appelons pas ça un *package* parce " +"que ce mot est déjà utilisée dans Python (et \"installateur\" est un terme " "spécifique au monde des systèmes de bureau). " #: ../Doc/distutils/builtdist.rst:14 @@ -50,10 +50,10 @@ msgid "" "as there are packagers." msgstr "" "Une distribution compilée est une manière de rendre la vie plus facile à " -"ceux qui installent votre module: pour les utilisateurs de système Linux " -"basé sur RPM, ce sera des binaire RPM; pour les utilisateurs de Windows, " -"c'est un installateur exécutable; pour les utilisateurs de Linux basé sur " -"Debian, c'est un paquet Debian; et ainsi de suite. Évidemment, personne " +"ceux qui installent votre module : pour les utilisateurs de système Linux " +"basé sur RPM, ce sera des binaire RPM ; pour les utilisateurs de Windows, " +"c'est un installateur exécutable ; pour les utilisateurs de Linux basé sur " +"Debian, c'est un paquet Debian ; et ainsi de suite. Évidemment, personne " "n'est capable de créer une distribution compilée pour toute les plateformes " "existantes, donc Distutils est fait pour permettre aux développeurs de se " "concentrer sur leurs spécialités---écrire du code et créer des distribution " @@ -70,13 +70,13 @@ msgid "" "are, a packager uses the setup script and the :command:`bdist` command " "family to generate built distributions." msgstr "" -"Bien sur, le développeur du module peut être son propre *packager*; ou le " +"Bien sur, le développeur du module peut être son propre *packager* ; ou le " "*packager* peut être un volontaire \"quelque part\" qui a accès à une " -"plateforme que le développeur initial n'a pas; ou bien un logiciel qui prend " -"les sources périodiquement et les transforme en une distribution compilée " -"pour autant de plateforme que le logiciel a accès. Peu importe qui ils " -"sont, les *packagers* utilisent ``setup.py`` et la command :command:`bdist` " -"afin de générer une distribution compilée." +"plateforme que le développeur initial n'a pas ; ou bien un logiciel qui " +"prend les sources périodiquement et les transforme en une distribution " +"compilée pour autant de plateforme que le logiciel a accès. Peu importe qui " +"ils sont, les *packagers* utilisent ``setup.py`` et la commande :command:" +"`bdist` afin de générer une distribution compilée." #: ../Doc/distutils/builtdist.rst:32 msgid "" @@ -84,7 +84,7 @@ msgid "" "tree::" msgstr "" "Pour prendre un exemple simple, si je lance la commande suivante dans les " -"sources de Distutils ::" +"sources de Distutils ::" #: ../Doc/distutils/builtdist.rst:37 msgid "" @@ -115,12 +115,12 @@ msgid "" "distributions relative to :file:`{prefix}`.)" msgstr "" "Par conséquent, la commande si dessus crée le fichier :file:`Distutils-1.0." -"{plat}.tar.gz` sur les systèmes Unix; décompresser cette tarball au bon " +"{plat}.tar.gz` sur les systèmes Unix ; décompresser cette archive tar au bon " "endroit installe Distutils exactement comme si vous aviez téléchargé la " "distribution source et lancé ``python setup.py install`` (le \"bon endroit\" " "est soit la racine du système de fichier, ou le dossier de Python :file:" "`{prefix}`, tout dépend des options données à la commande :command:" -"`bdist_dumb` ;la valeur par défaut est de créer une distribution \"bête\" " +"`bdist_dumb` ; la valeur par défaut est de créer une distribution \"bête\" " "relative à :file:`{prefix}`)." #: ../Doc/distutils/builtdist.rst:52 @@ -155,13 +155,13 @@ msgid "" "---again, this archive would be unpacked from the root directory to install " "the Distutils." msgstr "" -"aurait, quand lancé sur un système Unix, crée file:`Distutils-1.0.{plat}.zip`" -"\\ ---à nouveau, cette archive devra être décompressé depuis la racine pour " -"installer Distutils." +"serait, lors d'une éxécution sur un système Unix, crée :file:`Distutils-1.0." +"{plat}.zip`\\ ---à nouveau, cette archive devra être décompressé depuis la " +"racine pour installer Distutils." #: ../Doc/distutils/builtdist.rst:70 msgid "The available formats for built distributions are:" -msgstr "Les formats disponible pour les distributions compilées sont:" +msgstr "Les formats disponible pour les distributions compilées sont :" #: ../Doc/distutils/builtdist.rst:73 msgid "Format" @@ -193,7 +193,7 @@ msgstr "``bztar``" #: ../Doc/distutils/builtdist.rst:78 msgid "bzipped tar file (:file:`.tar.bz2`)" -msgstr "fichier tar de type bzipped (:file:`.tar.bz2`)" +msgstr "Fichier tar de type bzipped (:file:`.tar.bz2`)" #: ../Doc/distutils/builtdist.rst:81 msgid "``xztar``" @@ -201,7 +201,7 @@ msgstr "``xztar``" #: ../Doc/distutils/builtdist.rst:81 msgid "xzipped tar file (:file:`.tar.xz`)" -msgstr "fichier tar de type xzipped (:file:`.tar.xz`)" +msgstr "Fichier tar de type xzipped (:file:`.tar.xz`)" #: ../Doc/distutils/builtdist.rst:84 msgid "``ztar``" @@ -281,15 +281,15 @@ msgstr "``msi``" #: ../Doc/distutils/builtdist.rst:100 msgid "Microsoft Installer." -msgstr "Installateur Microsoft" +msgstr "Installateur Microsoft." #: ../Doc/distutils/builtdist.rst:103 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/builtdist.rst:107 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/builtdist.rst:110 msgid "default on Unix" @@ -301,7 +301,7 @@ msgstr "Par défaut sur Windows" #: ../Doc/distutils/builtdist.rst:116 msgid "requires external :program:`compress` utility." -msgstr "requires external :program:`compress` utility." +msgstr "Nécessite un programme externe :program:`compress`." #: ../Doc/distutils/builtdist.rst:119 msgid "" @@ -316,7 +316,7 @@ msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" msgstr "" -"nécessite un programme externe :program:`rpm` , version 3.0.4 ou mieux " +"Nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " "(utilisez ``rpm --version`` pour connaître quelle version vous avez)" #: ../Doc/distutils/builtdist.rst:126 @@ -333,7 +333,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:136 msgid "Command" -msgstr "Command" +msgstr "Commande" #: ../Doc/distutils/builtdist.rst:136 msgid "Formats" @@ -377,7 +377,7 @@ msgid "" "commands." msgstr "" "Le chapitre suivant donne des détails individuel sur les commandes :command:" -"`bdist_\\*` " +"`bdist_\\*`." #: ../Doc/distutils/builtdist.rst:163 msgid "Creating RPM packages" @@ -407,7 +407,7 @@ msgid "" "command:`bdist_rpm` command::" msgstr "" "La manière habituelle de créer un RPM de votre module est d'utiliser la " -"commande :command:`bdist_rpm`::" +"commande :command:`bdist_rpm` ::" #: ../Doc/distutils/builtdist.rst:177 msgid "or the :command:`bdist` command with the :option:`--format` option::" @@ -420,10 +420,10 @@ msgid "" "you can explicitly specify multiple :command:`bdist_\\*` commands and their " "options::" msgstr "" -"La première vous permet de spécifier des options spécifique à RPM; la " +"La première vous permet de spécifier des options spécifique à RPM ; la " "dernière vous permet de spécifier plusieurs format d'un seul coup. Si vous " "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " -"plusieurs commande :command:`bdist_\\*` et leurs options." +"plusieurs commande :command:`bdist_\\*` et leurs options ::" #: ../Doc/distutils/builtdist.rst:188 msgid "" @@ -518,11 +518,11 @@ msgid "" msgstr "" "De plus, il y a beaucoup d'options dans le fichier :file:`.spec` qui n'ont " "aucun équivalent dans le script de préparation. La plupart de celles ci sont " -"gérées par les options de la commande :command:`bdist_rpm` suivant:" +"gérées par les options de la commande :command:`bdist_rpm` suivant :" #: ../Doc/distutils/builtdist.rst:220 msgid ":command:`bdist_rpm` option" -msgstr "Option de :command:`bdist_rpm` " +msgstr "Option de :command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:220 msgid "default value" @@ -649,7 +649,7 @@ msgid "" "handled automatically by the Distutils:" msgstr "" "La création de binaire RPM se fait en trois étapes, chacune gérée " -"automatiquement par Distutils:" +"automatiquement par Distutils :" #: ../Doc/distutils/builtdist.rst:257 msgid "" @@ -678,7 +678,7 @@ msgid "" "Normally, RPM bundles the last two steps together; when you use the " "Distutils, all three steps are typically bundled together." msgstr "" -"Normalement, RPM réunit les deux dernières étapes ensemble; quand vous " +"Normalement, RPM réunit les deux dernières étapes ensemble ; quand vous " "utilisez Distutils, les trois étapes sont regroupées." #: ../Doc/distutils/builtdist.rst:269 @@ -716,7 +716,7 @@ msgid "" "installers is usually as easy as running::" msgstr "" "Etant donné que les métadonnées sont tirées du script de préparation, créer " -"un installateur Windows est généralement facile, il suffit de lancer::" +"un installateur Windows est généralement facile, il suffit de lancer ::" #: ../Doc/distutils/builtdist.rst:310 msgid "or the :command:`bdist` command with the :option:`--formats` option::" @@ -808,7 +808,7 @@ msgid "" "support this option, so the command::" msgstr "" "Pour construire une version 64 bits de votre module. L'installateur Windows " -"supporte aussi cette option, donc la commande::" +"supporte aussi cette option, donc la commande ::" #: ../Doc/distutils/builtdist.rst:364 msgid "" @@ -816,7 +816,7 @@ msgid "" "Windows." msgstr "" "créera un installateur executable 64 bits depuis votre version 32 bits de " -"Windows. " +"Windows." #: ../Doc/distutils/builtdist.rst:366 msgid "" @@ -911,7 +911,7 @@ msgstr "" "Cette fonction peut être utilisée pour extraire des localisations de " "fichiers spéciaux sous Windows comme un menu démarrer ou le Bureau. Cela " "renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des " -"chaines suivantes::" +"chaines suivantes ::" #: ../Doc/distutils/builtdist.rst:434 msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." diff --git a/distutils/commandref.po b/distutils/commandref.po index 6ee21606..217255a3 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -40,7 +40,8 @@ msgstr ":command:`install_data`" #: ../Doc/distutils/commandref.rst:37 msgid "This command installs all data files provided with the distribution." -msgstr "Cette commande installe tout les fichier fournit avec la distribution" +msgstr "" +"Cette commande installe tous les fichiers fournis avec la distribution." #: ../Doc/distutils/commandref.rst:43 msgid ":command:`install_scripts`" @@ -48,11 +49,12 @@ msgstr ":command:`install_scripts`" #: ../Doc/distutils/commandref.rst:45 msgid "This command installs all (Python) scripts in the distribution." -msgstr "Cette commande installe tout les scripts (Python) dans la distribution" +msgstr "" +"Cette commande installe tout les scripts (Python) dans la distribution." #: ../Doc/distutils/commandref.rst:54 msgid "Creating a source distribution: the :command:`sdist` command" -msgstr "Créer une distribution source: la commande :command:`sdist` " +msgstr "Créer une distribution source: la commande :command:`sdist`" #: ../Doc/distutils/commandref.rst:58 msgid "The manifest template commands are:" @@ -60,7 +62,7 @@ msgstr "Les commandes du modèle manifeste sont :" #: ../Doc/distutils/commandref.rst:61 msgid "Command" -msgstr "Command" +msgstr "Commande" #: ../Doc/distutils/commandref.rst:61 msgid "Description" diff --git a/distutils/index.po b/distutils/index.po index 0abdefc6..82d28f5d 100644 --- a/distutils/index.po +++ b/distutils/index.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/distutils/index.rst:5 msgid "Distributing Python Modules (Legacy version)" -msgstr "" +msgstr "Distribuer des modules Python (Version historique)" #: ../Doc/distutils/index.rst:7 msgid "Greg Ward, Anthony Baxter" -msgstr "" +msgstr "Greg Ward, Anthony Baxter" #: ../Doc/distutils/index.rst:8 msgid "distutils-sig@python.org" @@ -30,11 +30,11 @@ msgstr "distutils-sig@python.org" #: ../Doc/distutils/index.rst:12 msgid ":ref:`distributing-index`" -msgstr "" +msgstr ":ref:`distributing-index`" #: ../Doc/distutils/index.rst:13 msgid "The up to date module distribution documentations" -msgstr "" +msgstr "La documentation actuelle de distribution de modules" #: ../Doc/distutils/index.rst:15 msgid "" @@ -43,6 +43,11 @@ msgid "" "Distutils to make Python modules and extensions easily available to a wider " "audience with very little overhead for build/release/install mechanics." msgstr "" +"Ce document décrit les outils de distribution de Python (\"Distutils\") du " +"point de vue d'un développeur de modules. Il décrit comment utiliser " +"`Distutils` pour rendre des modules et extensions Python disponible à une " +"large audience, simplement, avec un faible surcoût sur les mécaniques de " +"construction, déploiement et installation." #: ../Doc/distutils/index.rst:22 msgid "" @@ -52,3 +57,8 @@ msgid "" "recommendations section `__ " "in the Python Packaging User Guide for more information." msgstr "" +"Ce guide ne couvre que les outils de base, fournis avec cette version de " +"Python, pour construire et distribuer des extensions. D'autres outils " +"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick " +"recommendations section `__ " +"dans le *Python Packaging User Guide* pour plus d'informations." diff --git a/distutils/setupscript.po b/distutils/setupscript.po index a5f315ae..3def5b75 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -867,7 +867,7 @@ msgstr "\\(6)" #: ../Doc/distutils/setupscript.rst:597 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:600 msgid "These fields are required." diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index 9aefbd7b..788d5abb 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/distutils/sourcedist.rst:5 msgid "Creating a Source Distribution" -msgstr "Créer une Distribution Source" +msgstr "Créer une distribution source" #: ../Doc/distutils/sourcedist.rst:7 msgid "" @@ -128,11 +128,11 @@ msgstr "Fichier tar (:file:`.tar`)" #: ../Doc/distutils/sourcedist.rst:44 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/sourcedist.rst:47 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/sourcedist.rst:50 msgid "default on Windows" @@ -156,7 +156,7 @@ msgid "" "pending for deprecation and will be removed in the future versions of Python." msgstr "" "nécessite le programme :program:`compress`. Remarquez que ce format sera " -"bientôt déprécié et sera enlevé des prochaines version de Python." +"bientôt obsolète et sera enlevé des prochaines version de Python." #: ../Doc/distutils/sourcedist.rst:63 msgid "" @@ -173,7 +173,7 @@ msgstr "" msgid "For example, if you want all files of the archive to be owned by root::" msgstr "" "Par exemple, si vous voulez que tous les fichiers de l'archive soient détenu " -"par *root*::" +"par *root* ::" #: ../Doc/distutils/sourcedist.rst:75 msgid "Specifying the files to distribute" @@ -280,7 +280,7 @@ msgstr "" "un nom de fichier par ligne, uniquement des fichiers normaux (ou leur lien " "symbolique). Si vous fournissez votre propre :file:`MANIFEST`, vous devez " "tout spécifier: le groupe de fichier par défaut décrit au dessus ne sera pas " -"inclu automatiquement dans ce cas" +"inclu automatiquement dans ce cas." #: ../Doc/distutils/sourcedist.rst:120 msgid "" @@ -298,7 +298,7 @@ msgid "" msgstr "" "Les fichiers :file:`MANIFEST` commence avec un commentaire indiquant qu'ils " "sont générés. Les fichiers sans ce commentaire ne sont pas réécrits ou " -"supprimés" +"supprimés." #: ../Doc/distutils/sourcedist.rst:129 msgid "" @@ -314,6 +314,9 @@ msgid "" "a set of files to include or exclude from the source distribution. For an " "example, again we turn to the Distutils' own manifest template:" msgstr "" +"Le modèle de manifeste a une commande par ligne, où chaque commande spécifie " +"un ensemble de fichiers à inclure ou à exclure de la distribution source. " +"Par exemple, regardons encore le manifest de Distutils :" #: ../Doc/distutils/sourcedist.rst:144 msgid "" @@ -389,7 +392,7 @@ msgid "" "two directories were mentioned in the ``packages`` option in the setup " "script---see section :ref:`setup-script`)" msgstr "" -"inclure tous les fichier source Python dans les sous-dossiers :file:" +"inclure tous les fichiers source Python dans les sous-dossiers :file:" "`distutils` et :file:`distutils/command` (parce que des packages " "correspondant à ces deux dossiers ont été mentionnés dans l'argument " "``packages`` du script d'installation ---voir le chapitre :ref:`setup-" @@ -458,7 +461,7 @@ msgstr "" "dans le modèle manifeste doivent toujours être séparés par des slash; " "Distutils s'occupera de les convertir a la représentation standard de votre " "plateforme. De cette manière, le modèle manifeste est portable sur tout " -"système d'exploitation" +"système d'exploitation." #: ../Doc/distutils/sourcedist.rst:210 msgid "Manifest-related options" @@ -519,7 +522,7 @@ msgid "" "source distribution::" msgstr "" "Deuxièmement, si vous voulez (ré)généré le manifeste, mais pas créer la " -"distribution source ::" +"distribution source ::" #: ../Doc/distutils/sourcedist.rst:236 msgid ":option:`-o` is a shortcut for :option:`--manifest-only`." diff --git a/extending/building.po b/extending/building.po index 97d15727..ce41e4ab 100644 --- a/extending/building.po +++ b/extending/building.po @@ -26,7 +26,7 @@ msgid "" "``.pyd`` on Windows), which exports an *initialization function*." msgstr "" "Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur " -"Linux, un ``.pyd`` sur windows), qui expose une *fonction d'initialisation*." +"Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." #: ../Doc/extending/building.rst:12 msgid "" @@ -79,6 +79,12 @@ msgid "" "function corresponding to the filename is found. See the *\"Multiple modules " "in one library\"* section in :pep:`489` for details." msgstr "" +"Il est possible d'exporter plusieurs modules depuis une seule bibliothéque " +"partagée en définissant plusieurs fonctions d'initialisation. Cependant pour " +"les importer, un lien symbolique doit être créé pour chacun, ou un " +"*importer* personalisé, puisque par défaut seule la fonction correpondant au " +"nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one " +"library\"* dans la :pep:`489` pour plus d'informations." #: ../Doc/extending/building.rst:49 msgid "Building C and C++ Extensions with distutils" @@ -149,6 +155,13 @@ msgid "" "example, the instance defines an extension named ``demo`` which is build by " "compiling a single source file, :file:`demo.c`." msgstr "" +"Il est classique de pré-calculer les arguments à la fonction :func:`setup`, " +"pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument " +"``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules " +"d'extension, chacun est une instance de la classe :class:`~distutils." +"extension.Extension`. Dans l'exemple, l'instance définit une extension " +"nommée ``demo`` construite par la compilation d'un seul fichier source :file:" +"`demo.c`." #: ../Doc/extending/building.rst:99 msgid "" @@ -169,6 +182,13 @@ msgid "" "distutils passes this information in different ways to the compiler. For " "example, on Unix, this may result in the compilation commands ::" msgstr "" +"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appellée " +"avec quelques autres méta-informations, ce qui est recommandé pour " +"distribuer des paquets. En ce qui concerne l'extension, sont définis " +"quelques macros préprocesseur, dossiers pour les en-têtes et bibliothèques. " +"En fonction du compilateur, *distutils* peut donner ces informations de " +"manière différente. Par exemple, sur Unix, ça peut ressembler aux " +"commandes : ::" #: ../Doc/extending/building.rst:139 msgid "" @@ -210,6 +230,9 @@ msgid "" "distribution; this is done through a :file:`MANIFEST.in` file; see :ref:" "`manifest` for details." msgstr "" +"Dans certains cas, des fichiers supplémentaires doivent être inclus dans une " +"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c." +"f. :ref:`manifest`." #: ../Doc/extending/building.rst:161 msgid "" diff --git a/extending/embedding.po b/extending/embedding.po index 23499591..08efdaa5 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:8 msgid "Embedding Python in Another Application" -msgstr "Intégrer Python dans une autre Application" +msgstr "Intégrer Python dans une autre application" #: ../Doc/extending/embedding.rst:10 msgid "" @@ -54,7 +54,7 @@ msgstr "" "est qu'en étendant Python, le programme principal reste l'interpréteur " "Python, alors qu'en intégrant Python le programme principal peut ne rien à " "voir avec Python. C'est simplement quelques parties du programme qui " -"appellent l'interprète Python pour exécuter un peu de code Python." +"appellent l'interpréteur Python pour exécuter un peu de code Python." #: ../Doc/extending/embedding.rst:26 msgid "" @@ -101,7 +101,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:49 msgid "Very High Level Embedding" -msgstr "Intégration de Très Haut Niveau" +msgstr "Intégration de très haut niveau" #: ../Doc/extending/embedding.rst:51 msgid "" @@ -143,7 +143,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:90 msgid "Beyond Very High Level Embedding: An overview" -msgstr "Au delà de l'Intégration de Haut Niveau: Survol" +msgstr "Au delà de l'intégration de haut niveau: survol" #: ../Doc/extending/embedding.rst:92 msgid "" @@ -231,7 +231,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:131 msgid "Pure Embedding" -msgstr "Intégration Pure" +msgstr "Intégration pure" #: ../Doc/extending/embedding.rst:133 msgid "" @@ -260,7 +260,7 @@ msgstr "" "Ce code charge un script Python en utilisant ``argv[1]``, et appelle une " "fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " "autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " -"programme (appelons l'exécutable :program:`call`), et l'appellez pour " +"programme (appelons l'exécutable :program:`call`), et l'appelez pour " "exécuter un script Python, tel que :" #: ../Doc/extending/embedding.rst:158 @@ -316,7 +316,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:204 msgid "Extending Embedded Python" -msgstr "Étendre un Python Intégré" +msgstr "Étendre un Python intégré" #: ../Doc/extending/embedding.rst:206 msgid "" @@ -346,7 +346,7 @@ msgid "" msgstr "" "Insérez le code ci-dessus juste avant la fonction :c:func:`main`. Ajoutez " "aussi les deux instructions suivantes avant l'appel à :c:func:" -"`Py_Initialize` ::" +"`Py_Initialize` ::" #: ../Doc/extending/embedding.rst:249 msgid "" @@ -355,7 +355,7 @@ msgid "" "extensions, the Python script can do things like" msgstr "" "Ces deux lignes initialisent la variable ``numarg``, et rend la fonction :" -"func:`emb.numargs` accessible à l'interprète intégré. Avec ces ajouts, le " +"func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces ajouts, le " "script Python petit maintenant faire des choses comme" #: ../Doc/extending/embedding.rst:258 diff --git a/extending/extending.po b/extending/extending.po index fb2ce5e5..2c0f3228 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -158,7 +158,7 @@ msgstr "" "La prochaine chose que nous ajoutons à notre fichier de module est la " "fonction C qui sera appelée lorsque l'expression Python ``spam." "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " -"être appelée) ::" +"être appelée) ::" #: ../Doc/extending/extending.rst:92 msgid "" @@ -219,7 +219,7 @@ msgstr "" #: ../Doc/extending/extending.rst:119 msgid "Intermezzo: Errors and Exceptions" -msgstr "Intermezzo: Les Erreurs et Exceptions" +msgstr "Intermezzo: Les erreurs et exceptions" #: ../Doc/extending/extending.rst:121 msgid "" @@ -433,7 +433,7 @@ msgid "" msgstr "" "et initialisez-la dans la fonction d'initialisation de votre module (:c:func:" "`PyInit_spam`) avec un objet exception (Passons, pour le moment, la " -"vérification des codes d'erreur) ::" +"vérification des codes d'erreur) ::" #: ../Doc/extending/extending.rst:222 msgid "" @@ -479,11 +479,11 @@ msgid "" "a call to :c:func:`PyErr_SetString` as shown below::" msgstr "" "L'exception :exc:`spam.error` peut être levée dans votre module d'extension " -"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous::" +"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" #: ../Doc/extending/extending.rst:260 msgid "Back to the Example" -msgstr "Retour vers l'Exemple" +msgstr "Retour vers l'exemple" #: ../Doc/extending/extending.rst:262 msgid "" @@ -491,7 +491,7 @@ msgid "" "this statement::" msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " -"capable de comprendre cette affirmation::" +"capable de comprendre cette affirmation ::" #: ../Doc/extending/extending.rst:268 msgid "" @@ -519,7 +519,7 @@ msgid "" msgstr "" "La prochaine instruction est un appel à la fonction Unix :c:func:`system`, " "en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" -"`PyArg_ParseTuple`::" +"`PyArg_ParseTuple` ::" #: ../Doc/extending/extending.rst:281 msgid "" @@ -548,7 +548,7 @@ msgstr "" "Si vous avez une fonction C qui ne renvoie aucun argument utile (une " "fonction renvoiant :c:type:`void`), la fonction Python correspondante doit " "renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " -"implémentée par la macro :c:macro:`Py_RETURN_NONE`)::" +"implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" #: ../Doc/extending/extending.rst:297 msgid "" @@ -850,7 +850,7 @@ msgid "" msgstr "" "Notez que n'importe quelles références sur un objet Python qui sont données " "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références ! " +"compteur de références !" #: ../Doc/extending/extending.rst:626 msgid "Some example calls::" diff --git a/extending/index.po b/extending/index.po index 8059a6cf..a92440dd 100644 --- a/extending/index.po +++ b/extending/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/extending/index.rst:5 msgid "Extending and Embedding the Python Interpreter" -msgstr "" +msgstr "Extension et intégration de l'interpréteur Python" #: ../Doc/extending/index.rst:7 msgid "" @@ -30,6 +30,15 @@ msgid "" "extension modules so that they can be loaded dynamically (at run time) into " "the interpreter, if the underlying operating system supports this feature." msgstr "" +"Ce document décrit comment écrire des modules en C ou C++ pour étendre " +"l'interpréteur Python à de nouveaux modules. En plus de définir de nouvelles " +"fonctions, ces modules peuvent définir de nouveaux types d'objets ainsi que " +"leur méthodes. Ce document explique aussi comment intégrer l'interpréteur " +"Python dans une autre application, pour être utilisé comme langage " +"d'extension. Enfin, ce document montre comment compiler et lier les modules " +"d'extension pour qu'ils puissent être chargés dynamiquement (à l'exécution) " +"dans l'interpréteur, si le système d'exploitation sous-jacent supporte cette " +"fonctionnalité." #: ../Doc/extending/index.rst:15 msgid "" @@ -39,16 +48,24 @@ msgid "" "documents the existing object types, functions and modules (both built-in " "and written in Python) that give the language its wide application range." msgstr "" +"Ce document présuppose que vous avez des connaissances de base sur Python. " +"Pour une introduction informelle du langage, voyez :ref:`tutorial-index`. :" +"ref:`reference-index` donne une définition plus formelle du langage. :ref:" +"`library-index` documente les objets types, fonctions et modules existants " +"(tous intégrés et écrits en Python) qui donnent au langage sa large gamme " +"d'applications." #: ../Doc/extending/index.rst:21 msgid "" "For a detailed description of the whole Python/C API, see the separate :ref:" "`c-api-index`." msgstr "" +"Pour une description dans sa totalité de l'API Python/C, voir :ref:`c-api-" +"index`." #: ../Doc/extending/index.rst:26 msgid "Recommended third party tools" -msgstr "" +msgstr "Les outils tiers recommandés" #: ../Doc/extending/index.rst:28 msgid "" @@ -63,8 +80,8 @@ msgid "" "`Python Packaging User Guide: Binary Extensions `_" msgstr "" -"`Python Packaging User Guide: Binary Extensions `_" +"`Guide d'utilisation de l'empaquetage Python : Extensions binaires `_" #: ../Doc/extending/index.rst:36 msgid "" @@ -72,10 +89,14 @@ msgid "" "simplify the creation of binary extensions, but also discusses the various " "reasons why creating an extension module may be desirable in the first place." msgstr "" +"Le guide d'utilisation de l'empaquetage Python ne couvre pas uniquement " +"quelques outils disponibles qui simplifient la création d'extensions " +"binaires, mais aborde aussi les différentes raisons pour lesquelles créer un " +"module d'extension peut être souhaitable d'entrée." #: ../Doc/extending/index.rst:43 msgid "Creating extensions without third party tools" -msgstr "" +msgstr "Création d'extensions sans outils tiers" #: ../Doc/extending/index.rst:45 msgid "" @@ -84,10 +105,14 @@ msgid "" "those tools, rather than being a recommended way to create your own C " "extensions." msgstr "" +"Cette section du guide couvre la création d'extensions C et C++ sans " +"l'utilisation d'outils tiers. Cette section est destinée aux créateurs de " +"ces outils, plus que d'être une méthode recommandée pour créer votre propre " +"extension C." #: ../Doc/extending/index.rst:60 msgid "Embedding the CPython runtime in a larger application" -msgstr "" +msgstr "Intégrer l'interpréteur CPython dans une plus grande application" #: ../Doc/extending/index.rst:62 msgid "" @@ -96,3 +121,7 @@ msgid "" "CPython runtime inside a larger application. This section covers some of the " "details involved in doing that successfully." msgstr "" +"Parfois, plutôt que de créer une extension qui s'exécute dans l'interpréteur " +"Python comme application principale, il est préférable d'intégrer " +"l'interpréteur Python dans une application plus large. Cette section donne " +"quelques informations nécessaires au succès de cette opération." diff --git a/extending/windows.po b/extending/windows.po index b602d4d0..92d61b01 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/extending/windows.rst:8 msgid "Building C and C++ Extensions on Windows" -msgstr "" +msgstr "Construire des extensions C et C++ sur Windows" #: ../Doc/extending/windows.rst:10 msgid "" @@ -29,6 +29,12 @@ msgid "" "programmer interested in producing software which can be successfully built " "on both Unix and Windows." msgstr "" +"Cette page explique rapidement comment créer un module d'extension Windows " +"pour Python en utilisant Microsoft Visual C++, et donne plus d'informations " +"contextuelles sur son fonctionnement. Le texte explicatif est utile tant " +"pour le développeur Windows qui apprend à construire des extensions Python " +"que pour le développeur Unix souhaitant produire des logiciels pouvant être " +"construits sur Unix et Windows." #: ../Doc/extending/windows.rst:17 msgid "" @@ -37,6 +43,10 @@ msgid "" "still need the C compiler that was used to build Python; typically Microsoft " "Visual C++." msgstr "" +"Les auteurs de modules sont invités à utiliser l'approche *distutils* pour " +"construire des modules d'extension, au lieu de celle décrite dans cette " +"section. Vous aurez toujours besoin du compilateur C utilisé pour construire " +"Python ; typiquement Microsoft Visual C++." #: ../Doc/extending/windows.rst:24 msgid "" @@ -47,10 +57,16 @@ msgid "" "working with. For example, if you are using Python 2.2.1, ``XY`` will " "actually be ``22``." msgstr "" +"Cette page mentionne plusieurs noms de fichiers comprenant un numéro de " +"version Python encodé. Ces noms de fichiers sont construits sous le format " +"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version " +"majeure et ``'Y'`` représente le numéro de version mineure de la version " +"Python avec laquelle vous travaillez. Par exemple, si vous utilisez Python " +"2.2.1, ``XY`` correspond à ``22``." #: ../Doc/extending/windows.rst:34 msgid "A Cookbook Approach" -msgstr "" +msgstr "Une approche \"recette de cuisine\"" #: ../Doc/extending/windows.rst:36 msgid "" @@ -63,10 +79,20 @@ msgid "" "project file for the :source:`winsound ` standard " "library module." msgstr "" +"Il y a deux approches lorsque l'on construit des modules d'extension sur " +"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " +"contrôler le processus de construction, ou faire les choses manuellement. " +"L'approche distutils fonctionne bien pour la plupart des extensions ; la " +"documentation pour utiliser :mod:`distutils` pour construire et empaqueter " +"les modules d'extension est disponible dans :ref:`distutils-index`. Si vous " +"considerez que vous avez réellement besoin de faire les choses manuellement, " +"il pourrait être enrichissant d'étudier le fichier de projet :source:" +"`winsound ` pour le module de la bibliothèque " +"standard." #: ../Doc/extending/windows.rst:48 msgid "Differences Between Unix and Windows" -msgstr "" +msgstr "Différences entre Unix et Windows" #: ../Doc/extending/windows.rst:53 msgid "" @@ -74,6 +100,10 @@ msgid "" "code. Before you try to build a module that can be dynamically loaded, be " "aware of how your system works." msgstr "" +"Unix et Windows utilisent des paradigmes complètement différents pour le " +"chargement du code pendant l'exécution. Avant d'essayer de construire un " +"module qui puisse être chargé dynamiquement, soyez conscient du mode de " +"fonctionnement du système." #: ../Doc/extending/windows.rst:57 msgid "" @@ -84,6 +114,13 @@ msgid "" "actual locations in the program where the functions and data are placed in " "memory. This is basically a link operation." msgstr "" +"Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au " +"programme, ainsi que les noms des fonctions et les données que l'on " +"s'attend à trouver dans le programme. Quand le fichier est attaché au " +"programme, toutes les réferences à ces fonctions et données dans le code du " +"fichier sont modifiées pour pointer vers les localisations actuelles dans le " +"programme où sont désormais placées les fonctions et données dans la " +"mémoire. C'est tout simplement une opération de liaison." #: ../Doc/extending/windows.rst:64 msgid "" @@ -94,6 +131,13 @@ msgid "" "and the lookup table is modified at runtime to point to the functions and " "data." msgstr "" +"Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a " +"pas de références paresseuses. A la place, un accès aux fonctions ou données " +"passe par une table de conversion. Cela est fait pour que le code DLL ne " +"doive pas être réarrangé à l'exécution pour renvoyer à la mémoire du " +"programme ; à la place, le code utilise déjà la table de conversion DLL, et " +"cette table est modifiée à l'exécution pour pointer vers les fonctions et " +"données." #: ../Doc/extending/windows.rst:70 msgid "" @@ -104,6 +148,12 @@ msgid "" "files in the libraries; if it finds it, it will include all the code from " "that object file." msgstr "" +"Sur Unix, il n'y a qu'un type de bibliothèque de fichier (:file:`.a`) qui " +"contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant " +"l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le " +"lieur peut informer qu'il ne sait pas où un identificateur est défini. Le " +"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " +"trouve, il incluera tout le code provenant de ce fichier objet." #: ../Doc/extending/windows.rst:76 msgid "" @@ -118,6 +168,18 @@ msgid "" "will need to be used for all future DLLs that depend on the symbols in the " "application or DLL." msgstr "" +"Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " +"et une bibliothèque d'import (toutes deux appelées :file:`.lib`). Une " +"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " +"du code pouvant être inclus si nécessaire. Une bibliothèque d'import est " +"uniquement utilisée pour rassurer le lieur qu'un certain identificateur est " +"légal, et sera présent dans le programme quand la DLL est chargé. Comme ça " +"le lieur utilise les informations provenant de la bibliothèque d'import pour " +"construire la table de conversion pour utiliser les identificateurs qui ne " +"sont pas inclus dans la DLL. Quand une application ou une DLL est lié, une " +"bibliothèque d'import peut être générée, qui devra être utilisée pour tous " +"les futures DLL dépendantes aux symboles provenant de l'application ou de la " +"DLL." #: ../Doc/extending/windows.rst:86 msgid "" @@ -129,6 +191,14 @@ msgid "" "`A.lib` to the linker for B and C. :file:`A.lib` does not contain code; it " "just contains information which will be used at runtime to access A's code." msgstr "" +"Supposons que vous construisez deux modules de chargement dynamiques, B et " +"C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, " +"vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C." +"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacuns " +"leur propre copie. Sur Windows, construire :file:`A.dll` construira aussi :" +"file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A." +"lib` ne contient pas de code ; il contient uniquement des informations qui " +"seront utilisées lors de l'exécution pour accéder au code de A." #: ../Doc/extending/windows.rst:94 msgid "" @@ -137,10 +207,14 @@ msgid "" "On Unix, linking with a library is more like ``from spam import *``; it does " "create a separate copy." msgstr "" +"Sur Windows, utiliser une bibliothèque d'import est comme utiliser ``import " +"spam``; cela vous donne accès aux noms des spams, mais ne crée par de copie " +"séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from spam " +"import *`` ; cela créé une copie séparée." #: ../Doc/extending/windows.rst:103 msgid "Using DLLs in Practice" -msgstr "" +msgstr "Utiliser les DLL en pratique" #: ../Doc/extending/windows.rst:108 msgid "" @@ -148,6 +222,9 @@ msgid "" "or may not work (though Borland seems to). The rest of this section is MSVC+" "+ specific." msgstr "" +"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser " +"d'autres compilateurs pourrait fonctionner, ou pas (cependant Borland a " +"l'air de fonctionner). Le reste de cette section est spécifique à MSVC++." #: ../Doc/extending/windows.rst:112 msgid "" @@ -155,6 +232,9 @@ msgid "" "linker. To build two DLLs, spam and ni (which uses C functions found in " "spam), you could use these commands::" msgstr "" +"Lorsque vous créez des DLL sur Windows, vous devez transmettre :file:" +"`pythonXY.lib` au lieur. Pour construire deux DLL, spam et ni (qui utilisent " +"des fonctions C trouvées dans spam), vous pouvez utiliser ces commandes ::" #: ../Doc/extending/windows.rst:119 msgid "" @@ -163,6 +243,10 @@ msgid "" "functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " "the Python code thanks to :file:`pythonXY.lib`." msgstr "" +"La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam." +"dll` et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions " +"Python (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver " +"le code Python grâce à :file:`pythonXY.lib`." #: ../Doc/extending/windows.rst:124 msgid "" @@ -170,6 +254,9 @@ msgid "" "lib`), which knows how to find the necessary functions from spam, and also " "from the Python executable." msgstr "" +"La seconde commande a créé :file:`ni.dll` (et :file:`.obj` et :file:`.lib`), " +"qui sait comment trouver les fonctions nécessaires dans spam, ainsi qu'à " +"partir de l'exécutable Python." #: ../Doc/extending/windows.rst:128 msgid "" @@ -178,6 +265,11 @@ msgid "" "say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) " "initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``." msgstr "" +"Chaque identificateur n'est pas exporté vers la table de conversion. Si vous " +"voulez que tout autre module (y compris Python) soit capable de voir vos " +"identificateurs, vous devez préciser ``_declspec(dllexport)``, comme dans " +"``void _declspec(dllexport) initspam(void)`` ou ``PyObject " +"_declspec(dllexport) *NiGetSpamData(void)``." #: ../Doc/extending/windows.rst:133 msgid "" @@ -186,3 +278,8 @@ msgid "" "the Project Settings dialog, Link tab, to specify *ignore default " "libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries." msgstr "" +"Developer Studio apportera beaucoup de bibliothèques d'import dont vous " +"n'avez pas vraiment besoin, augmentant d'environ 100K votre exécutable. Pour " +"s'en débarasser, allez dans les Paramètres du Projet, onglet Lien, pour " +"préciser *ignorer les bibliothèques par défaut*. Et la :file:`msvcrtxx.lib` " +"correcte à la liste des bibliothèques." diff --git a/faq/design.po b/faq/design.po index 2714130c..7c2bdc42 100644 --- a/faq/design.po +++ b/faq/design.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/faq/design.rst:3 msgid "Design and History FAQ" -msgstr "FAQ Histoire et Design" +msgstr "FAQ histoire et design" #: ../Doc/faq/design.rst:6 msgid "Why does Python use indentation for grouping of statements?" @@ -369,7 +369,7 @@ msgid "" "generally less robust than the \"while True\" solution::" msgstr "" "Il y a une manière alternative de faire ça qui semble attrayante mais elle " -"est généralement moins robuste que la solution ``while True`` ::" +"est généralement moins robuste que la solution ``while True`` ::" #: ../Doc/faq/design.rst:196 msgid "" @@ -536,7 +536,7 @@ msgstr "" "Un bloc try/except est extrêmement efficient tant qu'aucune exception ne " "sont levée. En effet, intercepter une exception s'avère coûteux. Dans les " "versions de précédant Python 2.0, il était courant d'utiliser cette " -"pratique::" +"pratique ::" #: ../Doc/faq/design.rst:286 msgid "" @@ -611,8 +611,8 @@ msgid "" "Can't you emulate threads in the interpreter instead of relying on an OS-" "specific thread implementation?" msgstr "" -"Est-il possible d'émuler des *threads* dans l'interpréteur plutôt que se " -"baser sur les implémentations spécifique aux OS ?" +"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " +"se baser sur les implémentations spécifique aux OS ?" #: ../Doc/faq/design.rst:341 msgid "" @@ -624,8 +624,8 @@ msgstr "" "Réponse 1: Malheureusement, l'interpréteur pousse au moins un block de pile " "C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions " "peuvent rappeler dans Python à presque n'importe quel moment. Par " -"conséquent, une implémentation complète des *thread* nécessiterai un support " -"complet en C." +"conséquent, une implémentation complète des fils d'exécution nécessiterai un " +"support complet en C." #: ../Doc/faq/design.rst:346 msgid "" @@ -777,7 +777,7 @@ msgid "" msgstr "" "Dans certaines implémentations de Python, le code suivant (qui marche " "parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " -"fichiers::" +"fichiers ::" #: ../Doc/faq/design.rst:422 msgid "" @@ -801,7 +801,7 @@ msgstr "" "Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle " "implémentation de Python, vous devez explicitement fermer le fichier ou " "utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du " -"système de gestion de la mémoire::" +"système de gestion de la mémoire ::" #: ../Doc/faq/design.rst:437 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" @@ -920,7 +920,7 @@ msgid "" msgstr "" "Les *tuples* sont immuables, ce qui signifie que lorsqu'un *tuple* a été " "créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle " -"valeur. Les listes sont mutables, ce qui signifie que vous pouvez toujours " +"valeur. Les listes sont muables, ce qui signifie que vous pouvez toujours " "modifier les éléments d'une liste. Seuls des éléments immuables peuvent être " "utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " "des *tuples* peuvent être utilisés comme clés." @@ -1028,7 +1028,7 @@ msgid "" msgstr "" "L'implémentation de la table de hachage des dictionnaires utilise une valeur " "de hachage calculée à partir de la valeur de la clé pour trouver la clé elle-" -"même. Si la clé était un objet mutable, sa valeur peut changer, et donc son " +"même. Si la clé était un objet muable, sa valeur peut changer, et donc son " "hachage pourrait également changer. Mais toute personne modifiant l'objet " "clé ne peut pas dire qu'elle a été utilisée comme une clé de dictionnaire. " "Il ne peut déplacer l'entrée dans le dictionnaire. Ainsi, lorsque vous " @@ -1060,7 +1060,7 @@ msgid "" msgstr "" "Les listes de hachage par leur adresse (*ID* de l'objet). Cela ne " "fonctionne pas parce que si vous créez une nouvelle liste avec la même " -"valeur, elle ne sera pas retrouvée; par exemple.::" +"valeur, elle ne sera pas retrouvée; par exemple ::" #: ../Doc/faq/design.rst:551 msgid "" @@ -1080,7 +1080,7 @@ msgid "" "copying code would run into an infinite loop." msgstr "" "Faire une copie lors de l'utilisation d'une liste en tant que clé. Cela ne " -"fonctionne pas puisque la liste, étant un objet mutable, pourrait contenir " +"fonctionne pas puisque la liste, étant un objet muable, pourrait contenir " "une référence à elle-même ou avoir une boucle infinie au niveau du code " "copié." @@ -1234,7 +1234,7 @@ msgstr "" "structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de " "personnes estiment que les exceptions peuvent émuler idéalement tout " "utilisation raisonnable des constructions \"go\" ou \"goto\" en C, en " -"Fortran ou autres langages de programmation. Par exemple::" +"Fortran ou autres langages de programmation. Par exemple ::" #: ../Doc/faq/design.rst:687 msgid "" @@ -1291,7 +1291,7 @@ msgid "" msgstr "" "Python a une instruction \"with\" qui encapsule l'exécution d'un bloc, en " "appelant le code sur l'entrée et la sortie du bloc. Certains langages " -"possèdent une construction qui ressemble à ceci::" +"possèdent une construction qui ressemble à ceci ::" #: ../Doc/faq/design.rst:728 msgid "In Python, such a construct would be ambiguous." diff --git a/faq/extending.po b/faq/extending.po index 73ae8f45..2c203d88 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/faq/extending.rst:3 msgid "Extending/Embedding FAQ" -msgstr "FAQ Extension/Intégration" +msgstr "FAQ extension/intégration" #: ../Doc/faq/extending.rst:16 msgid "Can I create my own functions in C?" diff --git a/faq/general.po b/faq/general.po index 037ca39a..c894562f 100644 --- a/faq/general.po +++ b/faq/general.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/faq/general.rst:5 msgid "General Python FAQ" -msgstr "FAQ Générale sur Python" +msgstr "FAQ générale sur Python" #: ../Doc/faq/general.rst:13 msgid "General Information" -msgstr "Informations Générales" +msgstr "Informations générales" #: ../Doc/faq/general.rst:16 msgid "What is Python?" @@ -884,7 +884,7 @@ msgstr "" "une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la " "source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se " "souvenir des méthodes pour une listen, ils peuvent faire quelque chose comme " -"ça :" +"ça ::" #: ../Doc/faq/general.rst:441 msgid "" diff --git a/faq/gui.po b/faq/gui.po index 3f7aec8a..edeaeaea 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" -msgstr "FAQ Interface Graphique" +msgstr "FAQ interface graphique" #: ../Doc/faq/gui.rst:15 msgid "General GUI Questions" diff --git a/faq/library.po b/faq/library.po index 418e97cb..476e7bbe 100644 --- a/faq/library.po +++ b/faq/library.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" -msgstr "Bibliothèque et Extension FAQ" +msgstr "FAQ sur la bibliothèque et les extension" #: ../Doc/faq/library.rst:12 msgid "General Library Questions" diff --git a/faq/programming.po b/faq/programming.po index 8f0791e7..3e5222a1 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -650,7 +650,7 @@ msgstr "" #: ../Doc/faq/programming.rst:526 msgid "By passing a mutable (changeable in-place) object::" -msgstr "En passant un objet mutable (modifiable sur place) ::" +msgstr "En passant un objet muable (modifiable sur place) ::" #: ../Doc/faq/programming.rst:536 msgid "By passing in a dictionary that gets mutated::" @@ -658,7 +658,7 @@ msgstr "En passant un dictionnaire, qui sera modifié : ::" #: ../Doc/faq/programming.rst:546 msgid "Or bundle up values in a class instance::" -msgstr "Ou regrouper les valeurs dans une instance de classe::" +msgstr "Ou regrouper les valeurs dans une instance de classe ::" #: ../Doc/faq/programming.rst:562 msgid "There's almost never a good reason to get this complicated." @@ -713,7 +713,7 @@ msgstr "" #: ../Doc/faq/programming.rst:604 msgid "Object can encapsulate state for several methods::" -msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes::" +msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" #: ../Doc/faq/programming.rst:622 msgid "" @@ -742,11 +742,11 @@ msgid "" "copy` method::" msgstr "" "Certains objects peuvent être copiés plus facilement. Les Dictionnaires ont " -"une méthode :meth:`~dict.copy` ::" +"une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:637 msgid "Sequences can be copied by slicing::" -msgstr "Les séquences peuvent être copiées via la syntaxe des tranches::" +msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:643 msgid "How can I find the methods or attributes of an object?" @@ -822,7 +822,7 @@ msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte: Le " "chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu " "-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (namespaces) si c'est leur chat (objet)…" +"tous vos voisins (namespaces) si c'est leur chat (objet)…." #: ../Doc/faq/programming.rst:687 msgid "" @@ -839,7 +839,7 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:694 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" -"La virgule n'est pas un opérateur en Python. Observez la session suivante::" +"La virgule n'est pas un opérateur en Python. Observez la session suivante ::" #: ../Doc/faq/programming.rst:699 msgid "" @@ -848,11 +848,11 @@ msgid "" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " "expression, l'expression ci dessus, est évaluée de la même façon que si vous " -"aviez écrit::" +"aviez écrit ::" #: ../Doc/faq/programming.rst:704 msgid "not::" -msgstr "et non::" +msgstr "et non ::" #: ../Doc/faq/programming.rst:708 msgid "" @@ -898,7 +898,7 @@ msgid "" msgstr "" "Oui. Cela est généralement réalisé en imbriquant les :keyword:`lambda` dans " "des :keyword:`lambda`. Observez les trois exemples suivants, contribués par " -"Ulf Bartelt::" +"Ulf Bartelt ::" #: ../Doc/faq/programming.rst:762 msgid "Don't try this at home, kids!" @@ -920,7 +920,7 @@ msgid "" msgstr "" "Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " "puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale " -"\"10\" (8 en décimal) à la variable \"a\", tapez::" +"\"10\" (8 en décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:779 msgid "" @@ -931,7 +931,7 @@ msgstr "" "L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " "peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " -"l'interpréteur Python::" +"l'interpréteur Python ::" #: ../Doc/faq/programming.rst:792 msgid "Why does -22 // 10 return -3?" @@ -1081,11 +1081,11 @@ msgstr "" "chaines de caractères à des fonctions. Le principal avantage de cette " "technique est que les chaines n'ont pas besoin d'être égales aux noms de " "fonctions. C'est aussi la principale façon d'imiter la construction \"case" -"\"::" +"\" ::" #: ../Doc/faq/programming.rst:897 msgid "Use the built-in function :func:`getattr`::" -msgstr "Utiliser la fonction :func:`getattr`::" +msgstr "Utiliser la fonction :func:`getattr` ::" #: ../Doc/faq/programming.rst:902 msgid "" @@ -1099,12 +1099,12 @@ msgstr "" msgid "This is used in several places in the standard library, like this::" msgstr "" "Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de " -"cette façon::" +"cette façon ::" #: ../Doc/faq/programming.rst:918 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction::" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::" #: ../Doc/faq/programming.rst:931 msgid "" @@ -1336,7 +1336,7 @@ msgid "" "iterable) into a tuple with the same items in the same order." msgstr "" "Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait " -"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…" +"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…." #: ../Doc/faq/programming.rst:1071 msgid "" @@ -1402,7 +1402,7 @@ msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" "Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python " -"2.4::" +"2.4 ::" #: ../Doc/faq/programming.rst:1103 msgid "" @@ -1414,7 +1414,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1106 msgid "With Python 2.3, you can use an extended slice syntax::" -msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches::" +msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" #: ../Doc/faq/programming.rst:1113 msgid "How do you remove duplicates from a list?" @@ -1437,7 +1437,7 @@ msgid "" msgstr "" "Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " "celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons " -"trouvés en chemin::" +"trouvés en chemin ::" #: ../Doc/faq/programming.rst:1131 msgid "" @@ -1462,7 +1462,7 @@ msgstr "Comment construire un tableau en Python?" #: ../Doc/faq/programming.rst:1143 msgid "Use a list::" -msgstr "Utilisez une liste::" +msgstr "Utilisez une liste ::" #: ../Doc/faq/programming.rst:1147 msgid "" @@ -1492,7 +1492,7 @@ msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" "Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les \"cons " -"cells\" en utilisant des tuples::" +"cells\" en utilisant des tuples ::" #: ../Doc/faq/programming.rst:1159 msgid "" @@ -1515,7 +1515,7 @@ msgstr "Comment puis-je créer une liste à plusieurs dimensions?" msgid "You probably tried to make a multidimensional array like this::" msgstr "" "Vous avez probablement essayé de créer une liste à plusieurs dimensions de " -"cette façon::" +"cette façon ::" #: ../Doc/faq/programming.rst:1174 msgid "This looks correct if you print it:" @@ -1545,7 +1545,7 @@ msgid "" "then fill in each element with a newly created list::" msgstr "" "L'approche suggérée est de créer une liste de la longueur désiré d'abords, " -"puis de remplir tous les éléments avec une chaîne nouvellement créée." +"puis de remplir tous les éléments avec une chaîne nouvellement créée ::" #: ../Doc/faq/programming.rst:1209 msgid "" @@ -1553,7 +1553,7 @@ msgid "" "also use a list comprehension::" msgstr "" "Cette liste générée contient trois listes différentes de longueur deux. Vous " -"pouvez aussi utilisez la notation de compréhension de listes." +"pouvez aussi utilisez la notation de compréhension de listes ::" #: ../Doc/faq/programming.rst:1215 msgid "" @@ -1567,7 +1567,7 @@ msgstr "Comment appliquer une méthode à une séquence d'objets?" #: ../Doc/faq/programming.rst:1222 msgid "Use a list comprehension::" -msgstr "Utilisez une compréhension de liste::" +msgstr "Utilisez une compréhension de liste ::" #: ../Doc/faq/programming.rst:1229 msgid "" @@ -1774,7 +1774,7 @@ msgid "" msgstr "" "Une méthode est une fonction sur un objet ``x`` appelez normalement comme " "``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à " -"l'intérieur de la définition de classe::" +"l'intérieur de la définition de classe ::" #: ../Doc/faq/programming.rst:1395 msgid "What is self?" @@ -1843,7 +1843,7 @@ msgid "" "just call it::" msgstr "" "Une meilleure approche est de définir une méthode ``search()`` sur toutes " -"les classes et qu'il suffit d'appeler::" +"les classes et qu'il suffit d'appeler ::" #: ../Doc/faq/programming.rst:1443 msgid "What is delegation?" @@ -1872,7 +1872,7 @@ msgid "" msgstr "" "Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " "Par exemple, la classe suivante implémente une classe qui se comporte comme " -"un fichier, mais convertit toutes les données écrites en majuscules:" +"un fichier, mais convertit toutes les données écrites en majuscules ::" #: ../Doc/faq/programming.rst:1466 msgid "" @@ -1902,7 +1902,7 @@ msgstr "" "peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " "que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " "et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" -"`__setattr__` est à peu près équivalent à ce qui suit:" +"`__setattr__` est à peu près équivalent à ce qui suit ::" #: ../Doc/faq/programming.rst:1484 msgid "" @@ -1960,7 +1960,7 @@ msgstr "" "votre classe. Ensuite, tout ce que vous devez changer est la valeur " "attribuée à l'alias. Incidemment, cette astuce est également utile si vous " "voulez décider dynamiquement (par exemple en fonction de la disponibilité " -"des ressources) la classe de base à utiliser. Exemple::" +"des ressources) la classe de base à utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1522 msgid "How do I create static class data and static class methods?" @@ -1983,7 +1983,7 @@ msgid "" msgstr "" "Pour les données statiques, il suffit de définir un attribut de classe. Pour " "attribuer une nouvelle valeur à l'attribut, vous devez explicitement " -"utiliser le nom de classe dans l'affectation:" +"utiliser le nom de classe dans l'affectation ::" #: ../Doc/faq/programming.rst:1539 msgid "" @@ -2007,7 +2007,7 @@ msgstr "" "crée une nouvelle instance et sans rapport avec le nom \"count\" dans dans " "le dictionnaire de données de ``self``. La redéfinition d'une donnée " "statique de classe doit toujours spécifier la classe que l'on soit à " -"l'intérieur d'une méthode ou non:" +"l'intérieur d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1550 msgid "Static methods are possible::" @@ -2019,7 +2019,7 @@ msgid "" "is via a simple module-level function::" msgstr "" "Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " -"méthode statique se fait par une simple fonction au niveau du module::" +"méthode statique se fait par une simple fonction au niveau du module ::" #: ../Doc/faq/programming.rst:1564 msgid "" @@ -2052,7 +2052,7 @@ msgid "" "using default arguments. For example::" msgstr "" "En Python, vous devez écrire un constructeur unique qui considère tous les " -"cas en utilisant des arguments par défaut. Par exemple::" +"cas en utilisant des arguments par défaut. Par exemple ::" #: ../Doc/faq/programming.rst:1593 msgid "This is not entirely equivalent, but close enough in practice." diff --git a/faq/windows.po b/faq/windows.po index 35450d1a..16351252 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -48,6 +48,11 @@ msgid "" "and running with the right Python distribution, coding in your choice of " "IDE, and debugging and writing solid code with unit-tests." msgstr "" +"Cette série de vidéos a pour but de vous montrer comment utiliser Python sur " +"Windows XP. Les explications durent 1 heure et demi et vous permetteront " +"d'utiliser la distribution Python adéquate, de développer dans l'IDE de " +"votre choix, et de débugger et écrire du code solide accompagné des tests " +"unitaires." #: ../Doc/faq/windows.rst:36 msgid "" @@ -74,6 +79,9 @@ msgid "" "recently done with it. Once you have started such a window, you are well on " "the way to running Python programs." msgstr "" +"selon la configuration de votre ordinateur et ce que vous avez récemment " +"fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien " +"partis pour pouvoir lancer des programmes Python." #: ../Doc/faq/windows.rst:55 msgid "" @@ -82,6 +90,11 @@ msgid "" "compiles it into bytecodes, and then executes the bytecodes to run your " "program. So, how do you arrange for the interpreter to handle your Python?" msgstr "" +"Retenez que vos scripts Python doivent être traités par un autre programme " +"appelé \"l’interpréteur\" Python. L’interpréteur lit votre script, le " +"compile en *bytecode*, et exécute le *bytecode* pour faire tourner votre " +"programme. Alors, comment faire pour donner votre code Python à " +"l'interpréteur ?" #: ../Doc/faq/windows.rst:60 msgid "" diff --git a/glossary.po b/glossary.po index 7138358c..afd53b9e 100644 --- a/glossary.po +++ b/glossary.po @@ -49,7 +49,7 @@ msgstr "" #: ../Doc/glossary.rst:19 msgid "2to3" -msgstr "3to3" +msgstr "2to3" #: ../Doc/glossary.rst:21 msgid "" @@ -57,8 +57,8 @@ msgid "" "most of the incompatibilities which can be detected by parsing the source " "and traversing the parse tree." msgstr "" -"Un outil qui essaie de convertir du code pour Python 2.x en code pour Python " -"3.x en gérant la plupart des incompatibilités qui peuvent être détectées en " +"Outil qui essaie de convertir du code pour Python 2.x en code pour Python 3." +"x en gérant la plupart des incompatibilités qui peuvent être détectées en " "analysant la source et parcourant son arbre syntaxique." #: ../Doc/glossary.rst:25 @@ -91,14 +91,14 @@ msgstr "" "Les classes de base abstraites (ABC, suivant l'abréviation anglaise " "*Abstract Base Class*) complètent le :term:`duck-typing` en fournissant un " "moyen de définir des interfaces pour les cas où d'autres techniques comme :" -"func:`hasattr` seraient inélégantes, ou subitement fausse (par exemple avec " +"func:`hasattr` seraient inélégantes ou subitement fausses (par exemple avec " "les :ref:`méthodes magiques `). Les ABC introduisent des " -"sous-classes virtuelles, qui n'héritent pas d'une classe mais qui sont quand " -"même reconnues par :func:`isinstance` ou :func:`issubclass` (Voir la " +"sous-classes virtuelles qui n'héritent pas d'une classe mais qui sont quand " +"même reconnues par :func:`isinstance` ou :func:`issubclass` (voir la " "documentation du module :mod:`abc`). Python contient de nombreuses ABC pour " "les structures de données (dans le module :mod:`collections.abc`), les " -"nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:" -"`io`), et les chercheurs / chargeurs d'import (dans le module :mod:" +"nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:`io`) " +"et les chercheurs-chargeurs du système d'importation (dans le module :mod:" "`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" "`abc`." @@ -111,8 +111,8 @@ msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" msgstr "" -"Une valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de " -"son appel. Il existe deux types d'arguments :" +"Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " +"appel. Il existe deux types d'arguments :" #: ../Doc/glossary.rst:46 msgid "" @@ -147,7 +147,7 @@ msgid "" msgstr "" "Les arguments se retrouvent dans le corps de la fonction appelée parmi les " "variables locales. Voir la section :ref:`calls` à propos des règles dictant " -"cet affectation. Syntaxiquement, toute expression est acceptée comme " +"cette affectation. Syntaxiquement, toute expression est acceptée comme " "argument, et c'est la valeur résultante de l'expression qui sera affectée à " "la variable locale." @@ -157,9 +157,9 @@ msgid "" "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" -"Voir aussi :term:`parameter` dans le glossaire, la FAQ a aussi une question " -"à propos de :ref:`la différence entre argument et paramètre ` et la :pep:`362`." +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:" +"`Différence entre argument et paramètre ` de la " +"FAQ et la :pep:`362`." #: ../Doc/glossary.rst:71 msgid "asynchronous context manager" @@ -171,9 +171,9 @@ msgid "" "statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. " "Introduced by :pep:`492`." msgstr "" -"(*asynchronous context manager*) Un objet contrôlant l'environnement à " -"l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" -"meth:`__aenter__` et :meth:`__aexit__`. Introduit dans la :pep:`492`." +"(*asynchronous context manager* en anglais) Objet contrôlant l'environnement " +"à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" +"meth:`__aenter__` et :meth:`__aexit__`. A été Introduit par la :pep:`492`." #: ../Doc/glossary.rst:76 msgid "asynchronous iterable" @@ -185,9 +185,9 @@ msgid "" "return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. " "Introduced by :pep:`492`." msgstr "" -"Un objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa " -"méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. " -"Introduit dans la :pep:`492`." +"Objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa " +"méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A " +"été introduit par la :pep:`492`." #: ../Doc/glossary.rst:81 msgid "asynchronous iterator" @@ -201,11 +201,12 @@ msgid "" "method until it raises :exc:`StopAsyncIteration` exception. Introduced by :" "pep:`492`." msgstr "" -"Un objet qui implémente les méthodes :meth:`__aiter__` et :meth:`__anext__`. " -"``__anext__`` doit renvoyer un objet :term:`awaitable`. :keyword:`async for` " -"résoud le awaitable renvoyé par la méthode :meth:`__anext__` de l'itérateur " -"asynchrone jusqu'à ce qu'il lève une exception :exc:`StopAsyncIteration`. " -"Introduit dans la :pep:`492`." +"Objet qui implémente les méthodes :meth:`__aiter__` et :meth:`__anext__`. " +"``__anext__`` doit renvoyer un objet :term:`awaitable`. Tant que la méthode :" +"meth:`__anext__` produit des objets *awaitable*, le :keyword:`async for` " +"appelant les consomme. L'itérateur asynchrone lève une exception :exc:" +"`StopAsyncIteration` pour signifier la fin de l'itération. A été introduit " +"par la :pep:`492`." #: ../Doc/glossary.rst:88 msgid "attribute" @@ -217,9 +218,9 @@ msgid "" "expressions. For example, if an object *o* has an attribute *a* it would be " "referenced as *o.a*." msgstr "" -"Une valeur associée à un objet et désignée par son nom via une notation " -"utilisant des points. Par exemple, si un objet *o* a un attribut *a*, il " -"sera référencé par *o.a*." +"Valeur associée à un objet et désignée par son nom via une notation " +"utilisant des points. Par exemple, si un objet *o* possède un attribut *a*, " +"il sera référencé par *o.a*." #: ../Doc/glossary.rst:93 msgid "awaitable" @@ -231,9 +232,9 @@ msgid "" "term:`coroutine` or an object with an :meth:`__await__` method. See also :" "pep:`492`." msgstr "" -"Un objet pouvant être utilisé dans une expression :keyword:`await`. Peut " -"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " -"Voir aussi :pep:`492`." +"Objet pouvant être utilisé dans une expression :keyword:`await`. Peut être " +"une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. Voir " +"aussi la :pep:`492`." #: ../Doc/glossary.rst:98 msgid "BDFL" @@ -244,8 +245,9 @@ msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." msgstr "" -"Bienveillant dictateur à vie (de *Benevolent Dictator For Life*), alias " -"`Guido van Rossum `_, le créateur de Python." +"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " +"Pseudonyme de `Guido van Rossum `_, le " +"créateur de Python." #: ../Doc/glossary.rst:102 msgid "binary file" @@ -276,12 +278,12 @@ msgid "" "with binary data; these include compression, saving to a binary file, and " "sending over a socket." msgstr "" -"Un objet gèrant les :ref:`bufferobjects` et peut exporter un buffer C-:term:" -"`contiguous`. Cela inclu les objets :class:`bytes`, :class:`bytearray`, et :" -"class:`array.array`, ainsi que beaucoup d'objets :class:`memoryview`. Les " -"objets bytes-compatibles peuvent être utilisés pour diverses opérations sur " -"des données binaires, comme la compression, la sauvegard dans un fichier " -"binaire, ou l'envoi sur une socket." +"Un objet gérant les :ref:`bufferobjects` et pouvant exporter un tampon " +"(*buffer* en anglais) C-:term:`contiguous`. Cela inclut les objets :class:" +"`bytes`, :class:`bytearray` et :class:`array.array`, ainsi que beaucoup " +"d'objets :class:`memoryview`. Les objets bytes-compatibles peuvent être " +"utilisés pour diverses opérations sur des données binaires, comme la " +"compression, la sauvegarde dans un fichier binaire ou l'envoi sur le réseau." #: ../Doc/glossary.rst:118 msgid "" @@ -294,10 +296,10 @@ msgid "" msgstr "" "Certaines opérations nécessitent de travailler sur des données binaires " "variables. La documentation parle de ceux-ci comme des \"read-write bytes-" -"like objects\". Par exemple, :class:`bytearray`, et une :class:`memoryview` " -"d'un :class:`bytearray` en sont. D'autres opérations nécessitent de " +"like objects\". Par exemple, :class:`bytearray` ou une :class:`memoryview` " +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " "travailler sur des données binaires stockées dans des objets immuables (*" -"\"read-only bytes-like objects\"*), par exemples :class:`bytes` et :class:" +"\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" "`memoryview` d'un objet :class:`byte`." #: ../Doc/glossary.rst:126 @@ -330,8 +332,8 @@ msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." msgstr "" -"Une liste des instructions du bytecode se trouve dans la documentation du :" -"ref:`module dis `." +"La documentation du :ref:`module dis ` fournit une liste des " +"instructions du bytecode." #: ../Doc/glossary.rst:140 msgid "class" @@ -342,9 +344,9 @@ msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." msgstr "" -"Un modèle pour créer des objets définis par l'utilisateur. Les définitions " -"de classes (*class*) contiennent normalement des définitions de méthodes qui " -"agissent sur les instances de classe." +"Modèle pour créer des objets définis par l'utilisateur. Une définition de " +"classe (*class*) contient normalement des définitions de méthodes qui " +"agissent sur les instances de la classe." #: ../Doc/glossary.rst:145 msgid "coercion" @@ -361,15 +363,15 @@ msgid "" "types would have to be normalized to the same value by the programmer, e.g., " "``float(3)+4.5`` rather than just ``3+4.5``." msgstr "" -"La conversion implicite d'une instance d'un type vers un autre lors d'une " -"opération impliquant deux opérandes de même type. Par exemple ``int(3.15)`` " -"convertis explicitement le nombre à virgule flottante en nombre entier (ici, " -"``3``), mais dans l'opération ``3 + 4.5``, les deux opérandes ont un type " -"différent, alors qu'elles doivent avoir le même type pour être additionnées, " -"sans quoi une exception ``TypeError`` serait levée. Sans coercition, toutes " -"les opérandes, même de types compatibles, devraient être converties (on " -"parle aussi de *cast*) explicitement par le développeur, par exemple : " -"``float(3) + 4.5`` au lieu du simple ``3 + 4.5``." +"Conversion implicite d'une instance d'un type vers un autre lors d'une " +"opération dont les deux opérandes doivent être de même type. Par exemple " +"``int(3.15)`` convertit explicitement le nombre à virgule flottante en " +"nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes " +"sont d'un type différent, alors qu'elles doivent avoir le même type pour " +"être additionnées (sinon une exception ``TypeError`` serait levée). Sans " +"coercition, toutes les opérandes, même de types compatibles, devraient être " +"converties (on parle aussi de *cast*) explicitement par le développeur, par " +"exemple : ``float(3) + 4.5`` au lieu du simple ``3 + 4.5``." #: ../Doc/glossary.rst:155 msgid "complex number" @@ -387,17 +389,16 @@ msgid "" "Use of complex numbers is a fairly advanced mathematical feature. If you're " "not aware of a need for them, it's almost certain you can safely ignore them." msgstr "" -"Une extension du système numéral réel familier dans laquelle tous les " -"nombres sont exprimés sous la forme d'une somme d'un réel et d'un " -"imaginaire. Les nombres imaginaures sont de réels multiples d'une unité " -"imaginaire (la racine carrée de ``-1``), souvent écrite ``i`` en " -"mathématiques ou ``j`` en ingénierie. Python supporte nativement les nombres " -"complexes, écrits avec cette dernière notation; la partie imaginaire est " -"écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour utiliser les " -"équivalents complexes à :mod:`math`, utilisez :mod:`cmath`. L'utilisation " -"des nombres complexes est une caractéristiques des mathématiques avancées. " -"Si vous n'en avez pas l'utilité, vous pouvez les ignorer en toute " -"tranquilité." +"Extension des nombres réels familiers, dans laquelle tous les nombres sont " +"exprimés sous la forme d'une somme d'une partie réelle et d'une partie " +"imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " +"l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " +"mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " +"nombres complexes, écrits avec cette dernière notation : la partie " +"imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " +"utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " +"Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " +"ne connaissez pas ce concept, vous pouvez tranquillement les ignorer." #: ../Doc/glossary.rst:167 msgid "context manager" @@ -408,9 +409,9 @@ msgid "" "An object which controls the environment seen in a :keyword:`with` statement " "by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`." msgstr "" -"Un objet contrôlant l'environnement a l'intérieur d'une instruction :keyword:" -"`with` en définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. " -"Consultez la :pep:`343`." +"Objet contrôlant l'environnement à l'intérieur d'un bloc :keyword:`with` en " +"définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. Consultez " +"la :pep:`343`." #: ../Doc/glossary.rst:172 msgid "contiguous" @@ -426,15 +427,15 @@ msgid "" "visiting items in order of memory address. However, in Fortran contiguous " "arrays, the first index varies the fastest." msgstr "" -"Un buffer est considéré contigu s’il est soit *C-contigu* soit *Fortran-" -"contigu*. Les tableaux de dimension zéro sont C-contigus et Fortran-" -"contigus. Pour un tableau à une dimension, ses éléments doivent être placés " -"en mémoire l’un à côté de l’autre, dans l’ordre croissant de leur indice, " -"commençant à zéro. Pour qu’un tableau multidimensionnel soit C-contigu, le " -"dernier indice doit être celui qui varie le plus rapidement lors du parcours " -"de ses éléments dans l’ordre de leur adresse mémoire. A l'inverse, dans les " -"tableaux Fortran-contigu, c’est le premier indice qui doit varier le plus " -"rapidement." +"Un tampon (*buffer* en anglais) est considéré comme contigu s’il est soit *C-" +"contigu* soit *Fortran-contigu*. Les tampons de dimension zéro sont C-" +"contigus et Fortran-contigus. Pour un tableau à une dimension, ses éléments " +"doivent être placés en mémoire l’un à côté de l’autre, dans l’ordre " +"croissant de leur indice, en commençant à zéro. Pour qu’un tableau " +"multidimensionnel soit C-contigu, le dernier indice doit être celui qui " +"varie le plus rapidement lors du parcours de ses éléments dans l’ordre de " +"leur adresse mémoire. À l'inverse, dans les tableaux Fortran-contigu, c’est " +"le premier indice qui doit varier le plus rapidement." #: ../Doc/glossary.rst:184 msgid "coroutine" @@ -447,10 +448,11 @@ msgid "" "entered, exited, and resumed at many different points. They can be " "implemented with the :keyword:`async def` statement. See also :pep:`492`." msgstr "" -"Les coroutines sont une forme généralisées des fonctions. Les fonctions sont " -"accédées en un point et sortent en un point. Les coroutines peuvent être " -"accédées, quittées, reprises en plusieurs points. Elles peuvent être " -"implémentées via l'instruction :keyword:`async def`. Voir aussi :pep:`492`." +"Les coroutines sont une forme généralisées des fonctions. On entre dans une " +"fonction en un point et on en sort en un autre point. On peut entrer, sortir " +"et reprendre l'exécution d'une coroutine en plusieurs points. Elles peuvent " +"être implémentées en utilisant l'instruction :keyword:`async def`. Voir " +"aussi la :pep:`492`." #: ../Doc/glossary.rst:191 msgid "coroutine function" @@ -463,10 +465,10 @@ msgid "" "keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords. " "These were introduced by :pep:`492`." msgstr "" -"Une fonction qui donne un objet :term:`coroutine`. Une fonction coroutine " -"peut être définie par l'instruction :keyword:`async def`, et peuvent " -"contenir les mots clefs :keyword:`await`, :keyword:`async for`, et :keyword:" -"`async with`. Elles sont introduites par la :pep:`492`." +"Fonction qui renvoie un objet :term:`coroutine`. Une fonction coroutine peut " +"être définie par l'instruction :keyword:`async def` et peut contenir les " +"mots clés :keyword:`await`, :keyword:`async for` ainsi que :keyword:`async " +"with`. A été introduit par la :pep:`492`." #: ../Doc/glossary.rst:198 msgid "CPython" @@ -494,10 +496,10 @@ msgid "" "transformation using the ``@wrapper`` syntax. Common examples for " "decorators are :func:`classmethod` and :func:`staticmethod`." msgstr "" -"Une fonction renvoyant une autre fonction, utilisé habituellement dans une " -"transformation de fonction via la syntaxe ``@wrapper``. Les exemples " -"habituels pour les décorateurs (*decorators*) sont :func:`classmethod` et :" -"func:`staticmethod`." +"Fonction dont la valeur de retour est une autre fonction. Un décorateur est " +"habituellement utilisé pour transformer une fonction via la syntaxe " +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"`staticmethod`." #: ../Doc/glossary.rst:210 msgid "" @@ -505,7 +507,7 @@ msgid "" "definitions are semantically equivalent::" msgstr "" "La syntaxe des décorateurs est simplement du sucre syntaxique, les " -"définitions des deux fonctions suivantes sont sémantiquement équivalentes :" +"définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" #: ../Doc/glossary.rst:221 msgid "" @@ -536,13 +538,14 @@ msgstr "" "N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" "`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " "descripteur, son comportement spécial est déclenché lors de la recherche des " -"attributs. En utilisant *a.b* pour obtenir, affecter, ou effacer un " -"attribut, il recherche l'objet nommé *b* dans la dictionnaire de la classe " -"pour *a*, mais si *b* est un descripteur, la méthode de ce descripteur est " -"alors appelée. Comprendre les descripteurs est la clé d'une compréhension " -"approfondie de Python, ils sont la base de nombre de ses caractéristiques " -"notamment les fonctions, méthodes, propriétés, méthodes de classe, méthodes " -"statiques, et les références aux classes mères." +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter " +"ou effacer un attribut, Python recherche l'objet nommé *b* dans le " +"dictionnaire de la classe de *a*. Mais si *b* est un descripteur, c'est la " +"méthode de ce descripteur qui est alors appelée. Comprendre les descripteurs " +"est requis pour avoir une compréhension approfondie de Python, ils sont la " +"base de nombre de ses caractéristiques notamment les fonctions, méthodes, " +"propriétés, méthodes de classes, méthodes statiques et les références aux " +"classes parentes." #: ../Doc/glossary.rst:236 msgid "" @@ -561,9 +564,9 @@ msgid "" "can be any object with :meth:`__hash__` and :meth:`__eq__` methods. Called a " "hash in Perl." msgstr "" -"Une structure de donnée associant des clefs et des valeurs. Les clefs " -"peuvent être n'importe quel objet comportant les méthodes :meth:`__hash__` " -"et :meth:`__eq__`. Elle s'appelle \"*hash*\" en Perl." +"Structure de donnée associant des clés à des valeurs. Les clés peuvent être " +"n'importe quel objet possédant les méthodes :meth:`__hash__` et :meth:" +"`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." #: ../Doc/glossary.rst:242 msgid "dictionary view" @@ -577,11 +580,11 @@ msgid "" "reflects these changes. To force the dictionary view to become a full list " "use ``list(dictview)``. See :ref:`dict-views`." msgstr "" -"Les objets donnés par les méthodes :meth:`dict.keys`, :meth:`dict.values`, " -"et :meth:`dict.items` sont des vues de dictionnaire. Ce sont des vues, " -"dynamiques, des entrées du dictionnaire, ce qui signifie que lorsque le " -"dictionnaire change, la vue change. Pour transformer une vue en vrai liste, " -"utilisez ``list(dictview)``. Voir :ref:`dict-views`." +"Objets retournés par les méthodes :meth:`dict.keys`, :meth:`dict.values` et :" +"meth:`dict.items`. Ils fournissent des vues dynamiques des entrées du " +"dictionnaire, ce qui signifie que lorsque le dictionnaire change, la vue " +"change. Pour transformer une vue en vraie liste, utilisez " +"``list(dictview)``. Voir :ref:`dict-views`." #: ../Doc/glossary.rst:250 msgid "docstring" @@ -595,11 +598,11 @@ msgid "" "class, function or module. Since it is available via introspection, it is " "the canonical place for documentation of the object." msgstr "" -"Une chaîne littérale étant la première expression d'une classe, fonction, ou " -"module. Bien qu'ignoré à l'exécution, elles sont reconnues par le " -"compilateur, et placées dans l'attribut :attr:`__doc__` de sa classe, " -"fonction, ou module respectif. Puisque cette chaîne est disponible par " -"introspection, c'est l'endroit idéal pour documenter l'objet." +"Première chaîne littérale qui apparaît dans l'expression d'une classe, " +"fonction, ou module. Bien qu'ignorée à l'exécution, elles est reconnue par " +"le compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction ou du module. Comme cette chaîne est disponible par introspection, " +"c'est l'endroit idéal pour documenter l'objet." #: ../Doc/glossary.rst:258 msgid "duck-typing" @@ -617,16 +620,16 @@ msgid "" "term:`abstract base classes `.) Instead, it typically " "employs :func:`hasattr` tests or :term:`EAFP` programming." msgstr "" -"Un style de programmation qui ne prend pas en compte le type d'un objet pour " -"déterminer s'il respecte une interface, mais qui qui appelle simplement la " -"méthode ou l'attribut (*Si ça a un bec et que ça cancane, c'est un canard*). " -"En se concentrant sur les interfaces plutôt que les types, du code bien " -"construit améliore sa flexibilité en autorisant des substitutions " -"polymorphiques. Un code orienté *duck-typing* évite de vérifier les types " -"via :func:`type` ou :func:`isinstance`, (notez cependant que le duck-typing " -"peut travailler de pair avec les :term:`classes de base abstraites `.) À la place, le *duck-typing* utilise plutôt :func:" -"`hasattr` ou la programmation :term:`EAFP`." +"Style de programmation qui ne prend pas en compte le type d'un objet pour " +"déterminer s'il respecte une interface, mais qui appelle simplement la " +"méthode ou l'attribut (*Si ça a un bec et que ça cancane, ça doit être un " +"canard*, *duck* signifie canard en anglais). En se concentrant sur les " +"interfaces plutôt que les types, du code bien construit améliore sa " +"flexibilité en autorisant des substitutions polymorphiques. Le *duck-typing* " +"évite de vérifier les types via :func:`type` ou :func:`isinstance`, Notez " +"cependant que le duck-typing peut travailler de pair avec les :term:`classes " +"de base abstraites `. À la place, le *duck-typing* " +"utilise plutôt :func:`hasattr` ou la programmation :term:`EAFP`." #: ../Doc/glossary.rst:269 msgid "EAFP" @@ -642,12 +645,12 @@ msgid "" "many other languages such as C." msgstr "" "Il est plus simple de demander pardon que demander la permission (*Easier to " -"Ask for Forgiveness than Permission*). Ce style de développement Python fait " -"l'hypothèse que le code est valide, et attrape les exceptions si cette " -"hypothèse s'avèrait fausse. Ce style, propre et efficace, est caractérisé " -"par la présence de beaucoup de mot clé :keyword:`try` et :keyword:`except`. " -"Cette technique de programmation contraste avec le style :term:`LBYL` " -"présent couramment dans des langages tel que C." +"Ask for Forgiveness than Permission* en anglais). Ce style de développement " +"Python fait l'hypothèse que le code est valide et traite les exceptions si " +"cette hypothèse s'avère fausse. Ce style, propre et efficace, est " +"caractérisé par la présence de beaucoup de mots clés :keyword:`try` et :" +"keyword:`except`. Cette technique de programmation contraste avec le style :" +"term:`LBYL` utilisé couramment dans les langages tels que C." #: ../Doc/glossary.rst:277 msgid "expression" @@ -663,12 +666,12 @@ msgid "" "expressions, such as :keyword:`if`. Assignments are also statements, not " "expressions." msgstr "" -"Une suite logique de termes et chiffres conformes à la syntaxe Python dont " +"Suite logique de termes et chiffres conformes à la syntaxe Python dont " "l'évaluation fournit une valeur. En d'autres termes, une expression est une " "suite d'éléments tels que des noms, opérateurs, littéraux, accès " "d'attributs, méthodes ou fonctions qui aboutissent à une valeur. " "Contrairement à beaucoup d'autres langages, les différentes constructions du " -"langage ne sont pas toutes des expressions. Il y a également des :term:" +"langage ne sont pas toutes des expressions. On trouve également des :term:" "`instructions ` qui ne peuvent pas être utilisées comme " "expressions, tel que :keyword:`if`. Les affectations sont également des " "instructions et non des expressions." @@ -682,7 +685,7 @@ msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." msgstr "" -"Un module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " +"Module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " "Python et le code de l'utilisateur." #: ../Doc/glossary.rst:290 @@ -698,12 +701,12 @@ msgid "" "output, in-memory buffers, sockets, pipes, etc.). File objects are also " "called :dfn:`file-like objects` or :dfn:`streams`." msgstr "" -"Un objet exposant une ressource via une API orientée fichier (avec les " +"Objet exposant une ressource via une API orientée fichier (avec les " "méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " -"ils ont été créés, les objets fichiers peuvent exposer un fichier sur le " -"disque, ou un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, des " -"sockets, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" +"il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " +"disque ou à un autre type de stockage ou de communication (typiquement " +"l'entrée standard, la sortie standard, un tampon en mémoire, une socket " +"réseau, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" "objects` ou :dfn:`streams`." #: ../Doc/glossary.rst:300 @@ -715,11 +718,11 @@ msgid "" "function." msgstr "" "Il existe en réalité trois catégories de fichiers objets : les :term:" -"`fichiers binaires ` bruts, les :term:`fichiers binaire " -"` bufferisés, et les :term:`fichiers texte `. Leurs interfaces sont définies dans le module :mod:`io`. Le moyen " -"le plus simple et direct de créer un objet fichier est d'utiliser la " -"fonction :func:`open`." +"`fichiers binaires ` bruts, les :term:`fichiers binaires " +"` avec tampon (*buffer*) et les :term:`fichiers textes " +"`. Leurs interfaces sont définies dans le module :mod:`io`. " +"Le moyen le plus simple et direct de créer un objet fichier est d'utiliser " +"la fonction :func:`open`." #: ../Doc/glossary.rst:305 msgid "file-like object" @@ -727,19 +730,19 @@ msgstr "objet fichier-compatible" #: ../Doc/glossary.rst:307 msgid "A synonym for :term:`file object`." -msgstr "Un synonyme de :term:`objet fichier`." +msgstr "Synonyme de :term:`objet fichier`." #: ../Doc/glossary.rst:308 msgid "finder" -msgstr "finder" +msgstr "chercheur" #: ../Doc/glossary.rst:310 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." msgstr "" -"Un objet qui essaye de trouver un :term:`loader` pour le module étant " -"importé." +"Objet qui essaie de trouver un :term:`chargeur ` pour le module en " +"cours d'importation." #: ../Doc/glossary.rst:313 msgid "" @@ -747,14 +750,14 @@ msgid "" "` for use with :data:`sys.meta_path`, and :term:`path " "entry finders ` for use with :data:`sys.path_hooks`." msgstr "" -"Depuis Python 3.3, il existe deux types de *finder*: :term:`meta path " -"finders ` à utiliser avec :data:`sys.meta_path`, et :term:" -"`path entry finders ` à utiliser avec :data:`sys." -"path_hooks`." +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"`chercheurs dans les méta-chemins ` à utiliser avec :data:" +"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." #: ../Doc/glossary.rst:317 msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." -msgstr "Voir :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." +msgstr "Voir les :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." #: ../Doc/glossary.rst:318 msgid "floor division" @@ -768,10 +771,11 @@ msgid "" "division. Note that ``(-11) // 4`` is ``-3`` because that is ``-2.75`` " "rounded *downward*. See :pep:`238`." msgstr "" -"Division mathématique arrondissant à l'entier le plus petit. L'opérateur de " -"la division entière est ``//``. Par exemple l'expression ``11 // 4`` vaut " +"Division mathématique arrondissant à l'entier inférieur. L'opérateur de la " +"division entière est ``//``. Par exemple l'expression ``11 // 4`` vaut " "``2``, contrairement à ``11 / 4`` qui vaut ``2.75``. Notez que ``(-11) // " -"4`` vaut ``-3`` car l'arrondi se fait par le bas. Voir la :pep:`328`." +"4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir la :pep:" +"`328`." #: ../Doc/glossary.rst:325 msgid "function" @@ -784,10 +788,10 @@ msgid "" "execution of the body. See also :term:`parameter`, :term:`method`, and the :" "ref:`function` section." msgstr "" -"Une suite d'instructions qui renvoient une valeur à celui qui l'appelle. On " -"peut aussi lui passer des :term:`arguments ` qui pourront être " -"utilisés dans le corps de la fonction. Voir aussi :term:`paramètre`, :term:" -"`méthode`, et :ref:`function`." +"Suite d'instructions qui renvoie une valeur à son appelant. On peut lui " +"passer des :term:`arguments ` qui pourront être utilisés dans le " +"corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` et :ref:" +"`function`." #: ../Doc/glossary.rst:331 msgid "function annotation" @@ -800,10 +804,14 @@ msgid "" "be accessed via the :attr:`__annotations__` special attribute of a function " "object." msgstr "" -"Une métadonnée quelconque, associée au paramètre d'une fonction ou sa valeur " -"de retour. Sa syntaxe est documentée dans la section :ref:`function`. Les " -"annotations sont accessibles via l'attribut spécial :attr:`__annotations__` " -"d'une fonction." +"Métadonnée quelconque associée au paramètre d'une fonction ou à sa valeur de " +"retour (NdT : la traduction canonique du terme anglais *annotation* est " +"\"décoration\", notamment dans le cas des arbres syntaxiques, ce qui est le " +"cas ici. Cependant, Python ayant déjà utilisé le terme *decorator* dans une " +"autre acception, nous traduisons *annotation* par \"annotation\"). Sa " +"syntaxe est documentée dans la section :ref:`function`. Vous pouvez accéder " +"aux annotations d'une fonction *via* l'attribut spécial :attr:" +"`__annotations__`." #: ../Doc/glossary.rst:338 msgid "" @@ -811,9 +819,9 @@ msgid "" "annotations. They are intended to be interpreted by third-party libraries or " "tools. See :pep:`3107`, which describes some of their potential uses." msgstr "" -"Python ne prend pas en compte les annotations. Leur but est d'être " -"interprétées par d'autres bibliothèques ou outils. Voir la :pep:`3207`, qui " -"décrit certains usages." +"Python lui-même ne prend pas en compte les annotations. Leur but est d'être " +"interprétées par des bibliothèques ou outils tiers. Voir la :pep:`3207` qui " +"décrit certains usages possibles." #: ../Doc/glossary.rst:341 msgid "__future__" @@ -824,7 +832,7 @@ msgid "" "A pseudo-module which programmers can use to enable new language features " "which are not compatible with the current interpreter." msgstr "" -"Un pseudo-module que les développeurs peuvent utiliser pour activer de " +"Pseudo-module que les développeurs peuvent utiliser pour activer de " "nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " "l'interpréteur utilisé." @@ -835,8 +843,8 @@ msgid "" "becomes the default::" msgstr "" "En important le module :mod:`__future__` et en affichant ses variables, vous " -"pouvez voir quand une nouvelle fonctionnalité à été rajoutée dans le " -"langage, et quand elle devient le comportement par défaut : ::" +"pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " +"langage et quand elle devient le comportement par défaut : ::" #: ../Doc/glossary.rst:353 msgid "garbage collection" @@ -864,10 +872,10 @@ msgid "" "producing a series of values usable in a for-loop or that can be retrieved " "one at a time with the :func:`next` function." msgstr "" -"Une fonction qui renvoie un :term:`itérateur de générateur`. Cela ressemble " -"à une fonction normale, en dehors du fait qu'elle contient une ou des " -"expressions :keyword:`yield` pruduisant une série de valeurs utilisable dans " -"une boucle *for*, ou récupérées une à une via la fonction :func:`next`." +"Fonction qui renvoie un :term:`itérateur de générateur`. Cela ressemble à " +"une fonction normale, en dehors du fait qu'elle contient une ou des " +"expressions :keyword:`yield` produisant une série de valeurs utilisable dans " +"une boucle *for* ou récupérées une à une via la fonction :func:`next`." #: ../Doc/glossary.rst:367 msgid "" @@ -875,10 +883,10 @@ msgid "" "iterator* in some contexts. In cases where the intended meaning isn't " "clear, using the full terms avoids ambiguity." msgstr "" -"Fait généralement allusion à une fonction générateur, mais peut faire " -"allusion à un *itérateur de générateur* dans certains contextes. Dans les " -"cas où le sens voulu n'est pas clair, utiliser les termes complets évite " -"l'ambiguité." +"Fait généralement référence à une fonction générateur mais peut faire " +"référence à un *itérateur de générateur* dans certains contextes. Dans les " +"cas où le sens voulu n'est pas clair, utiliser les termes complets lève " +"l’ambigüité." #: ../Doc/glossary.rst:370 msgid "generator iterator" @@ -886,7 +894,7 @@ msgstr "itérateur de générateur" #: ../Doc/glossary.rst:372 msgid "An object created by a :term:`generator` function." -msgstr "Un objet crée par une fonction :term:`générateur`." +msgstr "Objet créé par une fonction :term:`générateur`." #: ../Doc/glossary.rst:374 msgid "" @@ -912,10 +920,10 @@ msgid "" "an optional :keyword:`if` expression. The combined expression generates " "values for an enclosing function::" msgstr "" -"Une expression qui donne un itérateur. Cela ressemble à une expression " -"normale, suivie d'une expression :keyword:`for` définissant une variable de " -"boucle, d'un range, et d'une expression, optionnelle, :keyword:`if`. Cette " -"expression combinée génère des valeurs pour la fonction qui l'entoure : ::" +"Expression qui donne un itérateur. Elle ressemble à une expression normale, " +"suivie d'une expression :keyword:`for` définissant une variable de boucle, " +"un intervalle et une expression :keyword:`if` optionnelle. Toute cette " +"expression génère des valeurs pour la fonction qui l'entoure : ::" #: ../Doc/glossary.rst:390 msgid "generic function" @@ -927,9 +935,9 @@ msgid "" "for different types. Which implementation should be used during a call is " "determined by the dispatch algorithm." msgstr "" -"Une fonction composée de plusieurs fonctions implémentant les mêmes " -"opérations pour différents types. L'implémentation à utiliser est déterminé " -"lors de l'appel est déterminée par un algorithme de répartition." +"Fonction composée de plusieurs fonctions implémentant les mêmes opérations " +"pour différents types. L'implémentation à utiliser est déterminée lors de " +"l'appel par l'algorithme de répartition." #: ../Doc/glossary.rst:396 msgid "" @@ -937,7 +945,7 @@ msgid "" "singledispatch` decorator, and :pep:`443`." msgstr "" "Voir aussi :term:`single dispatch`, le décorateur :func:`functools." -"singledispatch`, et la :pep:`443`." +"singledispatch` et la :pep:`443`." #: ../Doc/glossary.rst:399 msgid "GIL" @@ -961,13 +969,15 @@ msgid "" "multi-threaded, at the expense of much of the parallelism afforded by multi-" "processor machines." msgstr "" -"Le mécanisme utilisé par l'interpréteur :term:`CPython` pour s'assurer qu'un " -"seul thread n'execute du :term:`bytecode` à la fois. Cela simplifie " +"(*global interpreter lock* en anglais) Mécanisme utilisé par l'interpréteur :" +"term:`CPython` pour s'assurer qu'un seul fil d'exécution (*thread* en " +"anglais) n'exécute le :term:`bytecode` à la fois. Cela simplifie " "l'implémentation de CPython en rendant le modèle objet (incluant des parties " -"critiques comme la classe native :class:`dict`) implicitement protégé des " -"accès concourants. Vérouiller l'interpréteur entier le rend plus facile à " -"rendre multi-thread, en perdant malheureusement la majorité du parallélisme " -"possible sur les machines ayant plusieurs processeurs." +"critiques comme la classe native :class:`dict`) implicitement protégé contre " +"les accès concourants. Verrouiller l'interpréteur entier rend plus facile " +"l'implémentation de multiples fils d'exécution (*multi-thread* en anglais), " +"au détriment malheureusement de beaucoup du parallélisme possible sur les " +"machines ayant plusieurs processeurs." #: ../Doc/glossary.rst:413 msgid "" @@ -976,10 +986,10 @@ msgid "" "such as compression or hashing. Also, the GIL is always released when doing " "I/O." msgstr "" -"Cependant, certains modules d'extension, standards ou non, sont construits " -"de manière à libérer le GIL lorsqu'ils effectuent des tâches lourdes tel que " -"la compression ou le hachage. Aussi, le GIL est toujours libéré lors des " -"lectures et écritures." +"Cependant, certains modules d'extension, standards ou non, sont conçus de " +"manière à libérer le GIL lorsqu'ils effectuent des tâches lourdes tel que la " +"compression ou le hachage. De la même manière, le GIL est toujours libéré " +"lors des entrées / sorties." #: ../Doc/glossary.rst:418 msgid "" @@ -990,10 +1000,10 @@ msgid "" "more complicated and therefore costlier to maintain." msgstr "" "Les tentatives précédentes d'implémenter un interpréteur Python avec une " -"granularité de verrouillage plus fine ont toutes échouées, à cause de leur " -"performances sur un seul processeur. Il est admis que corriger c'est " -"problèmes de performance induits mènerai vers une implémentation compliquée " -"et donc plus coûteuse à maintenir." +"granularité de verrouillage plus fine ont toutes échouées, à cause de leurs " +"mauvaises performances dans le cas d'un processeur unique. Il est admis que " +"corriger ce problème de performance induit mènerait à une implémentation " +"beaucoup plus compliquée et donc plus coûteuse à maintenir." #: ../Doc/glossary.rst:423 msgid "hashable" @@ -1006,19 +1016,20 @@ msgid "" "other objects (it needs an :meth:`__eq__` method). Hashable objects which " "compare equal must have the same hash value." msgstr "" -"Un objet est *hachable* s'il a une empreinte (*hash*) qui ne change jamais. " -"(et il a besoin d'une méthode :meth:`__hash__`) et peut être comparé à " -"d'autres objets (avec la méthode :meth:`__eq__`). Les objets hachables dont " -"``__eq__`` dit être équivalents, ont aussi la même empreinte." +"Un objet est *hachable* s'il a une empreinte (*hash*) qui ne change jamais " +"(il doit donc implémenter une méthode :meth:`__hash__`) et s'il peut être " +"comparé à d'autres objets (avec la méthode :meth:`__eq__`). Les objets " +"hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " +"empreinte." #: ../Doc/glossary.rst:430 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." msgstr "" -"La hachabilité permet à un objet d'être utilisé comme clef de dictionnaire, " -"ou en temps que membre d'un *set*, car ces structures de données utilisent " -"ce *hash*." +"La hachabilité permet à un objet d'être utilisé comme clé de dictionnaire ou " +"en tant que membre d'un ensemble (type *set*), car ces structures de données " +"utilisent ce *hash*." #: ../Doc/glossary.rst:433 msgid "" @@ -1045,8 +1056,8 @@ msgid "" "and interpreter environment which ships with the standard distribution of " "Python." msgstr "" -"Un environnement de développement intégré pour Python. IDLE est un éditeur " -"et interpréteur basique livré avec la distribution standard de Python." +"Environnement de développement intégré pour Python. IDLE est un éditeur " +"basique et un interpréteur livré avec la distribution standard de Python." #: ../Doc/glossary.rst:443 msgid "immutable" @@ -1060,15 +1071,15 @@ msgid "" "in places where a constant hash value is needed, for example as a key in a " "dictionary." msgstr "" -"Un objet dont la valeur ne change pas. Les nombres, les chaînes et les " -"tuples sont immuables. Ils ne peuvent être modifiés. Un nouvel objet doit " -"être créé si une valeur différente doit être stockée. Ils jouent un rôle " -"important aux endroits où une valeur de *hash* constante est requise, " -"typiquement en clef de dictionnaire." +"Objet dont la valeur ne change pas. Les nombres, les chaînes et les n-uplets " +"sont immuables. Ils ne peuvent être modifiés. Un nouvel objet doit être créé " +"si une valeur différente doit être stockée. Ils jouent un rôle important " +"quand une valeur de *hash* constante est requise, typiquement en clé de " +"dictionnaire." #: ../Doc/glossary.rst:450 msgid "import path" -msgstr "chemin d'import" +msgstr "chemin des imports" #: ../Doc/glossary.rst:452 msgid "" @@ -1077,10 +1088,11 @@ msgid "" "list of locations usually comes from :data:`sys.path`, but for subpackages " "it may also come from the parent package's ``__path__`` attribute." msgstr "" -"Une liste de :term:`chemins ` dans lesquels le :term:`path based " -"finder` cherche les modules à importer. Typiquement lors d'un import cette " -"liste vient de :data:`sys.path`, mais pour les sous paquets, elle peut aussi " -"venir de l'attribut ``__path__`` du paquet parent." +"Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " +"basé sur les chemins ` cherche les modules à importer. " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " +"paquet parent." #: ../Doc/glossary.rst:457 msgid "importing" @@ -1090,7 +1102,7 @@ msgstr "importer" msgid "" "The process by which Python code in one module is made available to Python " "code in another module." -msgstr "Le processus rendant le code d'un module disponible dans un autre." +msgstr "Processus rendant le code Python d'un module disponible dans un autre." #: ../Doc/glossary.rst:461 msgid "importer" @@ -1101,8 +1113,8 @@ msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." msgstr "" -"Un objet qui trouve et charge un module, en même temps un :term:`finder` et " -"un :term:`loader`." +"Objet qui trouve et charge un module, en même temps un :term:`chercheur " +"` et un :term:`chargeur `." #: ../Doc/glossary.rst:465 msgid "interactive" @@ -1117,11 +1129,11 @@ msgid "" "test out new ideas or inspect modules and packages (remember ``help(x)``)." msgstr "" "Python a un interpréteur interactif, ce qui signifie que vous pouvez écrire " -"des expressions et instructions à l'invite de l'interpréteur, qui va les " -"exécuter immédiatement, et vous en présenter le résultat. Démarrez juste " -"``python`` (probablement depuis un menu de votre ordinateur). C'est un moyen " -"puissant pour tester de nouvelles idées ou étudier de nouveaux modules " -"(souvenez vous de ``help(x)``)." +"des expressions et des instructions à l'invite de l'interpréteur. " +"L'interpréteur Python va les exécuter immédiatement et vous en présenter le " +"résultat. Démarrez juste ``python`` (probablement depuis le menu principal " +"de votre ordinateur). C'est un moyen puissant pour tester de nouvelles idées " +"ou étudier de nouveaux modules (souvenez-vous de ``help(x)``)." #: ../Doc/glossary.rst:473 msgid "interpreted" @@ -1137,12 +1149,12 @@ msgid "" "generally also run more slowly. See also :term:`interactive`." msgstr "" "Python est un langage interprété, en opposition aux langages compilés, bien " -"que la frontière soit floue du à la présence d'un compilateur en bytecode. " -"Cela signifie que les fichiers sources peuvent être exécutés directement, " -"sans avoir à compiler un fichier exécutable intermédiaire. Les langages " -"interprétées ont généralement un cycle de développement / débug plus rapide, " -"et ils s'exécutent généralement plus lentement. Voir aussi :term:" -"`interactif`." +"que la frontière soit floue en raison de la présence d'un compilateur en " +"bytecode. Cela signifie que les fichiers sources peuvent être exécutés " +"directement, sans avoir à compiler un fichier exécutable intermédiaire. Les " +"langages interprétés ont généralement un cycle de développement / débug plus " +"court que les langages compilés. Cependant, ils s'exécutent généralement " +"plus lentement. Voir aussi :term:`interactif`." #: ../Doc/glossary.rst:482 msgid "interpreter shutdown" @@ -1165,17 +1177,16 @@ msgstr "" "appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " "dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " "exécuté lors de l'arrêt peut rencontrer quelques exception puisque les " -"ressources sur lesquels il pourrait s'appuyer pourraient ne plus " -"fonctionner, (typiquement les modules de la bibliothèque ou le mécanisme de " -"*warning*)." +"ressources auxquelles il fait appel pourraient ne plus fonctionner, " +"(typiquement les modules des bibliothèques ou le mécanisme de *warning*)." #: ../Doc/glossary.rst:493 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." msgstr "" -"La principale raison qu'a l'interpréteur de s'arrêter est lorsque le module " -"``__main__`` ou le script en cours d'exécution à terminé de s'exécuter." +"La principale raison d'arrêt de l'interpréteur est que le module " +"``__main__`` ou le script en cours d'exécution a terminé de s'exécuter." #: ../Doc/glossary.rst:495 msgid "iterable" @@ -1235,29 +1246,29 @@ msgid "" "iterator will just return the same exhausted iterator object used in the " "previous iteration pass, making it appear like an empty container." msgstr "" -"Un objet représentant un flux de donnée. Des appels successifs à la méthode :" -"meth:`~iterator.__next__` de l'itérateur (ou le donner à la fonction native :" +"Objet représentant un flux de donnée. Des appels successifs à la méthode :" +"meth:`~iterator.__next__` de l'itérateur (ou le passer à la fonction native :" "func:`next`) donne successivement les objets du flux. Lorsque plus aucune " -"donnée n'est disponible, une exception :exc:`StopIteration` est lancée. À ce " +"donnée n'est disponible, une exception :exc:`StopIteration` est levée. À ce " "point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" -"`__next__` lanceront encore une exception :exc:`StopIteration`. Les " +"`__next__` lèveront encore une exception :exc:`StopIteration`. Les " "itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " -"itérateur lui même, tel que chaque itérateur soit aussi itérable et puisse " -"être utilisé dans la plupart des endroits où d'autres itérables sont " -"attendus. Une exception notable serait un code qui tenterai plusieurs " +"itérateur lui même, de façon à ce que chaque itérateur soit aussi itérable " +"et puisse être utilisé dans la plupart des endroits où d'autres itérables " +"sont attendus. Une exception notable est un code qui tente plusieurs " "itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " -"nouvel itérateur neuf à chaque fois qu'il est donné à la fonction :func:" -"`iter` où qu'il est utilisé dans une boucle :keyword:`for`. Faire ceci sur " -"un itérateur donnerai simplement le même objet itérateur épuisé utilisé dans " +"nouvel itérateur neuf à chaque fois qu'il est passé à la fonction :func:" +"`iter` ou s'il est utilisé dans une boucle :keyword:`for`. Faire ceci sur un " +"itérateur donnerait simplement le même objet itérateur épuisé utilisé dans " "son itération précédente, le faisant ressembler à un conteneur vide." #: ../Doc/glossary.rst:528 msgid "More information can be found in :ref:`typeiter`." -msgstr "Plus d'informations ici : :ref:`typeiter`." +msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." #: ../Doc/glossary.rst:529 msgid "key function" -msgstr "fonction clef" +msgstr "fonction clé" #: ../Doc/glossary.rst:531 msgid "" @@ -1265,10 +1276,10 @@ msgid "" "for sorting or ordering. For example, :func:`locale.strxfrm` is used to " "produce a sort key that is aware of locale specific sort conventions." msgstr "" -"Une fonction clef, est un objet appelable qui renvoie une valeur utilisée " -"pour trier ou organiser. Par exemple la fonction :func:`local.strxfrm` sert " -"à produire une fonction clef de tri prennant en compte les conventions de " -"tri spécifiques aux paramètres régionaux courants." +"Une fonction clé est un objet appelable qui renvoie une valeur à fins de tri " +"ou de classement. Par exemple, la fonction :func:`locale.strxfrm` est " +"utilisée pour générer une clé de classement prenant en compte les " +"conventions de classement spécifiques aux paramètres régionaux courants." #: ../Doc/glossary.rst:536 msgid "" @@ -1277,10 +1288,11 @@ msgid "" "meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq." "nlargest`, and :func:`itertools.groupby`." msgstr "" -"Plusieurs outils dans Python acceptent des fonctions clef pour maîtriser " -"comment les éléments dont triés ou groupés. Typiquement les fonctions :func:" -"`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq.merge`, :" -"func:`heapq.nsmallest`, :func:`heapq.nlargest`, et :func:`itertools.groupby`." +"Plusieurs outils dans Python acceptent des fonctions clés pour déterminer " +"comment les éléments sont classés ou groupés. On peut citer les fonctions :" +"func:`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq." +"merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` et :func:`itertools." +"groupby`." #: ../Doc/glossary.rst:542 msgid "" @@ -1293,15 +1305,15 @@ msgid "" "methodcaller`. See the :ref:`Sorting HOW TO ` for examples of " "how to create and use key functions." msgstr "" -"Il existe plusieurs moyens de créer une fonction clef. Par exemple, la " -"méthode :meth:`str.lower` peut servir en fonction clef pour effectuer des " +"Il existe plusieurs moyens de créer une fonction clé. Par exemple, la " +"méthode :meth:`str.lower` peut servir de fonction clé pour effectuer des " "recherches insensibles à la casse. Aussi, il est possible de créer des " -"fonctions clef avec des expressions :keyword:`lambda`, comme ``lambda r: " -"(r[0], r[2])``. Finalement le module :mod:`operator` fournit des " -"constructeurs de fonctions clef : :func:`~operator.attrgetter`, :func:" -"`~operator.itemgetter`, et :func:`~operator.methodcaller`. Voir :ref:" -"`Comment Trier ` pour avoir des exemple de création et " -"d'utilisation de fonctions clés." +"fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " +"(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " +"Trier ` pour des exemples de création et d'utilisation de " +"fonctions clefs." #: ../Doc/glossary.rst:550 msgid "keyword argument" @@ -1336,9 +1348,9 @@ msgid "" "approach and is characterized by the presence of many :keyword:`if` " "statements." msgstr "" -"Regarde devant avant de tomber, (*Look before you leap*). Ce style de " -"programmation consiste à vérifier des conditions avant d'effectuer des " -"appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " +"Regarde devant avant de tomber, (*Look before you leap* en anglais). Ce " +"style de programmation consiste à vérifier des conditions avant d'effectuer " +"des appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " "caractérise par la présence de beaucoup d'instructions :keyword:`if`." #: ../Doc/glossary.rst:565 @@ -1349,10 +1361,11 @@ msgid "" "thread removes *key* from *mapping* after the test, but before the lookup. " "This issue can be solved with locks or by using the EAFP approach." msgstr "" -"Dans un environnement multi-thread, le style *LBYL* peut engendrer une " -"séquence critique (*race condition*) entre \"regarder\" et \"tomber\". Par " -"exemple, le code ``if key in mapping: return mapping[key]`` peut échouer si " -"un autre thread supprime la clef *key* du *mapping* après le test mais avant " +"Dans un environnement avec plusieurs fils d'exécution (*multi-threaded* en " +"anglais), le style *LBYL* peut engendrer un séquencement critique (*race " +"condition* en anglais) entre le \"regarde\" et le \"tomber\". Par exemple, " +"le code ``if key in mapping: return mapping[key]`` peut échouer si un autre " +"fil d'exécution supprime la clé *key* du *mapping* après le test mais avant " "l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " "l'approche EAFP." @@ -1382,16 +1395,16 @@ msgid "" "numbers (0x..) in the range from 0 to 255. The :keyword:`if` clause is " "optional. If omitted, all elements in ``range(256)`` are processed." msgstr "" -"Un moyen compacte de manipuler tous ou partie des éléments d'une séquence " -"renvoyant une liste avec les résultats. ``result = ['{:#04x}'.format(x) for " -"x in range(256) if x % 2 == 0]`` génère une liste de chaînes de caractères " -"contenant les nombres paires sous forme hexadécimale (0x...) de 0 à 255. La " -"clause :keyword:`if` est optionnelle. Si elle est omise, tous les éléments " -"du ``range(256)`` seront utilisés." +"Écriture concise pour manipuler tout ou partie des éléments d'une séquence " +"et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." +"format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " +"nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " +"hexadécimal (0x...). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." #: ../Doc/glossary.rst:583 msgid "loader" -msgstr "loader" +msgstr "chargeur" #: ../Doc/glossary.rst:585 msgid "" @@ -1400,14 +1413,14 @@ msgid "" "`302` for details and :class:`importlib.abc.Loader` for an :term:`abstract " "base class`." msgstr "" -"Un objet qui charge un module. Il doit définir une méthode nommée :meth:" -"`load_module`. Un *loader* est typiquement donné par un :term:`finder`. " -"Voir :pep:`302` pour les détails et :class:`importlib.ABC.Loader` pour sa :" -"term:`classe de base abstraite`." +"Objet qui charge un module. Il doit définir une méthode nommée :meth:" +"`load_module`. Un chargeur est typiquement donné par un :term:`chercheur " +"`. Voir la :pep:`302` pour plus de détails et :class:`importlib.ABC." +"Loader` pour sa :term:`classe de base abstraite`." #: ../Doc/glossary.rst:589 msgid "mapping" -msgstr "mapping" +msgstr "Tableau de correspondances" #: ../Doc/glossary.rst:591 msgid "" @@ -1418,16 +1431,17 @@ msgid "" "`collections.defaultdict`, :class:`collections.OrderedDict` and :class:" "`collections.Counter`." msgstr "" -"Un conteneur acceptant de rechercher des éléments par clef et implémente les " -"méthodes des :ref:`classes de base abstraites ` :class:`collections.abc.Mapping` ou :class:`collections.abc." -"MutableMapping`. Les classes suivantes sont des exemples de mapping: :class:" -"`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict`, " +"(*mapping* en anglais) Conteneur permettant de rechercher des éléments à " +"partir de clés et implémentant les méthodes spécifiées dans les :ref:" +"`classes de base abstraites ` :class:" +"`collections.abc.Mapping` ou :class:`collections.abc.MutableMapping`. Les " +"classes suivantes sont des exemples de tableaux de correspondances : :class:" +"`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " "et :class:`collections.Counter`." #: ../Doc/glossary.rst:597 msgid "meta path finder" -msgstr "meta path finder" +msgstr "chercheur dans les méta-chemins" #: ../Doc/glossary.rst:599 msgid "" @@ -1435,21 +1449,21 @@ msgid "" "finders are related to, but different from :term:`path entry finders `." msgstr "" -"Un :term:`finder` donné par une recherche dans :data:`sys.meta_path`. Les " -"*meta path finders* ressemblent, mais sont différents de :term:`path entry " -"finders `." +"Un :term:`chercheur ` renvoyé par une recherche dans :data:`sys." +"meta_path`. Les chercheurs dans les méta-chemins ressemblent, mais sont " +"différents des :term:`chercheurs d'entrée dans path `." #: ../Doc/glossary.rst:603 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." msgstr "" -"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les *meta " -"path finders* doivent implémenter." +"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " +"chercheurs dans les méta-chemins doivent implémenter." #: ../Doc/glossary.rst:605 msgid "metaclass" -msgstr "metaclasse" +msgstr "métaclasse" #: ../Doc/glossary.rst:607 msgid "" @@ -1463,21 +1477,20 @@ msgid "" "access, adding thread-safety, tracking object creation, implementing " "singletons, and many other tasks." msgstr "" -"La classe d'une classe. Les définitions de classe créent un nom pour la " -"classe, un dictionnaire et une liste de classes patentes. La métaclasse a " +"Classe d'une classe. Les définitions de classe créent un nom pour la classe, " +"un dictionnaire de classe et une liste de classes parentes. La métaclasse a " "pour rôle de réunir ces trois paramètres pour construire la classe. La " "plupart des langages orientés objet fournissent une implémentation par " -"défaut. Ce qui rend Python spécial, c'est de proposer de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'ont pas besoin de " -"cet outil, mais lorsque le besoin survient, les métaclasses sont souvent des " -"solutions élégantes, puissantes, et utiles. Elles ont été utilisées pour " -"journaliser les accès à des propriétés, rendre un objet sûr pour une " -"utilisation en environnement multi-thread, suivre la création d'objets, " -"implémenter des singleton, et bien d'autres tâches." +"défaut. La particularité de Python est la possibilité de créer des " +"métaclasses personnalisées. La plupart des utilisateurs n'aura jamais besoin " +"de cet outil, mais lorsque le besoin survient, les métaclasses offrent des " +"solutions élégantes et puissantes. Elles sont utilisées pour journaliser les " +"accès à des propriétés, rendre sûr les environnements multi-threads, suivre " +"la création d'objets, implémenter des singletons et bien d'autres tâches." #: ../Doc/glossary.rst:617 msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations à ce sujet : :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." #: ../Doc/glossary.rst:618 msgid "method" @@ -1490,10 +1503,10 @@ msgid "" "first :term:`argument` (which is usually called ``self``). See :term:" "`function` and :term:`nested scope`." msgstr "" -"Une fonction définie dans une classe. Lorsqu'elle est appelée comme un " -"attribut d'une instance, la méthode reçoit l'instance en premier :term:" -"`argument` (qui par convention est nommé ``self``). Voir :term:`function` " -"et :term:`nested scope`." +"Fonction définie à l'intérieur d'une classe. Lorsqu'elle est appelée comme " +"un attribut d'une instance de cette classe, la méthode reçoit l'instance en " +"premier :term:`argument` (qui, par convention, est habituellement nommé " +"``self``). Voir :term:`function` et :term:`nested scope`." #: ../Doc/glossary.rst:624 msgid "method resolution order" @@ -1506,11 +1519,12 @@ msgid "" "www.python.org/download/releases/2.3/mro/>`_ for details of the algorithm " "used by the Python interpreter since the 2.3 release." msgstr "" -"L'ordre de résolution des méthodes (*MRO* de *Method Resolution Order*) est " -"l'ordre par lequel les membres sont recherchées dans les classes parentes. " -"Voir `The Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé " -"par l'interpréteur Python depuis la version 2.3." +"L'ordre de résolution des méthodes (*MRO* pour *Method Resolution Order* en " +"anglais) est, lors de la recherche d'un attribut dans les classes parentes, " +"la façon dont l'interpréteur Python classe ces classes parentes. Voir `The " +"Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé par " +"l'interpréteur Python depuis la version 2.3." #: ../Doc/glossary.rst:630 msgid "module" @@ -1522,9 +1536,9 @@ msgid "" "have a namespace containing arbitrary Python objects. Modules are loaded " "into Python by the process of :term:`importing`." msgstr "" -"L'unité élémentaire de l'organisation du code en Python. Les modules ont un " -"espace de noms pouvant contenir n'importe quel objet Python. Charger des " -"modules est appelé :term:`importer`." +"Objet utilisé pour organiser une portion unitaire de code en Python. Les " +"modules ont un espace de noms et peuvent contenir n'importe quels objets " +"Python. Charger des modules est appelé :term:`importer `." #: ../Doc/glossary.rst:636 msgid "See also :term:`package`." @@ -1532,16 +1546,16 @@ msgstr "Voir aussi :term:`paquet`." #: ../Doc/glossary.rst:637 msgid "module spec" -msgstr "module spec" +msgstr "spécificateur de module" #: ../Doc/glossary.rst:639 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." msgstr "" -"Un espace de nom contenant les informations, relatives à l'import, utilisés " -"pour charger un module. C'est une instance de la classe :class:`importlib." -"machinery.ModuleSpec`." +"Espace de noms contenant les informations, relatives à l'importation, " +"utilisées pour charger un module. C'est une instance de la classe :class:" +"`importlib.machinery.ModuleSpec`." #: ../Doc/glossary.rst:641 msgid "MRO" @@ -1553,19 +1567,19 @@ msgstr "Voir :term:`ordre de résolution des méthodes`." #: ../Doc/glossary.rst:644 msgid "mutable" -msgstr "mutable" +msgstr "muable" #: ../Doc/glossary.rst:646 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." msgstr "" -"Un objet mutable peut changer de valeur tout en gardant le même :func:`id`. " +"Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " "Voir aussi :term:`immuable`." #: ../Doc/glossary.rst:648 msgid "named tuple" -msgstr "named tuple" +msgstr "n-uplet nommé" #: ../Doc/glossary.rst:650 msgid "" @@ -1574,10 +1588,11 @@ msgid "" "object where the *year* is accessible either with an index such as ``t[0]`` " "or with a named attribute like ``t.tm_year``)." msgstr "" -"Une classe qui, comme *tuple* a ses éléments accessibles par leur indice, " -"mais en plus accessibles par leur nom (par exemple, :func:`time.localtime` " -"donne un objet ressemblant à un *tuple*, dont *year* est accessible par son " -"indice : ``t[0]`` ou par son nom : ``t.tm_year``)." +"(*named-tuple* en anglais) Classe qui, comme un *n-uplet* (*tuple* en " +"anglais), a ses éléments accessibles par leur indice. Et en plus, les " +"éléments sont accessibles par leur nom. Par exemple, :func:`time.localtime` " +"donne un objet ressemblant à un *n-uplet*, dont *year* est accessible par " +"son indice : ``t[0]`` ou par son nom : ``t.tm_year``)." #: ../Doc/glossary.rst:655 msgid "" @@ -1588,16 +1603,16 @@ msgid "" "as a self-documenting representation like ``Employee(name='jones', " "title='programmer')``." msgstr "" -"Un *named tuple* peut être un type natif tel que :class:`time.struct_time` " -"ou il peut être construit comme une simple classe. Un *named tuple* complet " -"peut aussi être créé via la fonction :func:`collections.namedtuple`. Cette " -"dernière approche fournit automatiquement des fonctionnalités " +"Un *n-uplet nommé* peut être un type natif tel que :class:`time.struct_time` " +"ou il peut être construit comme une simple classe. Un *n-uplet nommé* " +"complet peut aussi être créé via la fonction :func:`collections.namedtuple`. " +"Cette dernière approche fournit automatiquement des fonctionnalités " "supplémentaires, tel qu'une représentation lisible comme " "``Employee(name='jones', title='programmer')``." #: ../Doc/glossary.rst:661 msgid "namespace" -msgstr "espace de nom" +msgstr "espace de noms" #: ../Doc/glossary.rst:663 msgid "" @@ -1611,20 +1626,20 @@ msgid "" "func:`itertools.islice` makes it clear that those functions are implemented " "by the :mod:`random` and :mod:`itertools` modules, respectively." msgstr "" -"L'endroit où une variable est stockée. Les espaces de noms sont en fait des " -"dictionnaires. Il existe des espaces de noms globaux, natifs, ou imbriqués " -"dans les objets (dans les méthodes). Les espaces de noms sont modulaires " -"afin d'éviter les conflits de noms. Par exemple, les fonctions :func:" -"`builtins.open <.open>` et :func:`os.open` sont différenciées par leurs " -"espaces de nom. Les espaces de noms aident aussi à la lisibilité et " -"maintenabilité en rendant clair quel module implémente une fonction. Par " -"exemple, écrire :func:`random.seed` ou :func:`itertools.islice` rend clair " -"que ces fonctions sont implémentées respectivement dans les modules :mod:" -"`random` et :mod:`itertools`." +"L'endroit où une variable est stockée. Les espaces de noms sont implémentés " +"avec des dictionnaires. Il existe des espaces de noms globaux, natifs ou " +"imbriqués dans les objets (dans les méthodes). Les espaces de noms " +"favorisent la modularité car ils permettent d'éviter les conflits de noms. " +"Par exemple, les fonctions :func:`builtins.open <.open>` et :func:`os.open` " +"sont différenciées par leurs espaces de nom. Les espaces de noms aident " +"aussi à la lisibilité et la maintenabilité en rendant clair quel module " +"implémente une fonction. Par exemple, écrire :func:`random.seed` ou :func:" +"`itertools.islice` affiche clairement que ces fonctions sont implémentées " +"respectivement dans les modules :mod:`random` et :mod:`itertools`." #: ../Doc/glossary.rst:673 msgid "namespace package" -msgstr "paquet espace de nom" +msgstr "paquet-espace de noms" #: ../Doc/glossary.rst:675 msgid "" @@ -1634,8 +1649,8 @@ msgid "" "``__init__.py`` file." msgstr "" "Un :term:`paquet` tel que défini dans la :pep:`421` qui ne sert qu'à " -"contenir des sous paquets. Les paquets-espace de nom peuvent n'avoir aucune " -"représentation physique, et plus spécifiquement ne sont pas comme un :term:" +"contenir des sous-paquets. Les paquets-espace de noms peuvent n'avoir aucune " +"représentation physique et, plus spécifiquement, ne sont pas comme un :term:" "`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." #: ../Doc/glossary.rst:680 @@ -1655,14 +1670,14 @@ msgid "" "the innermost scope. Likewise, global variables read and write to the " "global namespace. The :keyword:`nonlocal` allows writing to outer scopes." msgstr "" -"La possibilité de toucher une variable déclarée dans une définition " +"Possibilité de faire référence à une variable déclarée dans une définition " "englobante. Typiquement, une fonction définie à l'intérieur d'une autre " -"fonction aura accès aux variables de cette autre fonction. Souvenez-vous " -"cependant que cela ne fonctionne que pour accéder à des variables, pas pour " -"les assigner. Les variables locales sont lues et assignées dans l'espace de " -"nom le plus proche. Tout comme les variables globales qui sont stockés sur " +"fonction a accès aux variables de cette dernière. Souvenez-vous cependant " +"que cela ne fonctionne que pour accéder à des variables, pas pour les " +"assigner. Les variables locales sont lues et assignées dans l'espace de noms " +"le plus proche. Tout comme les variables globales qui sont stockés dans " "l'espace de noms global, le mot clef :keyword:`nonlocal` permet d'écrire " -"dans l'espace de nom dans lequel est déclaré la variable." +"dans l'espace de noms dans lequel est déclarée la variable." #: ../Doc/glossary.rst:690 msgid "new-style class" @@ -1676,10 +1691,10 @@ msgid "" "meth:`__getattribute__`, class methods, and static methods." msgstr "" "Ancien nom pour l'implémentation actuelle des classes, pour tous les objets. " -"Dans les anciennes versions de Python, seulement les nouvelles classes " -"pouvaient utiliser les nouvelles fonctionnalités tel que :attr:`~object." +"Dans les anciennes versions de Python, seules les nouvelles classes " +"pouvaient utiliser les nouvelles fonctionnalités telles que :attr:`~object." "__slots__`, les descripteurs, les propriétés, :meth:`__getattribute__`, les " -"méthodes de classe, et les méthodes statiques." +"méthodes de classe et les méthodes statiques." #: ../Doc/glossary.rst:696 msgid "object" @@ -1690,8 +1705,8 @@ msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." msgstr "" -"N'importe quelle donnée comportant des états sous forme d'attributs ou de " -"valeurs, et un comportement (des méthodes). C'est aussi (``object``) " +"N'importe quelle donnée comportant des états (sous forme d'attributs ou " +"d'une valeur) et un comportement (des méthodes). C'est aussi (``object``) " "l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." @@ -1705,12 +1720,13 @@ msgid "" "subpackages. Technically, a package is a Python module with an ``__path__`` " "attribute." msgstr "" -"Un :term:`module` qui peut contenir des sous modules ou des sous paquets. " -"Techniquement, un paquet est un module qui a un attribut ``__path__``." +":term:`module` Python qui peut contenir des sous-modules ou des sous-" +"paquets. Techniquement, un paquet est un module qui possède un attribut " +"``__path__``." #: ../Doc/glossary.rst:707 msgid "See also :term:`regular package` and :term:`namespace package`." -msgstr "Voir aussi :term:`paquet classique` et :term:`paquet espace de nom`." +msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." #: ../Doc/glossary.rst:708 msgid "parameter" @@ -1722,9 +1738,9 @@ msgid "" "an :term:`argument` (or in some cases, arguments) that the function can " "accept. There are five kinds of parameter:" msgstr "" -"Une entité nommée, dans la définition d'une :term:`fonction` (ou méthode, " +"Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " "décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sorte de paramètres :" +"fonction accepte. Il existe cinq sortes de paramètres :" #: ../Doc/glossary.rst:714 msgid "" @@ -1733,10 +1749,10 @@ msgid "" "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" -":dfn:`positional-or-keyword`: dit d'un argument qui peut être passé soit par " -"sa :term:`position ` soit en temps que :term:`paramètre nommé " -"`. C'est le type de paramètre par défaut, par exemple, *foo* et " -"*bar* dans l'exemple suivant : ::" +":dfn:`positional-or-keyword`: l'argument peut être passé soit par sa :term:" +"`position `, soit en tant que :term:`argument nommé `. " +"C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " +"l'exemple suivant : ::" #: ../Doc/glossary.rst:721 msgid "" @@ -1745,9 +1761,9 @@ msgid "" "However, some built-in functions have positional-only parameters (e.g. :func:" "`abs`)." msgstr "" -":dfn:`positional-only`: un argument qui ne peut être donné que par sa " -"position. Python n'a pas de syntaxe pour déclarer de tels paramètre, " -"cependant des fonctions natives, comme :func:`abs` en utilisent." +":dfn:`positional-only`: l'argument ne peut être donné que par sa position. " +"Python n'a pas de syntaxe pour déclarer de tels paramètres, cependant des " +"fonctions natives, comme :func:`abs`, en utilisent." #: ../Doc/glossary.rst:728 msgid "" @@ -1757,10 +1773,11 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" -":dfn:`keyword-only`: définit un argument qui ne peut être fournit que par " -"nom. Les paramètres *keyword-only* peuvent être définis en utilisant un seul " -"paramètre *var-positional*, ou en ajoutant une étoire (*) seule dans la " -"liste des paramètres avant avant eux. Comme kw_only1 et kw_only2 ici : ::" +":dfn:`keyword-only`: l'argument ne peut être fourni que nommé. Les " +"paramètres *keyword-only* peuvent être définis en utilisant un seul " +"paramètre *var-positional*, ou en ajoutant une étoile (*) seule dans la " +"liste des paramètres avant eux. Par exemple, kw_only1 et kw_only2 dans le " +"code suivant : ::" #: ../Doc/glossary.rst:736 msgid "" @@ -1770,10 +1787,10 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" -":dfn:`var-positional`: spécifie qu'une séquence d'arguments positionels peut " -"être fourni (en plus de tous les arguments positionels déjà acceptés par " -"d'autres paramètres). Un tel paramètre peut être définit en préfixant son " -"nom par une ``*``, par exemple *args* ici : ::" +":dfn:`var-positional`: une séquence d'arguments positionnels peut être " +"fournie (en plus de tous les arguments positionnels déjà acceptés par " +"d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " +"par une ``*``. Par exemple *args* ci-après : ::" #: ../Doc/glossary.rst:744 msgid "" @@ -1782,19 +1799,18 @@ msgid "" "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" -":dfn:`var-keyword`: spécifie qu'une quantité arbitraire d'arguments peuvent " -"être passés par nom (en plus de tous les arguments nommés déjà acceptés par " -"d'autres paramètres). Un tel paramètre est définit en préfixant le nom du " -"paramètre par ``**``, par exemple, *kwargs* ci-dessus." +":dfn:`var-keyword`: une quantité arbitraire d'arguments peut être passée, " +"chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " +"d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " +"paramètre par ``**``. Par exemple, *kwargs* ci-dessus." #: ../Doc/glossary.rst:750 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." msgstr "" -"Les paramètres peuvent décrire aussi bien des paramètres optionnels ou " -"obligatoires, aussi que des valeurs par défaut pour les paramètres " -"optionnels." +"Les paramètres peuvent spécifier des arguments obligatoires ou optionnels, " +"ainsi que des valeurs par défaut pour les arguments optionnels." #: ../Doc/glossary.rst:753 msgid "" @@ -1804,25 +1820,26 @@ msgid "" "`362`." msgstr "" "Voir aussi :term:`argument` dans le glossaire, la question sur :ref:`la " -"différence entre les arguments et les paramètre ` " -"dans la FAQ, la classe :class:`inspect.Parameter`, la section :ref:" -"`function`, et la :pep:`362`." +"différence entre les arguments et les paramètres ` dans la FAQ, la classe :class:`inspect.Parameter`, la section :" +"ref:`function` et la :pep:`362`." #: ../Doc/glossary.rst:757 msgid "path entry" -msgstr "chemin" +msgstr "entrée de path" #: ../Doc/glossary.rst:759 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." msgstr "" -"Un seul emplacement dans l':term:`import path` que le :term:`path based " -"finder` consulte pour trouver des modules à importer." +"Emplacement dans le :term:`chemin des imports ` (*import path* " +"en anglais, d'où le *path*) que le :term:`chercheur basé sur les chemins " +"` consulte pour trouver des modules à importer." #: ../Doc/glossary.rst:761 msgid "path entry finder" -msgstr "path entry finder" +msgstr "chercheur d'entrée dans path" #: ../Doc/glossary.rst:763 msgid "" @@ -1830,21 +1847,22 @@ msgid "" "term:`path entry hook`) which knows how to locate modules given a :term:" "`path entry`." msgstr "" -"Un :term:`finder` donné par un appelable sur un :data:`sys.path_hooks` (çàd " -"un :term:`path entry hook`) qui sait où trouver des modules lorsqu'on lui " -"donne un :term:`path entry`." +":term:`chercheur ` renvoyé par un appelable sur un :data:`sys." +"path_hooks` (c'est-à-dire un :term:`point d'entrée pour la recherche dans " +"path `) qui sait où trouver des modules lorsqu'on lui donne " +"une :term:`entrée de path `." #: ../Doc/glossary.rst:767 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." msgstr "" -"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un *path " -"entry finder* doit implémenter." +"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " +"chercheur d'entrée dans path doit implémenter." #: ../Doc/glossary.rst:769 msgid "path entry hook" -msgstr "path entry hook" +msgstr "point d'entrée pour la recherche dans path" #: ../Doc/glossary.rst:771 msgid "" @@ -1852,21 +1870,22 @@ msgid "" "entry finder` if it knows how to find modules on a specific :term:`path " "entry`." msgstr "" -"Un appelable dans la liste :data:`sys.path_hook` qui donne un :term:`path " -"entry finder` s'il sait où trouver des modules pour un :term:`path entry` " -"donné." +"Appelable dans la liste :data:`sys.path_hook` qui donne un :term:`chercheur " +"d'entrée dans path ` s'il sait où trouver des modules " +"pour une :term:`entrée dans path ` donnée." #: ../Doc/glossary.rst:774 msgid "path based finder" -msgstr "path based finder" +msgstr "chercheur basé sur les chemins" #: ../Doc/glossary.rst:776 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." msgstr "" -"L'un des :term:`meta path finders ` par défaut qui cherche " -"des modules dans un :term:`import path`." +"L'un des :term:`chercheurs dans les méta-chemins ` par " +"défaut qui cherche des modules dans un :term:`chemin des imports `." #: ../Doc/glossary.rst:778 msgid "portion" @@ -1877,13 +1896,13 @@ msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." msgstr "" -"Un jeu de fichiers dans un seul dossier (pouvant être stockés sous forme de " -"fichier zip) qui contribuent à l'espace de nom d'un paquet, tel que définit " +"Jeu de fichiers dans un seul dossier (pouvant être stocké sous forme de " +"fichier zip) qui contribue à l'espace de noms d'un paquet, tel que défini " "dans la :pep:`420`." #: ../Doc/glossary.rst:782 msgid "positional argument" -msgstr "augment positionnel" +msgstr "argument positionnel" #: ../Doc/glossary.rst:785 msgid "provisional API" @@ -1899,14 +1918,14 @@ msgid "" "will not be made gratuitously -- they will occur only if serious fundamental " "flaws are uncovered that were missed prior to the inclusion of the API." msgstr "" -"Une API provisoire est une API délibérément exclue des garanties de " -"rétrocompatibilité de la bibliothèque standard. Bien que des changements " -"majeurs de telles interfaces ne sont pas attendus, tant qu'elles sont " -"marquées provisoires, des changement cassant la rétrocompatibilité (jusqu'à " -"sa suppression complète) peuvent survenir s'ils semblent nécessaires. Ces " -"modifications ne seront pas effectuées gratuitement, ils ne surviendront " -"seulement si de sérieux problèmes sont découvert, qui n'avaient pas étés " -"repérés avant l'ajout de l'API." +"Une API provisoire est une API qui n'offre aucune garantie de " +"rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " +"Bien que des changements majeurs d'une telle interface ne soient pas " +"attendus, tant qu'elle est étiquetée provisoire, des changement cassant la " +"rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " +"les développeurs principaux le jugent nécessaire. Ces modifications ne " +"surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " +"pas été identifiés avant l'ajout de l'API." #: ../Doc/glossary.rst:796 msgid "" @@ -1915,8 +1934,8 @@ msgid "" "backwards compatible resolution to any identified problems." msgstr "" "Même pour les API provisoires, les changement cassant la rétrocompatibilité " -"sont des \"solutions de dernier recours\", tout ce qui est possible sera " -"fait pour tenter de résoudre les problème en conservant la " +"sont considérées comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problème en conservant la " "rétrocompatibilité." #: ../Doc/glossary.rst:800 @@ -1947,8 +1966,8 @@ msgid "" "of version 3 was something in the distant future.) This is also abbreviated " "\"Py3k\"." msgstr "" -"Surnom de la série des Python 3.x (très vieux surnom donné à l'époque pour " -"Python 3 n'était qu'un futur lointain). Aussi abrégé \"Py3k\"." +"Surnom donné à la série des Python 3.x (très vieux surnom donné à l'époque " +"où Python 3 représentait un futur lointain). Aussi abrégé \"Py3k\"." #: ../Doc/glossary.rst:811 msgid "Pythonic" @@ -1963,12 +1982,12 @@ msgid "" "languages don't have this type of construct, so people unfamiliar with " "Python sometimes use a numerical counter instead::" msgstr "" -"Une idée, ou un bout de code, qui suit de près la philosophie de Python, " -"parfois en opposition avec les concepts rencontrés dans d'autres langages. " -"Typiquement, la coutume en Python est de parcourir les éléments d'un " -"itérable en utilisant :keyword:`for`. Beaucoup de langages n'ont pas cette " -"possibilité, donc les gens qui ne sont pas habitués à Python pourraient " -"parfois utiliser un compteur à la place : ::" +"Idée, ou bout de code, qui colle aux idiomes de Python plutôt qu'aux " +"concepts communs rencontrés dans d'autres langages. Par exemple, il est " +"idiomatique en Python de parcourir les éléments d'un itérable en utilisant :" +"keyword:`for`. Beaucoup d'autres langages n'ont pas cette possibilité, donc " +"les gens qui ne sont pas habitués à Python utilisent parfois un compteur " +"numérique à la place : ::" #: ../Doc/glossary.rst:823 msgid "As opposed to the cleaner, Pythonic method::" @@ -1986,8 +2005,8 @@ msgid "" "top-level functions and classes, the qualified name is the same as the " "object's name::" msgstr "" -"Un nom, comprenant des points, montrant le \"chemin\" de l'espace de nom " -"globale d'un module à une class, fonction, ou méthode définie dans ce " +"Nom, comprenant des points, montrant le \"chemin\" de l'espace de noms " +"global d'un module vers une classe, fonction ou méthode définie dans ce " "module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " "premier niveau, le nom qualifié est le même que le nom de l'objet : ::" @@ -1998,8 +2017,9 @@ msgid "" "text``::" msgstr "" "Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " -"signifie le chemin complet (séparé par des points) vers le module, incluant " -"tous les paquet parents, typiquement: ``email.mime.text`` ::" +"(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " +"par des points) vers le module, incluant tous les paquets parents. Par " +"exemple : ``email.mime.text`` ::" #: ../Doc/glossary.rst:853 msgid "reference count" @@ -2014,12 +2034,12 @@ msgid "" "function that programmers can call to return the reference count for a " "particular object." msgstr "" -"Le nombre de références à un objet. Lorsque le nombre de références à un " -"objet descend à zéro, l'objet est désalloué. Le comptage de référence n'est " -"généralement pas visible dans le code Python, mais c'est un élément clef de " -"l'implémentation :term:`CPython`. Le module :mod:`sys` défini une fonction :" +"Nombre de références à un objet. Lorsque le nombre de références à un objet " +"descend à zéro, l'objet est désalloué. Le comptage de référence n'est " +"généralement pas visible dans le code Python, mais c'est un élément clé de " +"l'implémentation :term:`CPython`. Le module :mod:`sys` définit une fonction :" "func:`~sys.getrefcount` que les développeurs peuvent utiliser pour obtenir " -"le nombre de référence d'un objet donné." +"le nombre de références à un objet donné." #: ../Doc/glossary.rst:861 msgid "regular package" @@ -2030,12 +2050,12 @@ msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." msgstr "" -"Un :term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " +":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " "``__init__.py``." #: ../Doc/glossary.rst:866 msgid "See also :term:`namespace package`." -msgstr "Voir aussi :term:`paquet espace de nom`." +msgstr "Voir aussi :term:`paquet-espace de noms`." #: ../Doc/glossary.rst:867 msgid "__slots__" @@ -2049,11 +2069,12 @@ msgid "" "cases where there are large numbers of instances in a memory-critical " "application." msgstr "" -"Une déclaration dans une classe qui économise de la mémoire en pré-allouant " -"de l'espace pour les instances des attributs, et le dictionnaire des " -"instances. Bien que populaire, cette technique est difficile à maîtriser et " -"devrait être réservée à de rares cas avec un grand nombre d'instances dans " -"une application où la mémoire est un sujet critique." +"Déclaration dans une classe qui économise de la mémoire en pré-allouant de " +"l'espace pour les attributs des instances et qui élimine le dictionnaire " +"(des attributs) des instances. Bien que populaire, cette technique est " +"difficile à maîtriser et devrait être réservée à de rares cas où un grand " +"nombre d'instances dans une application devient un sujet critique pour la " +"mémoire." #: ../Doc/glossary.rst:874 msgid "sequence" @@ -2069,14 +2090,14 @@ msgid "" "`__len__`, but is considered a mapping rather than a sequence because the " "lookups use arbitrary :term:`immutable` keys rather than integers." msgstr "" -"Un :term:`itérable` qui gère l'accès efficient à ses éléments par un indice " +":term:`itérable` qui offre un accès efficace à ses éléments par un indice " "sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " -"qui défini une méthode :meth:`__len__` qui donne sa taille. Voici quelques " +"qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " "séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" -"`bytes`. Notez que :class:`dict` a aussi une méthode :meth:`__getitem__` et " -"une méthode :meth:`__len__`, mais il est considéré comme un *mapping* plutôt " -"qu'une séquence, car ses accès se font par une clef arbitraire :term:" -"`immuable` plutôt qu'un nombre entier." +"`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" +"`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " +"*mapping* plutôt qu'une séquence, car ses accès se font par une clé " +"arbitraire :term:`immuable` plutôt qu'un nombre entier." #: ../Doc/glossary.rst:885 msgid "" @@ -2086,9 +2107,9 @@ msgid "" "meth:`__reversed__`. Types that implement this expanded interface can be " "registered explicitly using :func:`~abc.register`." msgstr "" -"La class abstraite de base :class:`collections.abc.Sequence` défini une " -"interface plus riche qui va au delà des simples :meth:`__getitem__` et :meth:" -"`__len__`, en ajoutant :meth:`count`, :meth:`index`, :meth:`__contains__`, " +"La classe abstraite de base :class:`collections.abc.Sequence` définit une " +"interface plus riche qui va au-delà des simples :meth:`__getitem__` et :meth:" +"`__len__`, en ajoutant :meth:`count`, :meth:`index`, :meth:`__contains__` " "et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " "peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." @@ -2101,7 +2122,7 @@ msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." msgstr "" -"Une forme de distribution, comme les :term:`fonction génériques `, où l'implémentation est choisie en fonction du type d'un seul " "argument." @@ -2116,9 +2137,9 @@ msgid "" "when several are given, such as in ``variable_name[1:3:5]``. The bracket " "(subscript) notation uses :class:`slice` objects internally." msgstr "" -"*slice*, un objet contenant habituellement une portion de :term:`séquence`. " -"Une tranche est crée en utilisant la notation ``[]`` avec des ``:`` entre " -"les nombres lorsque plusieurs sont fournis, tel que dans " +"(*slice* en anglais), un objet contenant habituellement une portion de :term:" +"`séquence`. Une tranche est créée en utilisant la notation ``[]`` avec des " +"``:`` entre les nombres lorsque plusieurs sont fournis, comme dans " "``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` " "en interne." @@ -2133,10 +2154,10 @@ msgid "" "with double underscores. Special methods are documented in :ref:" "`specialnames`." msgstr "" -"*special method*: Une méthode appelée implicitement par Python pour exécuter " -"une opération sur un type, tel qu'une addition. De telles méthodes ont des " -"noms commençant et terminant par des doubles tirets bas. Les méthodes " -"spéciales sont documentées dans :ref:`specialnames`." +"(*special method* en anglais) Méthode appelée implicitement par Python pour " +"exécuter une opération sur un type, comme une addition. De telles méthodes " +"ont des noms commençant et terminant par des doubles tirets bas. Les " +"méthodes spéciales sont documentées dans :ref:`specialnames`." #: ../Doc/glossary.rst:908 msgid "statement" @@ -2148,10 +2169,10 @@ msgid "" "an :term:`expression` or one of several constructs with a keyword, such as :" "keyword:`if`, :keyword:`while` or :keyword:`for`." msgstr "" -"Une instruction (*statement*) fait partie d'une suite, (un \"bloc\" de " -"code). Une instruction est soit une :term:`expression` soit une ou plusieurs " -"constructions basées sur un mot-clef, tel qu'un :keyword:`if`, :keyword:" -"`while`, ou :keyword:`for`." +"Une instruction (*statement* en anglais) est un composant d'un \"bloc\" de " +"code. Une instruction est soit une :term:`expression`, soit une ou plusieurs " +"constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " +"ou :keyword:`for`." #: ../Doc/glossary.rst:913 msgid "struct sequence" @@ -2166,12 +2187,12 @@ msgid "" "`~collections.somenamedtuple._asdict`. Examples of struct sequences include :" "data:`sys.float_info` and the return value of :func:`os.stat`." msgstr "" -"Un n-uplet (*tuple*) dont les éléments sont nommés. Les *struct sequences* " -"exposent une interface similaires au :term:`named tuple` par le fait que " -"leurs éléments peuvent être accédés par nom d'attribut ou par indice. " -"Cependant, elles n'ont aucune des méthodes du *named tuple*, comme :meth:" +"Un n-uplet (*tuple* en anglais) dont les éléments sont nommés. Les *struct " +"sequences* exposent une interface similaire au :term:`n-uplet nommé` car on " +"peut accéder à leurs éléments par un nom d'attribut ou par un indice. " +"Cependant, elles n'ont aucune des méthodes du *n-uplet nommé* : ni :meth:" "`collections.somenamedtuple._make` ou :meth:`~collections.somenamedtuple." -"_asdict`. Par exemple :data:`sys.float_info`, ou les valeurs données par :" +"_asdict`. Par exemple :data:`sys.float_info` ou les valeurs données par :" "func:`os.stat` sont des *struct sequence*." #: ../Doc/glossary.rst:921 @@ -2180,7 +2201,9 @@ msgstr "encodage de texte" #: ../Doc/glossary.rst:923 msgid "A codec which encodes Unicode strings to bytes." -msgstr "Un codec qui convertit des chaînes de caractères Unicode en octets." +msgstr "" +"Codec (codeur-décodeur) qui convertit des chaînes de caractères Unicode en " +"octets (classe *bytes*)." #: ../Doc/glossary.rst:924 msgid "text file" @@ -2214,14 +2237,14 @@ msgid "" "continuation character, making them especially useful when writing " "docstrings." msgstr "" -"Une chaîne qui est assembée par trois guillemets simples (``'``) ou trois " -"guillemets doubles (``\"``). Bien qu'elles ne fournissent aucune " -"fonctionalité qui ne serait pas disponnible avec les chaînes entre " -"guillemets, elles sont utiles pour moultes raisons. Elles vous autorisent à " -"insérer des guillemets simples et doubles dans une chaîne sans avoir à les " -"protéger, et elles peuvent s'étendre sur plusieurs lignes sans avoir à les " -"terminer par un ``\\``, les rendant ainsi particulièrement utile pour les " -"chaînes de documentation (*docstrings*)." +"Chaîne qui est délimitée par trois guillemets simples (``'``) ou trois " +"guillemets doubles (``\"``). Bien qu'elle ne fournisse aucune fonctionnalité " +"qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " +"pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " +"simples et doubles dans une chaîne sans avoir à les protéger et elle peut " +"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un ``" +"\\``. Elle est ainsi particulièrement utile pour les chaînes de " +"documentation (*docstrings*)." #: ../Doc/glossary.rst:941 msgid "type" @@ -2249,11 +2272,11 @@ msgid "" "``'\\r'``. See :pep:`278` and :pep:`3116`, as well as :func:`bytes." "splitlines` for an additional use." msgstr "" -"Une manière d'interpréter des flux de texte dans lesquels toutes les fin de " -"lignes suivantes sont reconnues: la convention Unix ``'\\n'``, la convention " -"Windows ``'\\r\\n'``, et l'ancienne convention Macintosh ``'\\r'``. Voir la :" -"pep:`278` et la :pep:`3116`, ainsi que la fonction :func:`bytes.splitlines` " -"pour d'autres usages." +"Une manière d'interpréter des flux de texte dans lesquels sont reconnues " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " +"``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" +"`bytes.splitlines` pour d'autres usages." #: ../Doc/glossary.rst:954 msgid "virtual environment" @@ -2266,10 +2289,10 @@ msgid "" "interfering with the behaviour of other Python applications running on the " "same system." msgstr "" -"Un environnement isolé, coopérant à son isolement à l'execution, qui permet " -"aux utilisateurs de Python et aux applications d'installer et de mettre à " -"jour des paquets sans interférer avec d'autres applications Python " -"fonctionnant sur le même système." +"Environnement d'exécution isolé (en mode coopératif) qui permet aux " +"utilisateurs de Python et aux applications d'installer et de mettre à jour " +"des paquets sans interférer avec d'autres applications Python fonctionnant " +"sur le même système." #: ../Doc/glossary.rst:961 msgid "See also :ref:`scripts-pyvenv`." @@ -2284,13 +2307,13 @@ msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." msgstr "" -"Un ordinateur défini entièrement par du logiciel. La machine virtuelle " -"(*virtual machine*) de Python exécute le :term:`bytecode` donné par le " +"Ordinateur défini entièrement par du logiciel. La machine virtuelle " +"(*virtual machine*) de Python exécute le :term:`bytecode` produit par le " "compilateur de *bytecode*." #: ../Doc/glossary.rst:966 msgid "Zen of Python" -msgstr "Le Zen de Python" +msgstr "Le zen de Python" #: ../Doc/glossary.rst:968 msgid "" @@ -2298,6 +2321,6 @@ msgid "" "understanding and using the language. The listing can be found by typing " "\"``import this``\" at the interactive prompt." msgstr "" -"Liste de principes et de philosophies utiles pour comprendre et utiliser le " +"Liste de principes et de préceptes utiles pour comprendre et utiliser le " "langage. Cette liste peut être obtenue en tapant \"``import this``\" dans " "une invite Python interactive." diff --git a/howto/argparse.po b/howto/argparse.po index 0e68cf75..79ad4daa 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/howto/argparse.rst:3 msgid "Argparse Tutorial" -msgstr "Tutoriel Argparse" +msgstr "Tutoriel argparse" #: ../Doc/howto/argparse.rst:5 msgid "Tshepang Lekhonkhobe" @@ -375,17 +375,19 @@ msgstr "Et voilà le résultat :" #: ../Doc/howto/argparse.rst:374 msgid "We've brought back a positional argument, hence the complaint." -msgstr "" +msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur." #: ../Doc/howto/argparse.rst:376 msgid "Note that the order does not matter." -msgstr "" +msgstr "Notez que l'ordre importe peu." #: ../Doc/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::" 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 msgid "" @@ -393,12 +395,17 @@ msgid "" "Let's fix it by restricting the values the ``--verbosity`` option can " "accept::" msgstr "" +"Tout semble bon sauf le dernier, qui montre que notre programme contient un " +"bogue. Corrigeons cela en restreignant les options que ``--verbosity`` " +"accepte : ::" #: ../Doc/howto/argparse.rst:448 msgid "" "Note that the change also reflects both in the error message as well as the " "help string." 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 msgid "" @@ -406,40 +413,55 @@ msgid "" "pretty common. It also matches the way the CPython executable handles its " "own verbosity argument (check the output of ``python --help``)::" msgstr "" +"Essayons maintenant une approche différente pour jouer sur la verbosité, ce " +"qui arrive fréquemment. Cela correspond également à comment le programme " +"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 msgid "" "We have introduced another action, \"count\", to count the number of " "occurrences of a specific optional arguments:" msgstr "" +"Nous avons introduit une autre action, \"count\", pour compter le nombre " +"d’occurrences d'une argument optionnel en particulier :" #: ../Doc/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." msgstr "" +"Oui, c'est maintenant d'avantage une option (similaire à ``action=" +"\"store_true\"``) de la version précédente de notre script. Cela devrait " +"expliquer le message d'erreur." #: ../Doc/howto/argparse.rst:501 msgid "It also behaves similar to \"store_true\" action." -msgstr "" +msgstr "Cela se comporte de la même manière que l'action \"store_true\"." #: ../Doc/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." 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 msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." msgstr "" +"Et si vous ne spécifiez pas le option ``-v``, ce option sera considéré en " +"tant que valeur ``None``." #: ../Doc/howto/argparse.rst:509 msgid "" "As should be expected, specifying the long form of the flag, we should get " "the same output." 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 msgid "" @@ -447,32 +469,39 @@ msgid "" "has acquired, but that can always be fixed by improving the documentation " "for our script (e.g. via the ``help`` keyword argument)." msgstr "" +"Malheureusement, notre sortie d'aide n'est pas très informative à propos des " +"nouvelles possibilités de notre programme, mais cela peut toujours être " +"corrigé en améliorant sa documentation. (e.g. en utilisant le l'argument " +"``help``)." #: ../Doc/howto/argparse.rst:516 msgid "That last output exposes a bug in our program." -msgstr "" +msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." #: ../Doc/howto/argparse.rst:519 msgid "Let's fix::" -msgstr "" +msgstr "Corrigeons : ::" #: ../Doc/howto/argparse.rst:538 msgid "And this is what it gives:" -msgstr "" +msgstr "Et c'est ce que ça donne :" #: ../Doc/howto/argparse.rst:552 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." msgstr "" +"Les premières exécutions du programme sont correctes, et le bogue que nous " +"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:555 msgid "Third output not so good." -msgstr "" +msgstr "La troisième sortie de programme n'est pas si bien que ça." #: ../Doc/howto/argparse.rst:557 msgid "Let's fix that bug::" -msgstr "" +msgstr "Corrigeons ce bogue : ::" #: ../Doc/howto/argparse.rst:574 msgid "" @@ -482,10 +511,15 @@ msgid "" "value, and that cannot be compared to an int value (hence the :exc:" "`TypeError` exception)." msgstr "" +"Nous venons juste d'introduire un nouveau mot clef, ``default``. Nous " +"l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " +"Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " +"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:581 msgid "And:" -msgstr "" +msgstr "Et :" #: ../Doc/howto/argparse.rst:588 msgid "" @@ -493,16 +527,22 @@ msgid "" "scratched the surface. The :mod:`argparse` module is very powerful, and " "we'll explore a bit more of it before we end this tutorial." msgstr "" +"Vous pouvez aller assez loin seulement avec ce que nous avons appris jusqu'à " +"maintenant, et nous n'avons qu’aperçu la surface. Le module :mod:`argparse` " +"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce " +"tutoriel." #: ../Doc/howto/argparse.rst:595 msgid "Getting a little more advanced" -msgstr "" +msgstr "Aller un peu plus loin" #: ../Doc/howto/argparse.rst:597 msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" msgstr "" +"Qu'en est il si nous souhaitons étendre notre mini programe pour le rendre " +"capable de calculer d'autres puissances, et pas seulement des carrés : ::" #: ../Doc/howto/argparse.rst:614 ../Doc/howto/argparse.rst:652 msgid "Output:" @@ -514,10 +554,13 @@ msgid "" "that gets displayed. The following example instead uses verbosity level to " "display *more* text instead::" msgstr "" +"Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité " +"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:666 msgid "Conflicting options" -msgstr "" +msgstr "Options en conflit" #: ../Doc/howto/argparse.rst:668 msgid "" @@ -528,12 +571,22 @@ msgid "" "the new functionality makes more sense: we'll introduce the ``--quiet`` " "option, which will be the opposite of the ``--verbose`` one::" msgstr "" +"Jusque là, nous avons travaillé avec deux méthodes d'une instance de :class:" +"`argparse.ArgumentParser`. En voici une troisième, :meth:" +"`add_mutually_exclusive_group`. Elle nous permet de spécifier des options " +"qui sont en conflit entre elles. Changeons aussi le reste du programme de " +"telle sorte que la nouvelle fonctionnalité fasse sens : nous allons " +"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" +"verbose`` : ::" #: ../Doc/howto/argparse.rst:694 msgid "" "Our program is now simpler, and we've lost some functionality for the sake " "of demonstration. Anyways, here's the output:" msgstr "" +"Notre programme est maintenant plus simple, et nous avons perdu des " +"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie " +"du programme :" #: ../Doc/howto/argparse.rst:712 msgid "" @@ -541,12 +594,18 @@ msgid "" "the sort of flexibility you get, i.e. mixing long form options with short " "form ones." msgstr "" +"Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " +"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, i.e. " +"faire un mixe entre des options courtes et longues." #: ../Doc/howto/argparse.rst:716 msgid "" "Before we conclude, you probably want to tell your users the main purpose of " "your program, just in case they don't know::" msgstr "" +"Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " +"le but principal de votre programme, juste dans le cas ou ils ne savent " +"pas : ::" #: ../Doc/howto/argparse.rst:737 msgid "" @@ -554,10 +613,13 @@ msgid "" "tells us that we can either use ``-v`` or ``-q``, but not both at the same " "time:" msgstr "" +"Notez cette nuance dans le texte d'utlisation. Les options `[-v | -q]``, qui " +"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " +"les deux ensemble :" #: ../Doc/howto/argparse.rst:759 msgid "Conclusion" -msgstr "" +msgstr "Conclusion" #: ../Doc/howto/argparse.rst:761 msgid "" @@ -565,3 +627,7 @@ msgid "" "quite detailed and thorough, and full of examples. Having gone through this " "tutorial, you should easily digest them without feeling overwhelmed." msgstr "" +"Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " +"documentation est assez détaillée complète et pleine d'exemples. En ayant " +"accompli ce tutoriel, vous pourriez facilement comprendre cette " +"documentation sans vous sentir dépassé." diff --git a/howto/clinic.po b/howto/clinic.po index cd739341..a99a7e1c 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -36,6 +36,12 @@ msgid "" "to work with Argument Clinic, and then introduces some advanced topics on " "Argument Clinic usage." msgstr "" +"Argument Clinic est un préprocesseur pour les fichiers C de CPython. Il " +"permet d'automatiser les tâches répétitives lors de la rédaction du code " +"d'analyse d'arguments pour les modules natifs. Ce document vous montre " +"comment convertir votre première fonction C de façon à ce qu'elle fonctionne " +"avec Argument Clinic, avant d'introduire des usages plus avancés d'Argument " +"Clinic. " #: ../Doc/howto/clinic.rst:17 msgid "" @@ -50,7 +56,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:27 msgid "The Goals Of Argument Clinic" -msgstr "" +msgstr "Les objectifs d'Argument Clinic" #: ../Doc/howto/clinic.rst:29 msgid "" @@ -70,6 +76,11 @@ msgid "" "chore, requiring maintaining redundant information in a surprising number of " "places. When you use Argument Clinic, you don't have to repeat yourself." msgstr "" +"Pour que le premier objectif d'Argument Clinic soit atteint, il faut qu'il " +"soit facile à utiliser. Actuellement, travailler avec la bibliothèque " +"d'analyse d'arguments de CPython est une corvée. Il faut maintenir une " +"quantité surprenante d'informations redondantes. En utilisant Argument " +"Clinic, il n'est plus nécessaire de se répéter." #: ../Doc/howto/clinic.rst:45 msgid "" @@ -90,6 +101,10 @@ msgid "" "approach to argument parsing. Python has some functions with some very " "strange parsing behaviors; Argument Clinic's goal is to support all of them." msgstr "" +"De plus, Argument Clinic doit être suffisamment flexible pour s'accommoder " +"d'approches différentes de l'analyse d'arguments. Il y a des fonctions dans " +"Python dont le traitement des arguments est très étrange ; le but d'Argument " +"Clinic est de les gérer toutes. " #: ../Doc/howto/clinic.rst:62 msgid "" @@ -98,6 +113,11 @@ msgid "" "introspection query functions would throw an exception if you passed in a " "builtin. With Argument Clinic, that's a thing of the past!" msgstr "" +"Finalement, la motivation première d'Argument Clinic était de fournir des « " +"signatures » pour l'introspection des composants natifs de CPython. " +"Précédemment, les fonctions d'introspection levaient une exception si vous " +"passiez un composant natif. Grâce à Argument Clinic, ce comportement " +"appartient au passé !" #: ../Doc/howto/clinic.rst:68 msgid "" @@ -107,10 +127,15 @@ msgid "" "more sophisticated, and it should be able to do many interesting and smart " "things with all the information you give it." msgstr "" +"En travaillant avec Argument Clinic, il faut garder à l'esprit que plus vous " +"lui donnez de détails, meilleur sera son boulot. Argument Clinic est bien " +"sûr assez simple pour le moment. Mais à mesure qu'il évoluera et deviendra " +"plus sophistiqué, il sera capable de faire beaucoup de choses intéressantes " +"et intelligentes à partir de l'information que vous lui fournissez." #: ../Doc/howto/clinic.rst:78 msgid "Basic Concepts And Usage" -msgstr "" +msgstr "Concepts de base et utilisation" #: ../Doc/howto/clinic.rst:80 msgid "" @@ -136,6 +161,9 @@ msgid "" "these lines, including the beginning and ending comment lines, are " "collectively called an Argument Clinic \"block\"." msgstr "" +"Tout ce qui se trouve entre ces deux lignes est une entrée pour Argument " +"Clinic. Toutes ces lignes, en incluant les commentaires de début et de fin, " +"sont appelées collectivement un « bloc » d'Argument Clinic. " #: ../Doc/howto/clinic.rst:99 msgid "" @@ -152,6 +180,10 @@ msgid "" "checksum line. However, if the input hasn't changed, the output won't " "change either." msgstr "" +"Si vous exécutez de nouveau Argument Clinic sur ce même fichier, Argument " +"Clinic supprime la vieille sortie, et écrit la nouvelle sortie avec une " +"ligne de somme de contrôle mise à jour. Cependant, si l'entrée n'a pas " +"changé, la sortie ne change pas non plus. " #: ../Doc/howto/clinic.rst:114 msgid "" @@ -166,32 +198,42 @@ msgstr "" msgid "" "For the sake of clarity, here's the terminology we'll use with Argument " "Clinic:" -msgstr "" +msgstr "Par souci de clarté, voilà la terminologie que nous emploierons :" #: ../Doc/howto/clinic.rst:121 msgid "" "The first line of the comment (``/*[clinic input]``) is the *start line*." msgstr "" +"La première ligne du commentaire (``/*[clinic input]``) est la *ligne de " +"début*." #: ../Doc/howto/clinic.rst:122 msgid "" "The last line of the initial comment (``[clinic start generated code]*/``) " "is the *end line*." msgstr "" +"La dernière ligne du commentaire initial (``[clinic start generated code]*/" +"``) est la *ligne de fin*." #: ../Doc/howto/clinic.rst:123 msgid "" "The last line (``/*[clinic end generated code: checksum=...]*/``) is the " "*checksum line*." msgstr "" +"La dernière ligne (``/*[clinic end generated code: checksum=...]*/``) est la " +"*ligne de contrôle*. " #: ../Doc/howto/clinic.rst:124 msgid "In between the start line and the end line is the *input*." msgstr "" +"On appelle *entrée* ce qui se trouve entre la ligne de début et la ligne de " +"fin." #: ../Doc/howto/clinic.rst:125 msgid "In between the end line and the checksum line is the *output*." msgstr "" +"Et on appelle *sortie* ce qui se trouve entre la ligne de fin et la ligne de " +"contrôle." #: ../Doc/howto/clinic.rst:126 msgid "" @@ -200,10 +242,14 @@ msgid "" "processed by Argument Clinic yet doesn't have output or a checksum line, but " "it's still considered a block.)" msgstr "" +"L'ensemble du texte, depuis la ligne de début jusqu'à la ligne de contrôle " +"incluse s'appelle le *bloc*. (Un bloc qui n'a pas encore été traité avec " +"succès par Argument Clinic n'a pas encore de sortie ni de ligne de contrôle " +"mais est quand même considéré comme un bloc)" #: ../Doc/howto/clinic.rst:133 msgid "Converting Your First Function" -msgstr "" +msgstr "Convertissez votre première fonction" #: ../Doc/howto/clinic.rst:135 msgid "" @@ -215,16 +261,26 @@ msgid "" "document (like \"return converters\" and \"self converters\"). But we'll " "keep it simple for this walkthrough so you can learn." msgstr "" +"La meilleure manière de comprendre le fonctionnement d'Argument Clinic est " +"de convertir une fonction. Voici donc les étapes minimales que vous devez " +"suivre pour convertir une fonction de manière à ce qu'elle fonctionne avec " +"Argument Clinic. Remarquez que pour du code que vous comptez inclure dans " +"CPython, vous devrez certainement pousser plus loin la conversion, en " +"utilisant les concepts avancés que nous verrons plus loin dans ce document " +"(comme ``return converters`` et ``self converters``). Mais concentrons nous " +"pour le moment sur les choses simples." #: ../Doc/howto/clinic.rst:144 msgid "Let's dive in!" -msgstr "" +msgstr "En route !" #: ../Doc/howto/clinic.rst:146 msgid "" "Make sure you're working with a freshly updated checkout of the CPython " "trunk." msgstr "" +"Assurez-vous que vous travaillez sur une copie récemment mise à jour du code " +"de CPython." #: ../Doc/howto/clinic.rst:149 msgid "" @@ -232,12 +288,16 @@ msgid "" "func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " "Argument Clinic yet. For my example I'm using ``_pickle.Pickler.dump()``." msgstr "" +"Trouvez une fonction native de Python qui fait appel à :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords`, et n'a pas " +"encore été convertie par Argument Clinic. Pour cet exemple, j'utilise " +"``_pickle.Pickler.dump()``." #: ../Doc/howto/clinic.rst:154 msgid "" "If the call to the ``PyArg_Parse`` function uses any of the following format " "units:" -msgstr "" +msgstr "Si l'appel à ``PyArg_Parse`` utilise l'un des formats suivants :" #: ../Doc/howto/clinic.rst:166 msgid "" @@ -256,10 +316,17 @@ msgid "" "to Argument Clinic. Argument Clinic doesn't support generic functions or " "polymorphic parameters." msgstr "" +"Par ailleurs, si la fonction a des appels multiples à :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` dans lesquels " +"elle permet différents types pour les mêmes arguments, il n'est probablement " +"pas possible de la convertir pour Argument Clinic. Argument Clinic ne gère " +"pas les fonctions génériques ou les paramètres polymorphes." #: ../Doc/howto/clinic.rst:178 msgid "Add the following boilerplate above the function, creating our block::" msgstr "" +"Ajoutez les lignes standard suivantes au-dessus de votre fonction pour créer " +"notre bloc : ::" #: ../Doc/howto/clinic.rst:183 msgid "" @@ -268,6 +335,11 @@ msgid "" "should have just the text, based at the left margin, with no line wider than " "80 characters. (Argument Clinic will preserve indents inside the docstring.)" msgstr "" +"Coupez la docstring et collez la entre les lignes commençant par " +"``[clinic]``, en enlevant tout le bazar qui en fait une chaîne de caractères " +"correcte en C. Une fois que c'est fait, vous devez avoir seulement le texte, " +"aligné à gauche, sans ligne plus longue que 80 caractères (Argument Clinic " +"préserve l'indentation à l'intérieur de la docstring)." #: ../Doc/howto/clinic.rst:189 msgid "" @@ -282,7 +354,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:334 ../Doc/howto/clinic.rst:361 #: ../Doc/howto/clinic.rst:470 ../Doc/howto/clinic.rst:522 msgid "Sample::" -msgstr "" +msgstr "Échantillon : ::" #: ../Doc/howto/clinic.rst:201 msgid "" @@ -291,12 +363,18 @@ msgid "" "paragraph consisting of a single 80-column line at the beginning of the " "docstring." msgstr "" +"Si votre docstring ne contient pas de ligne « résumé », Argument Clinic va " +"se plaindre. Assurons-nous donc qu'il y en a une. La ligne « résumé » doit " +"être un paragraphe consistant en une seule ligne de 80 colonnes au début de " +"la docstring." #: ../Doc/howto/clinic.rst:206 msgid "" "(Our example docstring consists solely of a summary line, so the sample code " "doesn't have to change for this step.)" msgstr "" +"Dans notre exemple, la docstring est seulement composée d'une ligne de " +"résumé, donc le code ne change pas à cette étape." #: ../Doc/howto/clinic.rst:209 msgid "" @@ -316,6 +394,12 @@ msgid "" "statics go at the top. (In our sample code we'll just show the two blocks " "next to each other.)" msgstr "" +"Si c'est la première fois que ce module ou cette classe est utilisée avec " +"Argument Clinic dans ce fichier C, vous devez déclarer votre module et/ou " +"votre classe. Pour suivre de bonnes pratiques avec Argument Clinic, il vaut " +"mieux faire ces déclaration quelque part en tête du fichier C, comme les " +"fichiers inclus et les statiques (dans cet extrait, nous montrons les deux " +"blocs à côté l'un de l'autre)." #: ../Doc/howto/clinic.rst:232 msgid "" @@ -323,6 +407,9 @@ msgid "" "Python. Check the name defined in the :c:type:`PyModuleDef` or :c:type:" "`PyTypeObject` as appropriate." msgstr "" +"Le nom de la classe et du module doivent être les mêmes que ceux vus par " +"Python. Selon le cas, référez-vous à :c:type:`PyModuleDef` ou :c:type:" +"`PyTypeObject`" #: ../Doc/howto/clinic.rst:236 msgid "" @@ -330,6 +417,10 @@ msgid "" "C: the type declaration you'd use for a pointer to an instance of this " "class, and a pointer to the :c:type:`PyTypeObject` for this class." msgstr "" +"Quand vous déclarez une classe, vous devez aussi spécifier deux aspects de " +"son type en C: la déclaration de type que vous utiliseriez pour un pointeur " +"vers une instance de cette classe et un pointeur vers le :c:type:" +"`PyTypeObject` de cette classe." #: ../Doc/howto/clinic.rst:256 msgid "" @@ -337,6 +428,9 @@ msgid "" "its own line. All the parameter lines should be indented from the function " "name and the docstring." msgstr "" +"Déclarez chacun des paramètres de la fonction. Chaque paramètre doit être " +"sur une ligne séparée. Tous les paramètres doivent être indentés par rapport " +"au nom de la fonction et à la docstring." #: ../Doc/howto/clinic.rst:260 msgid "The general form of these parameter lines is as follows::" @@ -352,10 +446,13 @@ msgid "" "please see :ref:`the section below on default values ` for " "more information." msgstr "" +"Argument Clinic peut traiter les « valeurs par défaut » de manière assez " +"sophistiquée; voyez :ref:`la section ci-dessous sur les valeurs par défaut " +"` pour plus de détails." #: ../Doc/howto/clinic.rst:273 msgid "Add a blank line below the parameters." -msgstr "" +msgstr "Ajoutez une ligne vide sous les paramètres." #: ../Doc/howto/clinic.rst:275 msgid "" @@ -375,12 +472,21 @@ msgid "" "parsing function what the type of the variable is and how to convert it. " "For more on format units please see :ref:`arg-parsing`.)" msgstr "" +"Pour chaque paramètre, copiez l'« unité de format » de ce paramètre à partir " +"de l'argument de ``PyArg_Parse()`` et spécifiez *ça* comme convertisseur, " +"entre guillemets. (l'« unité de format » est le nom formel pour la partie du " +"paramètre ``format``, de un à trois caractères, qui indique à la fonction " +"d'analyse d'arguments quel est le type de la variable et comment la " +"convertir. Pour plus d'information sur les unités de format, voyez :ref:`arg-" +"parsing`.)" #: ../Doc/howto/clinic.rst:291 msgid "" "For multicharacter format units like ``z#``, use the entire two-or-three " "character string." msgstr "" +"Pour des unités de format de plusieurs caractères, comme ``z#``, utilisez " +"l'ensemble des 2 ou 3 caractères de la chaîne. " #: ../Doc/howto/clinic.rst:309 msgid "" @@ -388,6 +494,10 @@ msgid "" "have default values, you can ignore it. Argument Clinic infers which " "parameters are optional based on whether or not they have default values." msgstr "" +"Si votre fonction a le caractère ``|`` dans son format, parce que certains " +"paramètres ont des valeurs par défaut, vous pouvez l'ignorer. Argument " +"Clinic infère quels paramètres sont optionnels selon s'ils ont ou non une " +"valeur par défaut." #: ../Doc/howto/clinic.rst:314 msgid "" @@ -395,10 +505,16 @@ msgid "" "only arguments, specify ``*`` on a line by itself before the first keyword-" "only argument, indented the same as the parameter lines." msgstr "" +"Si votre fonction a le caractère ``$`` dans son format, parce qu'elle " +"n'accepte que des arguments nommés, spécifiez ``*`` sur une ligne à part, " +"avant le premier argument nommé, avec la même indentation que les lignes de " +"paramètres." #: ../Doc/howto/clinic.rst:319 msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" msgstr "" +"(``_pickle.Pickler.dump`` n'a ni l'un ni l'autre, donc notre exemple est " +"inchangé.)" #: ../Doc/howto/clinic.rst:322 msgid "" @@ -406,6 +522,9 @@ msgid "" "c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" "only." msgstr "" +"Si la fonction C existante appelle :c:func:`PyArg_ParseTuple` (et pas :c:" +"func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " +"uniquement positionnels. " #: ../Doc/howto/clinic.rst:326 msgid "" @@ -413,6 +532,9 @@ msgid "" "a line by itself after the last parameter, indented the same as the " "parameter lines." msgstr "" +"Pour marquer tous les paramètres comme uniquement positionnels dans Argument " +"Clinic, ajoutez ``/`` sur une ligne à part après le dernier paramètre, avec " +"la même indentation que les lignes de paramètres." #: ../Doc/howto/clinic.rst:330 msgid "" @@ -420,12 +542,17 @@ msgid "" "or none of them are. (In the future Argument Clinic may relax this " "restriction.)" msgstr "" +"Pour le moment, c'est tout ou rien ; soit tous les paramètres sont " +"uniquement positionnels, ou aucun ne l'est. (Dans le futur, Argument Clinic " +"supprimera peut être cette restriction.)" #: ../Doc/howto/clinic.rst:350 msgid "" "It's helpful to write a per-parameter docstring for each parameter. But per-" "parameter docstrings are optional; you can skip this step if you prefer." msgstr "" +"Il est utile d'ajouter une docstring pour chaque paramètre, mais c'est " +"optionnel; vous pouvez passer cette étape si vous préférez." #: ../Doc/howto/clinic.rst:354 msgid "" @@ -436,6 +563,12 @@ msgid "" "amount. You can write as much text as you like, across multiple lines if " "you wish." msgstr "" +"Voici comment ajouter la docstring d'un paramètre. La première ligne doit " +"être plus indentée que la définition du paramètre. La marge gauche de cette " +"première ligne établit la marge gauche pour l'ensemble de la docstring de ce " +"paramètre; tout le texte que vous écrivez sera indenté de cette quantité. " +"Vous pouvez écrire autant de texte que vous le souhaitez, sur plusieurs " +"lignes." #: ../Doc/howto/clinic.rst:378 msgid "" @@ -450,12 +583,17 @@ msgid "" "found an error in your input. Keep fixing your errors and retrying until " "Argument Clinic processes your file without complaint." msgstr "" +"Bien sûr, si Argument Clinic n'a pas produit de sortie, c'est qu'il a " +"rencontré une erreur dans votre entrée. Corrigez vos erreurs et réessayez " +"jusqu'à ce qu'Argument Clinic traite votre fichier sans problème." #: ../Doc/howto/clinic.rst:410 msgid "" "Double-check that the argument-parsing code Argument Clinic generated looks " "basically the same as the existing code." msgstr "" +"Vérifiez bien que le code d'analyse d'argument généré par Argument Clinic " +"ressemble bien au code existant." #: ../Doc/howto/clinic.rst:413 msgid "" @@ -464,6 +602,10 @@ msgid "" "`PyArg_ParseTupleAndKeywords`; ensure that the code generated by Argument " "Clinic calls the *exact* same function." msgstr "" +"Assurez vous premièrement que les deux codes utilisent la même fonction pour " +"analyser les arguments. Le code existant doit appeler soit :c:func:" +"`PyArg_ParseTuple` soit :c:func:`PyArg_ParseTupleAndKeywords`; assurez vous " +"que le code généré par Argument Clinic appelle *exactement* la même fonction." #: ../Doc/howto/clinic.rst:419 msgid "" @@ -471,6 +613,10 @@ msgid "" "`PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" "written one in the existing function, up to the colon or semi-colon." msgstr "" +"Deuxièmement, la chaîne de caractère du format passée dans :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` doit être " +"*exactement* la même que celle écrite à la main, jusqu'aux deux points ou au " +"point virgule." #: ../Doc/howto/clinic.rst:424 msgid "" @@ -486,6 +632,10 @@ msgid "" "function), ensure that the second argument is *exactly* the same between the " "two invocations." msgstr "" +"Troisièmement, pour des paramètres dont l'unité de format nécessite deux " +"arguments (comme une variable de longueur, ou une chaîne d'encodage, ou un " +"pointeur vers une fonction de conversion), assurez vous que ce deuxième " +"argument est *exactement* le même entre les deux invocations." #: ../Doc/howto/clinic.rst:434 msgid "" @@ -493,12 +643,17 @@ msgid "" "macro defining the appropriate static :c:type:`PyMethodDef` structure for " "this builtin::" msgstr "" +"Quatrièmement, à l'intérieur de la section sortie du bloc, vous trouverez " +"une macro pré-processeur qui définit les structures statiques :c:type:" +"`PyMethodDef` appropriées pour ce module natif : ::" #: ../Doc/howto/clinic.rst:441 msgid "" "This static structure should be *exactly* the same as the existing static :c:" "type:`PyMethodDef` structure for this builtin." msgstr "" +"Cette structure statique doit être *exactement* la même que la structure " +"statique :c:type:`PyMethodDef` existante pour ce module natif." #: ../Doc/howto/clinic.rst:444 msgid "" @@ -506,6 +661,9 @@ msgid "" "function specification and rerun ``Tools/clinic/clinic.py`` until they *are* " "the same." msgstr "" +"Si l'un de ces éléments diffère *de quelque façon que se soit*, ajustez la " +"spécification de fonction d'Argument Clinic et exécutez de nouveau ``Tools/" +"clinic/clinic.py`` jusqu'à ce qu'elles soient identiques." #: ../Doc/howto/clinic.rst:449 msgid "" @@ -517,12 +675,22 @@ msgid "" "arguments are now arguments to this impl function; if the implementation " "used different names for these variables, fix it." msgstr "" +"Notez que la dernière ligne de cette sortie est la déclaration de votre " +"fonction « impl ». C'est là que va l'implémentation de la fonction native. " +"Supprimez le prototype de la fonction que vous modifiez, mais laissez " +"l'accolade ouverte. Maintenant, supprimez tout le code d'analyse d'argument " +"et les déclarations de toutes les variables auxquelles il assigne les " +"arguments. Vous voyez que désormais, les arguments Python sont ceux de cette " +"fonction « impl »; si l'implémentation utilise des noms différents pour ces " +"variables, corrigez-les." #: ../Doc/howto/clinic.rst:457 msgid "" "Let's reiterate, just because it's kind of weird. Your code should now look " "like this::" msgstr "" +"Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " +"ressembler à ça : ::" #: ../Doc/howto/clinic.rst:466 msgid "" @@ -540,6 +708,12 @@ msgid "" "builtin is a class method, this will probably be below but relatively near " "to the implementation.)" msgstr "" +"Vous vous souvenez de la macro avec la structure :c:type:`PyMethodDef` pour " +"cette fonction ? Trouvez la structure :c:type:`PyMethodDef` existante pour " +"cette fonction et remplacez là par une référence à cette macro. (Si la " +"fonction native est définie au niveau d'un module, vous le trouverez " +"certainement vers la fin du fichier; s'il s'agît d'une méthode de classe, se " +"sera sans doute plus bas, mais relativement près de l'implémentation.)" #: ../Doc/howto/clinic.rst:518 msgid "" @@ -547,6 +721,9 @@ msgid "" "replace the existing static :c:type:`PyMethodDef` structure with the macro, " "*don't* add a comma to the end." msgstr "" +"Notez que le corps de la macro contient une virgule finale. Donc, lorsque " +"vous remplacez la structure statique :c:type:`PyMethodDef` par la macro, " +"*n'ajoutez pas* de virgule à la fin." #: ../Doc/howto/clinic.rst:531 msgid "" @@ -554,18 +731,26 @@ msgid "" "change should not introduce any new compile-time warnings or errors, and " "there should be no externally-visible change to Python's behavior." msgstr "" +"Compilez, puis faites tourner les portions idoines de la suite de tests de " +"régressions. Ce changement ne doit introduire aucun nouveau message d'erreur " +"ou avertissement à la compilation, et il ne devrait y avoir aucun changement " +"visible de l'extérieur au comportement de Python." #: ../Doc/howto/clinic.rst:535 msgid "" "Well, except for one difference: ``inspect.signature()`` run on your " "function should now provide a valid signature!" msgstr "" +"Enfin, à part pour une différence : si vous exécutez``inspect.signature()`` " +"sur votre fonction, vous obtiendrez maintenant une signature valide !" #: ../Doc/howto/clinic.rst:538 msgid "" "Congratulations, you've ported your first function to work with Argument " "Clinic!" msgstr "" +"Félicitations, vous avez adapté votre première fonction pour qu'elle utilise " +"Argument Clinic !" #: ../Doc/howto/clinic.rst:541 msgid "Advanced Topics" @@ -743,7 +928,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:689 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/howto/clinic.rst:691 msgid "" diff --git a/howto/descriptor.po b/howto/descriptor.po index 66ff00b2..b0c8df6e 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -30,7 +30,7 @@ msgstr "" #: ../Doc/howto/descriptor.rst:0 msgid "Contents" -msgstr "" +msgstr "Sommaire" #: ../Doc/howto/descriptor.rst:11 msgid "Abstract" @@ -137,7 +137,7 @@ msgstr "" #: ../Doc/howto/descriptor.rst:79 msgid "Invoking Descriptors" -msgstr "" +msgstr "Invocation des descripteurs" #: ../Doc/howto/descriptor.rst:81 msgid "" diff --git a/howto/functional.po b/howto/functional.po index 0155193c..92148b0f 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -706,7 +706,7 @@ msgstr "" #: ../Doc/howto/functional.rst:617 msgid "Built-in functions" -msgstr "Fonctions Natives" +msgstr "Fonctions natives" #: ../Doc/howto/functional.rst:619 msgid "" @@ -1280,7 +1280,7 @@ msgstr "" #: ../Doc/howto/functional.rst:1195 msgid "References" -msgstr "" +msgstr "Références" #: ../Doc/howto/functional.rst:1198 msgid "General" diff --git a/howto/regex.po b/howto/regex.po index 26ff42c1..36f79593 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/howto/regex.rst:5 msgid "Regular Expression HOWTO" -msgstr "" +msgstr "Guide des Expressions régulières" #: ../Doc/howto/regex.rst:7 msgid "A.M. Kuchling " @@ -34,6 +34,10 @@ msgid "" "Python with the :mod:`re` module. It provides a gentler introduction than " "the corresponding section in the Library Reference." msgstr "" +"Ce document est un guide d'introduction à l'utilisation des expressions " +"régulières en Python avec le module :mod:`re`. Il fournit une introduction " +"plus abordable que la section correspondante dans le guide de référence des " +"bibliothèques." #: ../Doc/howto/regex.rst:24 msgid "Introduction" @@ -51,6 +55,18 @@ msgid "" "match for the pattern anywhere in this string?\". You can also use REs to " "modify a string or to split it apart in various ways." msgstr "" +"Les expressions régulières (appelées RE, ou regexes, ou motifs regex) sont " +"essentiellement un petit langage de programmation hautement spécialisé " +"embarqué dans Python et dont la manipulation est rendue possible par " +"l'utilisation du module :mod:`re`. En utilisant ce petit langage, vous " +"spécifiez les règles pour l'ensemble des chaînes des caractères possibles " +"pour lesquelles vous voulez une correspondance; cet ensemble contient des " +"phrases en Anglais, ou des adresses de courriel, ou des commandes TeX, ou " +"tout ce que vous voulez. Vous pouvez ensuite poser des questions tel que " +"\"Est-ce que cette chaîne de caractères correspond au motif ?\", ou \"Y-a-" +"t'il une correspondance pour un motif dans le chaîne de caractères ?\". Vous " +"pouvez aussi utiliser les RE pour modifier une chaîne de caractères ou la " +"découper de différentes façons." #: ../Doc/howto/regex.rst:35 msgid "" @@ -62,6 +78,13 @@ msgid "" "requires that you have a good understanding of the matching engine's " "internals." msgstr "" +"Les motifs d'expressions régulières sont compilés en **bytecodes** qui sont " +"ensuite exécutés par un moteur de correspondance écrit en C. Pour une " +"utilisation plus poussée, il peut s'avérer nécessaire de s'intéresser à la " +"manière dont le moteur exécute la RE afin d'écrire une expression dont le " +"**bytecode** est plus rapide. L'optimisation n'est pas traitée dans ce " +"document, parce qu'elle nécessite d'avoir une bonne compréhension des " +"mécanismes internes du moteur de correspondance." #: ../Doc/howto/regex.rst:42 msgid "" @@ -73,10 +96,18 @@ msgid "" "be slower than an elaborate regular expression, it will also probably be " "more understandable." msgstr "" +"Le langage d'expressions régulières est relativement petit et restreint donc " +"toutes les tâches de manipulation de chaînes de caractères ne peuvent pas " +"être réalisées à l'aide d'expressions régulières. Il y a aussi des tâches " +"qui *peuvent* être réalisées à l'aide d'expressions régulières mais qui ont " +"tendance à produire des expressions régulières très compliquées. Dans ces " +"cas, il vous sera plus utile d'écrire du code Python pour réaliser le " +"traitement; même si le code Python sera plus lent qu'une expression " +"régulière élaborée, il sera probablement plus compréhensible." #: ../Doc/howto/regex.rst:51 msgid "Simple Patterns" -msgstr "" +msgstr "Motifs simples" #: ../Doc/howto/regex.rst:53 msgid "" @@ -84,6 +115,10 @@ msgid "" "Since regular expressions are used to operate on strings, we'll begin with " "the most common task: matching characters." msgstr "" +"Nous commencerons par étudier les expressions régulières les plus simples. " +"Dans la mesure où les expressions régulières sont utilisées pour manipuler " +"des chaînes de caractères, nous commencerons par les tâches les plus " +"communes: la correspondance de caractères ." #: ../Doc/howto/regex.rst:57 msgid "" @@ -91,10 +126,13 @@ msgid "" "expressions (deterministic and non-deterministic finite automata), you can " "refer to almost any textbook on writing compilers." msgstr "" +"Pour une explication détaillée sur la technologie sous-jacente des " +"expressions régulières (automate d'état déterministe et non-déterministe), " +"référez-vous à n'importe quel manuel sur l'écriture de compilateurs." #: ../Doc/howto/regex.rst:63 msgid "Matching Characters" -msgstr "" +msgstr "Caractères correspondants" #: ../Doc/howto/regex.rst:65 msgid "" @@ -103,6 +141,11 @@ msgid "" "can enable a case-insensitive mode that would let this RE match ``Test`` or " "``TEST`` as well; more about this later.)" msgstr "" +"La plupart des lettres ou caractères vont correspondre à eux-mêmes. Par " +"exemple, l'expression régulière ``test`` correspond à la chaîne de caractère " +"``test`` précisément. (Vous pouvez activer le mode non-sensible à la casse " +"qui permet à cette RE de correspondre à ``Test`` ou ``TEST`` également; plus " +"à ce sujet dans la suite.) " #: ../Doc/howto/regex.rst:70 msgid "" @@ -113,12 +156,20 @@ msgid "" "this document is devoted to discussing various metacharacters and what they " "do." msgstr "" +"Il y a des exceptions à cette règle; certains caractères sont des :dfn:" +"`metacharacters` spéciaux et ne correspondent pas à eux-mêmes. Au lieu de " +"cela, ils signalent que certaines choses non ordinaires doivent " +"correspondre, ou affectent d'autre portions de la RE en les répétant ou en " +"changeant leur sens. Une grande partie de ce document est consacrée au " +"fonctionnement de ces métacaractères." #: ../Doc/howto/regex.rst:76 msgid "" "Here's a complete list of the metacharacters; their meanings will be " "discussed in the rest of this HOWTO." msgstr "" +"Voici une liste complète des méta-caractères; leurs sens sera décrit dans la " +"suite de ce guide." #: ../Doc/howto/regex.rst:83 msgid "" @@ -131,6 +182,16 @@ msgid "" "characters. If you wanted to match only lowercase letters, your RE would be " "``[a-z]``." msgstr "" +"Les premiers méta-caractères que nous étudions sont ``[`` et ``]``. Ils sont " +"utilisés pour spécifier une classe de caractères, qui forme un ensemble de " +"caractères dont vous souhaitez trouver la correspondance. Les caractères " +"peuvent être listés individuellement, ou une plage de caractères peut être " +"indiquée en fournissant deux caractères séparés par un `'-'``. Par exemple, " +"``[abc]`` correspondra à n'importe quel caractère parmi ``a``, ``b``, ou " +"``c``; ce qui est équivalent à ``[a-c]``, qui utilise une plage pour " +"exprimer le même ensemble de caractères. Si vous voulez trouver une " +"correspondance avec uniquement les lettres en minuscule, votre RE sera ``[a-" +"z]``." #: ../Doc/howto/regex.rst:92 msgid "" @@ -139,6 +200,10 @@ msgid "" "is usually a metacharacter, but inside a character class it's stripped of " "its special nature." msgstr "" +"Les méta-caractères ne sont pas actifs dans les classes. Par exemple, ``[akm" +"$]`` correspondra à n'importe quel caractère parmi ``'a'``, ``'k'``, " +"``'m'``, ou ``'$'``; ``'$'`` est habituellement un méta-caractère mais dans " +"une classe de caractères, il est dépourvu de son caractère spécial." #: ../Doc/howto/regex.rst:97 msgid "" @@ -148,6 +213,12 @@ msgid "" "match the ``'^'`` character. For example, ``[^5]`` will match any character " "except ``'5'``." msgstr "" +"Vous pouvez trouvez une correspondance avec les caractères non listés dans " +"une classe en complimentant (:dfn:`complementing`) l'ensemble. Ceci est " +"indiqué en incluant un ``'^'`` en tant que premier caractère de la classe; " +"``'^'`` en dehors d'une classe de caractères correspondra au caractère " +"``'^'``. Par exemple, ``[^5]`` correspondra à tout les caractères, sauf " +"``[^5]``." #: ../Doc/howto/regex.rst:102 msgid "" @@ -158,6 +229,14 @@ msgid "" "need to match a ``[`` or ``\\``, you can precede them with a backslash to " "remove their special meaning: ``\\[`` or ``\\\\``." msgstr "" +"Le méta-caractère qui est probablement le plus important est le " +"**backslash**, ``\\``. Comme dans les chaînes de caractères en Python, le " +"**backslash** peut être suivi par différents caractères pour signaler " +"différentes séquences spéciales. Il est aussi utilisé pour échapper tout les " +"méta-caractères afin d'en trouver les correspondances dans les motifs; par " +"exemple, si vous devait trouver une correspondance pour ``[`` ou ``\\`, " +"vous pouvais les précéder avec un **backslash** pour supprimer leur " +"caractères spécial : ``\\[`` ou ``\\\\``." #: ../Doc/howto/regex.rst:109 msgid "" @@ -165,6 +244,10 @@ msgid "" "sets of characters that are often useful, such as the set of digits, the set " "of letters, or the set of anything that isn't whitespace." msgstr "" +"Certaines séquences spéciales commençant par ``'\\'`` représentent des " +"ensembles de caractères prédéfinis qui sont souvent utiles, tels que " +"l'ensemble des chiffres, l'ensemble des lettres, ou l'ensemble des " +"caractères qui ne sont pas des séparateurs." #: ../Doc/howto/regex.rst:114 msgid "" @@ -176,6 +259,14 @@ msgid "" "in a string pattern by supplying the :const:`re.ASCII` flag when compiling " "the regular expression." msgstr "" +"Prenons un exemple: ``\\w`` correspond à n'importe quel caractères " +"alphanumérique. Si le motif **regex** est exprimé en octets, il est " +"équivalent à la classe ``[a-zA-Z0-9_]``. Si le motif **regex** est une " +"chaîne de caractères, ``\\w`` correspondra à tout les caractères identifiés " +"comme lettre dans le base de données Unicode fourni par le module :mod:" +"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``" +"\\w`` dans un motif de chaîne de caractères en spécifiant le fanion :const:" +"`re.ASCII` lors de la compilation de l'expression régulière." #: ../Doc/howto/regex.rst:122 msgid "" @@ -185,6 +276,13 @@ msgid "" "Standard Library reference. In general, the Unicode versions match any " "character that's in the appropriate category in the Unicode database." msgstr "" +"La liste de séquences spéciales suivante est incomplète. Pour une liste " +"complète de séquences et définitions de classe étendue pour des motifs de " +"chaînes de caractère s Unicode, reportez-vous à la dernière partie de la " +"référence :ref:`Syntaxe d'Expressions Régulières ` de la " +"librairie standard. En général, les versions d'Unicode trouve une " +"correspondance avec n'importe quel caractère présent dans le catégorie " +"appropriée de la base de données Unicode. " #: ../Doc/howto/regex.rst:130 msgid "``\\d``" @@ -193,6 +291,8 @@ msgstr "``\\d``" #: ../Doc/howto/regex.rst:130 msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." msgstr "" +"Correspond à n'importe quel caractère numérique ; ceci est équivalent à la " +"classe ``[0-9]``." #: ../Doc/howto/regex.rst:133 msgid "``\\D``" @@ -202,6 +302,8 @@ msgstr "``\\D``" msgid "" "Matches any non-digit character; this is equivalent to the class ``[^0-9]``." msgstr "" +"Correspond à n'importe caractère non numérique; ceci est équivalent à la " +"classe ``[^0-9]``." #: ../Doc/howto/regex.rst:137 msgid "``\\s``" @@ -212,6 +314,8 @@ msgid "" "Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" "\\r\\f\\v]``." msgstr "" +"Correspond à n'importe caractères d'espacement; ceci est équivalent à la " +"classe ``[ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:141 msgid "``\\S``" @@ -222,6 +326,8 @@ msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." msgstr "" +"Correspond à n'importe caractère autre que d'espacement; ceci est équivalent " +"à la classe ``[^ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:145 msgid "``\\w``" @@ -232,6 +338,8 @@ msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." msgstr "" +"Correspond à n'importe caractère alphanumérique; ceci est équivalent à la " +"classe ``[a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:149 msgid "``\\W``" @@ -242,6 +350,8 @@ msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." msgstr "" +"Correspond à n'importe caractère non-alphanumérique; ceci est équivalent à " +"la classe ``[^a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:151 msgid "" @@ -249,6 +359,9 @@ msgid "" "``[\\s,.]`` is a character class that will match any whitespace character, " "or ``','`` or ``'.'``." msgstr "" +"Ces séquences peuvent être incluses dans une classe de caractères. Par " +"exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " +"caractères d'espace, ou ``','`` ou ``'.'``. " #: ../Doc/howto/regex.rst:155 msgid "" @@ -260,7 +373,7 @@ msgstr "" #: ../Doc/howto/regex.rst:162 msgid "Repeating Things" -msgstr "" +msgstr "Répetitions" #: ../Doc/howto/regex.rst:164 msgid "" @@ -306,11 +419,11 @@ msgstr "" #: ../Doc/howto/regex.rst:191 msgid "Step" -msgstr "" +msgstr "Etape" #: ../Doc/howto/regex.rst:191 msgid "Matched" -msgstr "" +msgstr "Correspond" #: ../Doc/howto/regex.rst:191 msgid "Explanation" @@ -326,7 +439,7 @@ msgstr "" #: ../Doc/howto/regex.rst:193 msgid "The ``a`` in the RE matches." -msgstr "" +msgstr "Le ``a`` dans la RE correspondante." #: ../Doc/howto/regex.rst:195 msgid "2" @@ -355,6 +468,8 @@ msgid "" "The engine tries to match ``b``, but the current position is at the end of " "the string, so it fails." msgstr "" +"Le moteur essaye de trouver une correspondance avec ``b`` mais la position " +"courante est à la fin de la chaîne de caractères et échoue donc." #: ../Doc/howto/regex.rst:204 msgid "4" @@ -453,7 +568,7 @@ msgstr "" #: ../Doc/howto/regex.rst:259 msgid "Using Regular Expressions" -msgstr "" +msgstr "Utilisation des Expressions Régulières" #: ../Doc/howto/regex.rst:261 msgid "" @@ -465,7 +580,7 @@ msgstr "" #: ../Doc/howto/regex.rst:268 msgid "Compiling Regular Expressions" -msgstr "" +msgstr "Compilations des Expressions Régulières" #: ../Doc/howto/regex.rst:270 msgid "" @@ -500,7 +615,7 @@ msgstr "" #: ../Doc/howto/regex.rst:297 msgid "The Backslash Plague" -msgstr "" +msgstr "Le Maudit Backslash" #: ../Doc/howto/regex.rst:299 msgid "" @@ -544,7 +659,7 @@ msgstr "" #: ../Doc/howto/regex.rst:317 msgid "Escaped backslash for :func:`re.compile`" -msgstr "" +msgstr "**backslash** échappé pour :func:`re.compile`" #: ../Doc/howto/regex.rst:319 ../Doc/howto/regex.rst:339 msgid "``\"\\\\\\\\section\"``" @@ -579,7 +694,7 @@ msgstr "" #: ../Doc/howto/regex.rst:335 msgid "Raw string" -msgstr "" +msgstr "Chaîne de caractères brute" #: ../Doc/howto/regex.rst:337 msgid "``\"ab*\"``" @@ -612,11 +727,15 @@ msgid "" "the most significant ones will be covered here; consult the :mod:`re` docs " "for a complete listing." msgstr "" +"Une fois que nous avons un objet représentant une expression régulière " +"compilée, qu'en faisons-nous ? Les objets motifs ont plusieurs méthodes et " +"attributs. Seuls les plus significatifs seront couverts ici; consultez la " +"documentation :mod:`re` pour la liste complète." #: ../Doc/howto/regex.rst:354 ../Doc/howto/regex.rst:412 #: ../Doc/howto/regex.rst:1029 msgid "Method/Attribute" -msgstr "" +msgstr "Méthode/Attribut" #: ../Doc/howto/regex.rst:354 ../Doc/howto/regex.rst:412 #: ../Doc/howto/regex.rst:1029 @@ -710,7 +829,7 @@ msgstr "" #: ../Doc/howto/regex.rst:414 msgid "Return the string matched by the RE" -msgstr "" +msgstr "Retourne la chaîne de caractères correspondant à la RE" #: ../Doc/howto/regex.rst:416 msgid "``start()``" @@ -718,7 +837,7 @@ msgstr "" #: ../Doc/howto/regex.rst:416 msgid "Return the starting position of the match" -msgstr "" +msgstr "Retourne la position de début de correspondance" #: ../Doc/howto/regex.rst:418 msgid "``end()``" @@ -726,7 +845,7 @@ msgstr "" #: ../Doc/howto/regex.rst:418 msgid "Return the ending position of the match" -msgstr "" +msgstr "Retourne la position de fin de correspondance" #: ../Doc/howto/regex.rst:420 msgid "``span()``" @@ -803,7 +922,7 @@ msgstr "" #: ../Doc/howto/regex.rst:511 msgid "Compilation Flags" -msgstr "" +msgstr "Fanion de Compilation" #: ../Doc/howto/regex.rst:513 msgid "" @@ -881,6 +1000,8 @@ msgstr "" msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" +"Activer les RE verbeuses, qui peuvent être organisées de manière plus " +"propres et compréhensibles." #: ../Doc/howto/regex.rst:550 msgid "" @@ -916,6 +1037,8 @@ msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" msgstr "" +"(``^`` et ``$`` n'ont pas encore été expliqués; ils seront introduit dans le " +"section :ref:`more-metacharacters`.)" #: ../Doc/howto/regex.rst:582 msgid "" @@ -980,10 +1103,14 @@ msgid "" "this section, we'll cover some new metacharacters, and how to use groups to " "retrieve portions of the text that was matched." msgstr "" +"Jusqu'à présent nous avons seulement couvert une partie des fonctionnalités " +"des expressions régulières. Dans cette section, nous couvrirons quelques " +"nouveaux méta-caractères et comment utiliser les groupes pour récupérer des " +"portions de textes correspondante." #: ../Doc/howto/regex.rst:656 msgid "More Metacharacters" -msgstr "" +msgstr "Plus de Méta-caratères" #: ../Doc/howto/regex.rst:658 msgid "" @@ -1005,7 +1132,7 @@ msgstr "" #: ../Doc/howto/regex.rst:677 msgid "``|``" -msgstr "" +msgstr "``|``" #: ../Doc/howto/regex.rst:670 msgid "" @@ -1024,7 +1151,7 @@ msgstr "" #: ../Doc/howto/regex.rst:693 msgid "``^``" -msgstr "" +msgstr "``^``" #: ../Doc/howto/regex.rst:680 msgid "" @@ -1125,7 +1252,7 @@ msgstr "" #: ../Doc/howto/regex.rst:759 msgid "Grouping" -msgstr "" +msgstr "Regroupement" #: ../Doc/howto/regex.rst:761 msgid "" @@ -1363,7 +1490,7 @@ msgstr "" #: ../Doc/howto/regex.rst:966 msgid "The pattern to match this is quite simple:" -msgstr "" +msgstr "Le motif de correspondance est plutôt simple: " #: ../Doc/howto/regex.rst:968 msgid "``.*[.].*$``" @@ -1469,6 +1596,8 @@ msgstr "" #: ../Doc/howto/regex.rst:1031 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" +"Découpe la chaîne de caractère en liste, la découpant partout où la RE " +"correspond" #: ../Doc/howto/regex.rst:1034 msgid "``sub()``" @@ -1479,6 +1608,8 @@ msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" msgstr "" +"Rechercher toutes les sous-chaînes de caractères où correspond la RE et les " +"substituer par une chaîne de caractères différente " #: ../Doc/howto/regex.rst:1037 msgid "``subn()``" @@ -1537,7 +1668,7 @@ msgstr "" #: ../Doc/howto/regex.rst:1098 msgid "Search and Replace" -msgstr "" +msgstr "Recherche et Substitution" #: ../Doc/howto/regex.rst:1100 msgid "" @@ -1635,7 +1766,7 @@ msgstr "" #: ../Doc/howto/regex.rst:1197 msgid "Common Problems" -msgstr "" +msgstr "Problèmes courants" #: ../Doc/howto/regex.rst:1199 msgid "" @@ -1771,7 +1902,7 @@ msgstr "" #: ../Doc/howto/regex.rst:1311 msgid "Using re.VERBOSE" -msgstr "" +msgstr "Utilisez re.VERBOSE" #: ../Doc/howto/regex.rst:1313 msgid "" @@ -1801,11 +1932,11 @@ msgstr "" #: ../Doc/howto/regex.rst:1339 msgid "This is far more readable than::" -msgstr "" +msgstr "Ceci est beaucoup plus lisible que::" #: ../Doc/howto/regex.rst:1345 msgid "Feedback" -msgstr "" +msgstr "Retour" #: ../Doc/howto/regex.rst:1347 msgid "" @@ -1814,6 +1945,10 @@ msgid "" "encountered that weren't covered here? If so, please send suggestions for " "improvements to the author." msgstr "" +"Les expressions régulières sont un sujet compliqué. Est-ce que ce document " +"vous a aidé à les comprendre ? Des parties ne sont pas claires, ou des " +"problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " +"cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." #: ../Doc/howto/regex.rst:1352 msgid "" diff --git a/howto/sorting.po b/howto/sorting.po index e2d93096..a62f4050 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -18,15 +18,15 @@ msgstr "" #: ../Doc/howto/sorting.rst:4 msgid "Sorting HOW TO" -msgstr "" +msgstr "Guide pour le tri" #: ../Doc/howto/sorting.rst:6 msgid "Andrew Dalke and Raymond Hettinger" -msgstr "" +msgstr "Andrew Dalke et Raymond Hettinger" #: ../Doc/howto/sorting.rst:7 msgid "0.1" -msgstr "" +msgstr "0.1" #: ../Doc/howto/sorting.rst:10 msgid "" @@ -34,22 +34,29 @@ msgid "" "in-place. There is also a :func:`sorted` built-in function that builds a " "new sorted list from an iterable." msgstr "" +"Les listes Python ont une méthode native :meth:`list.sort` qui modifie les " +"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 msgid "" "In this document, we explore the various techniques for sorting data using " "Python." msgstr "" +"Dans ce document, nous explorons différentes techniques pour trier les " +"données en Python." #: ../Doc/howto/sorting.rst:18 msgid "Sorting Basics" -msgstr "" +msgstr "Les bases du tri" #: ../Doc/howto/sorting.rst:20 msgid "" "A simple ascending sort is very easy: just call the :func:`sorted` function. " "It returns a new sorted list::" 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 msgid "" @@ -58,26 +65,37 @@ msgid "" "than :func:`sorted` - but if you don't need the original list, it's slightly " "more efficient." msgstr "" +"Vous pouvez aussi utiliser la méthode :meth:`list.sort`. Elle modifie la " +"liste elle-même (et renvoie ``None`` pour éviter les confusions). " +"Habituellement, cette méthode est moins pratique que la fonction :func:" +"`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 msgid "" "Another difference is that the :meth:`list.sort` method is only defined for " "lists. In contrast, the :func:`sorted` function accepts any iterable." msgstr "" +"Une autre différence est que la méthode :meth:`list.sort` est seulement " +"définie pour les listes. Au contraire, la fonction :func:`sorted` accepte " +"n'importe quel itérable." #: ../Doc/howto/sorting.rst:43 msgid "Key Functions" -msgstr "" +msgstr "Fonctions clef" #: ../Doc/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." msgstr "" +":meth:`list.sort` et :func:`sorted` ont un paramètre nommé *key* afin de " +"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 msgid "For example, here's a case-insensitive string comparison:" -msgstr "" +msgstr "Par exemple, voici une comparaison de texte insensible à la casse:" #: ../Doc/howto/sorting.rst:53 msgid "" @@ -85,21 +103,29 @@ msgid "" "argument and returns a key to use for sorting purposes. This technique is " "fast because the key function is called exactly once for each input record." msgstr "" +"La valeur du paramètre *key* devrait être une fonction qui prend un seul " +"argument et renvoie une clef à utiliser à des fins de tri. Cette technique " +"est rapide car la fonction clef est appelée exactement une seule fois pour " +"chaque enregistrement en entrée." #: ../Doc/howto/sorting.rst:57 msgid "" "A common pattern is to sort complex objects using some of the object's " "indices as keys. For example:" 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 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 msgid "Operator Module Functions" -msgstr "" +msgstr "Fonctions du module *operator*" #: ../Doc/howto/sorting.rst:89 msgid "" @@ -108,20 +134,29 @@ msgid "" "`operator` module has :func:`~operator.itemgetter`, :func:`~operator." "attrgetter`, and a :func:`~operator.methodcaller` function." msgstr "" +"Les fonctions clef utilisées ci-dessus sont courantes, donc Python fournit " +"des fonctions permettant de rendre plus simple et plus rapide l'usage des " +"fonctions d'accesseur. Le module :mod:`operator` contient les fonctions :" +"func:`~operator.itemgetter`, :func:`~operator.attrgetter`, et :func:" +"`~operator.methodcaller`." #: ../Doc/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 msgid "" "The operator module functions allow multiple levels of sorting. For example, " "to sort by *grade* then by *age*:" 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 msgid "Ascending and Descending" -msgstr "" +msgstr "Ascendant et descendant" #: ../Doc/howto/sorting.rst:116 msgid "" @@ -129,10 +164,14 @@ msgid "" "a boolean value. This is used to flag descending sorts. For example, to get " "the student data in reverse *age* order:" msgstr "" +":meth:`list.sort` and :func:`sorted` acceptent un paramètre nommé *reverse* " +"avec une valeur booléenne. C'est utilisé pour déterminer l'ordre descendant " +"des tris. Par exemple, pour avoir les données des étudiants dans l'ordre " +"inverse par *age* :" #: ../Doc/howto/sorting.rst:127 msgid "Sort Stability and Complex Sorts" -msgstr "" +msgstr "Stabilité des tris et tris complexes" #: ../Doc/howto/sorting.rst:129 msgid "" @@ -140,12 +179,18 @@ msgid "" "Sorting_algorithm#Stability>`_\\. That means that when multiple records have " "the same key, their original order is preserved." msgstr "" +"Les tris sont garantis `stables `_\\. Cela signifie que lorsque " +"plusieurs enregistrements on la même clef, leur ordre original est préservé." #: ../Doc/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)``." msgstr "" +"Notez comme les deux enregistrements pour *blue* gardent leur ordre original " +"et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', " +"2)``." #: ../Doc/howto/sorting.rst:140 msgid "" @@ -153,6 +198,10 @@ msgid "" "steps. For example, to sort the student data by descending *grade* and then " "ascending *age*, do the *age* sort first and then sort again using *grade*:" msgstr "" +"Cette propriété fantastique vous permet de construire des tris complexes " +"dans des tris en plusieurs étapes. Par exemple, afin de sortir les données " +"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 msgid "" @@ -160,35 +209,46 @@ msgid "" "Python does multiple sorts efficiently because it can take advantage of any " "ordering already present in a dataset." msgstr "" +"L'algorithme `Timsort `_ utilisé dans " +"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:153 msgid "The Old Way Using Decorate-Sort-Undecorate" -msgstr "" +msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate" #: ../Doc/howto/sorting.rst:155 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:157 msgid "" "First, the initial list is decorated with new values that control the sort " "order." 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:159 msgid "Second, the decorated list is sorted." -msgstr "" +msgstr "En second lieu, la liste décorée est triée." #: ../Doc/howto/sorting.rst:161 msgid "" "Finally, the decorations are removed, creating a list that contains only the " "initial values in the new order." 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:164 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:171 msgid "" @@ -196,18 +256,25 @@ msgid "" "items are compared; if they are the same then the second items are compared, " "and so on." msgstr "" +"Cette technique marche parsce que les tuples sont comparés par ordre " +"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:175 msgid "" "It is not strictly necessary in all cases to include the index *i* in the " "decorated list, but including it gives two benefits:" msgstr "" +"Il n'est pas strictement nécessaire dans tous les cas d’inclure l'indice *i* " +"dans la liste décorée, mais l'inclure donne deux avantages :" #: ../Doc/howto/sorting.rst:178 msgid "" "The sort is stable -- if two items have the same key, their order will be " "preserved in the sorted list." 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:181 msgid "" @@ -216,6 +283,10 @@ msgid "" "example the original list could contain complex numbers which cannot be " "sorted directly." msgstr "" +"Les objets d'origine ne sont pas nécessairement comparables car l'ordre des " +"tuples décorés sera déterminé par au plus les deux premiers objets. Donc par " +"exemple la liste originale pourrait contenir des nombres complexes qui " +"pourraient ne pas être triés directement." #: ../Doc/howto/sorting.rst:186 msgid "" @@ -223,16 +294,21 @@ msgid "" "org/wiki/Schwartzian_transform>`_\\, after Randal L. Schwartz, who " "popularized it among Perl programmers." msgstr "" +"Un autre nom pour cette technique est `Schwartzian transform `_\\, après que Randal L. Schwartz " +"l'ait popularisé chez les développeurs Perl." #: ../Doc/howto/sorting.rst:190 msgid "" "Now that Python sorting provides key-functions, this technique is not often " "needed." msgstr "" +"Maintenant que le tri Python fournit des fonctions-clef, cette technique " +"n'est plus souvent utilisée." #: ../Doc/howto/sorting.rst:194 msgid "The Old Way Using the *cmp* Parameter" -msgstr "" +msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*" #: ../Doc/howto/sorting.rst:196 msgid "" @@ -241,6 +317,11 @@ msgid "" "arguments. Instead, all of the Py2.x versions supported a *cmp* parameter to " "handle user specified comparison functions." msgstr "" +"Plusieurs construction données dans ce guide se basent sur Python 2.4 ou " +"plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la méthode :" +"meth:`list.sort` ne prenait pas d'arguments nommés. À la place, toutes les " +"versions Py2.x utilisaient un paramètre *cmp* pour prendre en charge les " +"fonctions de comparaisons définies par les utilisateurs." #: ../Doc/howto/sorting.rst:201 msgid "" @@ -248,6 +329,9 @@ msgid "" "effort to simplify and unify the language, eliminating the conflict between " "rich comparisons and the :meth:`__cmp__` magic method)." msgstr "" +"En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre d'un " +"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:205 msgid "" @@ -256,10 +340,15 @@ msgid "" "then return a negative value for less-than, return zero if they are equal, " "or return a positive value for greater-than. For example, we can do:" msgstr "" +"En Py2.x, le tri permettait en paramètre une fonction optionnelle qui peut " +"être appelée pour faire des comparaisons. Cette fonction devrait prendre " +"deux arguments à comparer pour renvoyer une valeur négative pour 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:215 msgid "Or you can reverse the order of comparison with:" -msgstr "" +msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :" #: ../Doc/howto/sorting.rst:222 msgid "" @@ -267,26 +356,36 @@ msgid "" "have the user supplying a comparison function and you need to convert that " "to a key function. The following wrapper makes that easy to do::" msgstr "" +"En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " +"survenir quand des utilisateurs fournissent une fonction de comparaison et " +"qu'il faut convertir cette fonction en une fonction-clef. La fonction " +"d'encapsulation suivante rend cela plus facile à faire : ::" #: ../Doc/howto/sorting.rst:245 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:256 msgid "" "In Python 3.2, the :func:`functools.cmp_to_key` function was added to the :" "mod:`functools` module in the standard library." 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:260 msgid "Odd and Ends" -msgstr "" +msgstr "Curiosités et conclusion" #: ../Doc/howto/sorting.rst:262 msgid "" "For locale aware sorting, use :func:`locale.strxfrm` for a key function or :" "func:`locale.strcoll` for a comparison function." 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:265 msgid "" @@ -295,6 +394,10 @@ msgid "" "simulated without the parameter by using the builtin :func:`reversed` " "function twice:" msgstr "" +"Le paramètre *reverse* maintient toujours un tri stable (de telle sorte que " +"les enregistrements avec des clef égales gardent le même ordre). Notez que " +"cet effet peut être simulé sans le paramètre en utilisant la fonction " +"native :func:`reversed` deux fois :" #: ../Doc/howto/sorting.rst:277 msgid "" @@ -302,6 +405,10 @@ msgid "" "comparisons between two objects. So, it is easy to add a standard sort order " "to a class by defining an :meth:`__lt__` method::" msgstr "" +"Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " +"lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " +"facile d'ajouter un ordre de tri standard à une classe en définissant sa " +"méthode :meth:`__lt__` : ::" #: ../Doc/howto/sorting.rst:285 msgid "" @@ -310,3 +417,8 @@ msgid "" "grades are stored in a dictionary, they can be used to sort a separate list " "of student names:" msgstr "" +"Les fonctions clef n'ont pas besoin de dépendre directement des objets " +"triés. Une fonction clef peut aussi accéder à des ressources externes. En " +"l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, " +"ils peuvent être utilisés pour trier une liste différentes de noms " +"d'étudiants :" diff --git a/howto/unicode.po b/howto/unicode.po index 760ca194..140f6f61 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -322,7 +322,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:209 ../Doc/howto/unicode.rst:483 #: ../Doc/howto/unicode.rst:703 msgid "References" -msgstr "" +msgstr "Références" #: ../Doc/howto/unicode.rst:211 msgid "" diff --git a/install/index.po b/install/index.po index a06be94f..10229f12 100644 --- a/install/index.po +++ b/install/index.po @@ -52,6 +52,11 @@ msgid "" "recommendations section `__ " "in the Python Packaging User Guide for more information." msgstr "" +"Ce guide ne couvre que les outils de base, fournis avec cette version de " +"Python, pour construire et distribuer des extensions. D'autres outils " +"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick " +"recommendations section `__ " +"dans le *Python Packaging User Guide* pour plus d'informations." #: ../Doc/install/index.rst:47 msgid "Introduction" @@ -496,7 +501,7 @@ msgstr "\\(2)" #: ../Doc/install/index.rst:264 ../Doc/install/index.rst:797 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/install/index.rst:267 msgid "" @@ -583,7 +588,7 @@ msgstr "" #: ../Doc/install/index.rst:314 msgid "Alternate Installation" -msgstr "Installation Alternative" +msgstr "Installation alternative" #: ../Doc/install/index.rst:316 msgid "" @@ -884,7 +889,7 @@ msgid "" msgstr "" "Une autre possibilité est un système de fichier réseau où le nom est utilisé " "pour écrire dans un dossier distant qui est différent du nom utilisé pour le " -"lire : par exemple, l’interprète Python appelé est :file:`/usr/local/bin/" +"lire : par exemple, l’interpréteur Python appelé est :file:`/usr/local/bin/" "python` et cherche les modules dans :file:`/usr/local/lib/python2.{X}`, mais " "ces modules doivent être installé dans, par exemple, :file:`/mnt/{@server}/" "export/lib/python2.{X}`.Ça peut être fait avec : ::" diff --git a/installing/index.po b/installing/index.po index 7124d0ea..a956062d 100644 --- a/installing/index.po +++ b/installing/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/installing/index.rst:7 msgid "Installing Python Modules" -msgstr "L'installation de modules Python" +msgstr "Installation de modules Python" #: ../Doc/installing/index.rst:9 msgid "distutils-sig@python.org" @@ -176,7 +176,7 @@ msgid "" "dependencies from the Python Packaging Index::" msgstr "" "La commande suivante va installer la dernière version d'un module et ses " -"dépendances depuis le *Python Package Index* ::" +"dépendances depuis le *Python Package Index* ::" #: ../Doc/installing/index.rst:79 msgid "" @@ -206,7 +206,7 @@ msgstr "" "Il est aussi possible de préciser une version minimum exacte directement " "depuis la ligne de commande. Utiliser des caractères de comparaison tel que " "``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le " -"shell, le nom du paquet et la version doivent être mis entre guillemets::" +"shell, le nom du paquet et la version doivent être mis entre guillemets ::" #: ../Doc/installing/index.rst:94 msgid "" @@ -344,7 +344,7 @@ msgid "" "switch::" msgstr "" "Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option " -"``-m`` ::" +"``-m`` ::" #: ../Doc/installing/index.rst:186 msgid "Common installation issues" @@ -404,7 +404,7 @@ msgstr "" "publier des *wheels*, pour, au moins Windows et Mac OS X, via le *Python " "Package Index*, ce problème devrait diminuer au fil du temps, car les " "utilisateurs sont plus régulièrement en mesure d'installer des extensions " -"pré-compilées plutôt que de devoir les compiler eux-mêmes." +"précompilées plutôt que de devoir les compiler eux-mêmes." #: ../Doc/installing/index.rst:214 msgid "" diff --git a/library/2to3.po b/library/2to3.po index c949b8df..7d85dad1 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -52,7 +52,7 @@ msgstr "" #: ../Doc/library/2to3.rst:28 msgid "Here is a sample Python 2.x source file, :file:`example.py`::" -msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py`::" +msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py` ::" #: ../Doc/library/2to3.rst:36 msgid "It can be converted to Python 3.x code via 2to3 on the command line:" @@ -190,7 +190,7 @@ msgstr "" #: ../Doc/library/2to3.rst:147 msgid "Fixers" -msgstr " Correcteurs" +msgstr "Correcteurs" #: ../Doc/library/2to3.rst:149 msgid "" @@ -472,7 +472,7 @@ msgstr "Renomme :meth:`__nonzero__` en :meth:`~object.__bool__`." #: ../Doc/library/2to3.rst:348 msgid "Converts octal literals into the new syntax." msgstr "" -"Convertit les nombre écrits littéralement en octal dans leur nouvelle " +"Convertit les nombres écrits littéralement en octal dans leur nouvelle " "syntaxe." #: ../Doc/library/2to3.rst:352 @@ -620,7 +620,7 @@ msgid "" "package." msgstr "" "Gère le renommage des paquets :mod:`urllib` et :mod:`urllib2` en :mod:" -"`urllib`" +"`urllib`." #: ../Doc/library/2to3.rst:443 msgid "" diff --git a/library/__main__.po b/library/__main__.po index 9e6c642b..a2b0a837 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/__main__.rst:3 msgid ":mod:`__main__` --- Top-level script environment" -msgstr ":mod:`__main__` --- Environnement premier du script" +msgstr ":mod:`__main__` --- Point d'entrée des scripts" #: ../Doc/library/__main__.rst:10 msgid "" @@ -26,6 +26,10 @@ msgid "" "module's __name__ is set equal to ``'__main__'`` when read from standard " "input, a script, or from an interactive prompt." msgstr "" +"``'__main__'`` est le nom du *scope* dans lequel le code s'exécute en " +"premier. Le nom d'un module (son *__name__*) vaut ``'__main__'`` lorsqu'il " +"est lu de l'entrée standard, lorsque c'est un script, ou une invite " +"interactive." #: ../Doc/library/__main__.rst:14 msgid "" @@ -34,6 +38,10 @@ msgid "" "executing code in a module when it is run as a script or with ``python -m`` " "but not when it is imported::" msgstr "" +"Un module peut découvrir s'il est exécuté dans le *scope* principal en " +"vérifiant son ``__name__``, ce qui permet typiquement d'exécuter du code " +"lorsque le module est exécuté avec ``python -m`` mais pas lorsqu'il est " +"importé ::" #: ../Doc/library/__main__.rst:23 msgid "" @@ -41,3 +49,5 @@ msgid "" "py`` module, the contents of which will be executed when the module is run " "with ``-m``." msgstr "" +"Pour un paquet, le même effet peut être obtenu en utilisant un module " +"``__main__.py``, son contenu sera exécuté si le paquet est lancé via ``-m``." diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po index 1abfa9c9..07904a36 100644 --- a/library/_dummy_thread.po +++ b/library/_dummy_thread.po @@ -38,7 +38,7 @@ msgstr "" #: ../Doc/library/_dummy_thread.rst:15 msgid "Suggested usage is::" -msgstr "Utilisation suggérée : " +msgstr "Utilisation suggérée ::" #: ../Doc/library/_dummy_thread.rst:22 msgid "" diff --git a/library/_thread.po b/library/_thread.po index c3993942..1c623cbd 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" -msgstr ":mod:`_thread` --- API de *threading* de bas niveau" +msgstr ":mod:`_thread` --- API bas niveau de gestion de fils d'exécution" #: ../Doc/library/_thread.rst:15 msgid "" @@ -45,7 +45,7 @@ msgstr "Elle définit les constantes et fonctions suivantes :" #: ../Doc/library/_thread.rst:37 msgid "Raised on thread-specific errors." -msgstr "Levée lors d'erreur spécifique aux *threads*." +msgstr "Levée lors d'erreur spécifique aux fils d'exécution." #: ../Doc/library/_thread.rst:39 msgid "This is now a synonym of the built-in :exc:`RuntimeError`." diff --git a/library/allos.po b/library/allos.po index f8f262e8..bad398d2 100644 --- a/library/allos.po +++ b/library/allos.po @@ -32,4 +32,4 @@ msgstr "" "fonctionalités communes à la grande majorité des systèmes d'explotation, " "telles que les fichiers et l'horloge. Bien que ces interfaces soient " "classiquement calquées sur les interfaces Unix ou C, elles sont aussi " -"disponnibles sur la pluspart des autres sytèmes. En voici un aperçu." +"disponibles sur la pluspart des autres sytèmes. En voici un aperçu." diff --git a/library/archiving.po b/library/archiving.po index 9228b52b..c51149aa 100644 --- a/library/archiving.po +++ b/library/archiving.po @@ -30,4 +30,4 @@ msgstr "" "Les modules documentés dans ce chapitre implémentent les algorithmes de " "compression zlib, gzip, bzip2 et lzma, ainsi que la création d'archives ZIP " "et tar. Voir aussi :ref:`archiving-operations` fourni par le module :mod:" -"`shutil`" +"`shutil`." diff --git a/library/argparse.po b/library/argparse.po index 90435563..7aa79d7a 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -61,7 +61,7 @@ msgid "" "produces either the sum or the max::" msgstr "" "Le code suivant est un programme Python acceptant une liste de nombre " -"entiers et en donnant soit la somme, soit le maximum::" +"entiers et en donnant soit la somme, soit le maximum ::" #: ../Doc/library/argparse.rst:47 msgid "" @@ -1225,7 +1225,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1493 msgid "The Namespace object" -msgstr "L'objet Namespace" +msgstr "L'objet namespace" #: ../Doc/library/argparse.rst:1497 msgid "" @@ -1618,7 +1618,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1996 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels" +msgstr "Gérer les arguments positionnels." #: ../Doc/library/argparse.rst:1997 msgid "Supporting sub-commands." diff --git a/library/array.po b/library/array.po index 0354c828..c06fa646 100644 --- a/library/array.po +++ b/library/array.po @@ -29,6 +29,13 @@ msgid "" "creation time by using a :dfn:`type code`, which is a single character. The " "following type codes are defined:" msgstr "" +"Ce module définit un type objet qui permet de représenter de façon compacte " +"un tableau (*array*) de valeurs élémentaires : caractères, entier, " +"flottants. Les tableaux sont des types séquence et se comportent de manière " +"très similaire aux listes, sauf que les types d'objets qui y sont stockés " +"sont limités. Le type est spécifié au moment de la création de l’objet en " +"utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " +"pour la définition des types :" #: ../Doc/library/array.rst:19 msgid "Type code" @@ -196,7 +203,7 @@ msgstr "double" #: ../Doc/library/array.rst:48 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/array.rst:51 msgid "" @@ -273,10 +280,11 @@ msgstr "" #: ../Doc/library/array.rst:106 msgid "The length in bytes of one array item in the internal representation." msgstr "" +"la longueur en octets d'un élément du tableau dans la représentation interne." #: ../Doc/library/array.rst:111 msgid "Append a new item with value *x* to the end of the array." -msgstr "" +msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau." #: ../Doc/library/array.rst:116 msgid "" @@ -347,7 +355,7 @@ msgstr "" #: ../Doc/library/array.rst:180 msgid "Deprecated alias for :meth:`frombytes`." -msgstr "Alias déprécié de :meth:`frombytes`." +msgstr "Alias obsolète de :meth:`frombytes`." #: ../Doc/library/array.rst:185 msgid "" @@ -405,7 +413,7 @@ msgstr "" #: ../Doc/library/array.rst:242 msgid "Deprecated alias for :meth:`tobytes`." -msgstr "Alias déprécié de :meth:`tobytes`." +msgstr "Alias obsolète de :meth:`tobytes`." #: ../Doc/library/array.rst:247 msgid "" diff --git a/library/ast.po b/library/ast.po index 03329e72..83f69f8d 100644 --- a/library/ast.po +++ b/library/ast.po @@ -125,7 +125,7 @@ msgstr "ou, plus compact : ::" #: ../Doc/library/ast.rst:97 msgid "Abstract Grammar" -msgstr "Grammaire Abstraite" +msgstr "Grammaire abstraite" #: ../Doc/library/ast.rst:99 msgid "The abstract grammar is currently defined as follows:" @@ -289,7 +289,7 @@ msgstr "" #: ../Doc/library/ast.rst:240 msgid "Usually you use the transformer like this::" -msgstr "Utilisation typique du *transformer* ::" +msgstr "Utilisation typique du *transformer* ::" #: ../Doc/library/ast.rst:247 msgid "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 4991aa1c..9c3922f4 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -300,7 +300,7 @@ msgstr "" #: ../Doc/library/asyncio-dev.rst:231 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" #: ../Doc/library/asyncio-dev.rst:244 msgid "" @@ -362,7 +362,7 @@ msgstr "" #: ../Doc/library/asyncio-dev.rst:365 msgid "Or without ``asyncio.ensure_future()``::" -msgstr "Ou sans ``asyncio.ensure_future()`` ::" +msgstr "Ou sans ``asyncio.ensure_future()`` ::" #: ../Doc/library/asyncio-dev.rst:379 msgid "Pending task destroyed" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 6d41b3c6..791089dd 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -188,7 +188,7 @@ msgstr "" #: ../Doc/library/asyncio-eventloop.rst:127 msgid "Like :meth:`call_soon`, but thread safe." -msgstr "Comme :meth:`call_soon` mais `thread safe`." +msgstr "Comme :meth:`call_soon` mais *thread safe*." #: ../Doc/library/asyncio-eventloop.rst:129 msgid "" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 728a2038..1b987a1e 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -202,7 +202,7 @@ msgstr "" #: ../Doc/library/asyncio-queue.rst:147 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/asyncio-queue.rst:151 msgid "" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 88d9870b..a15be2c3 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -393,7 +393,7 @@ msgstr "" #: ../Doc/library/asyncio-stream.rst:414 msgid "or with HTTPS::" -msgstr "ou avec HTTPS ::" +msgstr "ou avec HTTPS ::" #: ../Doc/library/asyncio-stream.rst:421 msgid "Register an open socket to wait for data using streams" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 1f3b22e4..c24afecb 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -398,7 +398,7 @@ msgstr "" #: ../Doc/library/asyncio-subprocess.rst:306 msgid "Subprocess and threads" -msgstr "Processus fils et threads" +msgstr "Processus fils et fils d'exécution" #: ../Doc/library/asyncio-subprocess.rst:308 msgid "" @@ -408,7 +408,8 @@ msgstr "" #: ../Doc/library/asyncio-subprocess.rst:311 msgid "An event loop must run in the main thread" -msgstr "Une boucle d'évènements doit être exécutée sur le thread principal" +msgstr "" +"Une boucle d'évènements doit être exécutée sur le fil d'exécution principal" #: ../Doc/library/asyncio-subprocess.rst:312 msgid "" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 597f9229..4139b4a3 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -548,7 +548,7 @@ msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle : ::" #: ../Doc/library/asyncio-task.rst:492 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" #: ../Doc/library/asyncio-task.rst:504 msgid "" @@ -607,7 +607,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:553 msgid "A deprecated alias to :func:`ensure_future`." -msgstr "Un alias déprécié de :func:`ensure_future`." +msgstr "Un alias obsolète de :func:`ensure_future`." #: ../Doc/library/asyncio-task.rst:559 msgid "" diff --git a/library/atexit.po b/library/atexit.po index 9de4e762..62ae9a6d 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -106,7 +106,7 @@ msgstr "" #: ../Doc/library/atexit.rst:101 msgid "Usage as a :term:`decorator`::" -msgstr "Utilisation en temps que :term:`decorator` ::" +msgstr "Utilisation en temps que :term:`decorator` ::" #: ../Doc/library/atexit.rst:109 msgid "This only works with functions that can be called without arguments." diff --git a/library/base64.po b/library/base64.po index 7de29899..a5d62324 100644 --- a/library/base64.po +++ b/library/base64.po @@ -319,7 +319,7 @@ msgstr "" #: ../Doc/library/base64.rst:267 msgid "``encodestring`` is a deprecated alias." -msgstr "``encodestring`` est un alias déprécié." +msgstr "``encodestring`` est un alias obsolète." #: ../Doc/library/base64.rst:270 msgid "An example usage of the module:" diff --git a/library/binary.po b/library/binary.po index 72047c7c..a9668950 100644 --- a/library/binary.po +++ b/library/binary.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/binary.rst:5 msgid "Binary Data Services" -msgstr "" +msgstr "Services autour des Données Binaires" #: ../Doc/library/binary.rst:7 msgid "" @@ -27,6 +27,10 @@ msgid "" "specifically in relation to file formats and network protocols, are " "described in the relevant sections." msgstr "" +"Les modules décrits dans ce chapitre fournissent des services élémentaires " +"pour manipuler des données binaires. Les autres manipulations sur les " +"données binaires, particulièrement celles en relation avec les formats de " +"fichier et les protocoles réseaux sont décrits dans leurs propres chapitres." #: ../Doc/library/binary.rst:12 msgid "" @@ -34,9 +38,14 @@ msgid "" "ASCII-compatible binary formats (for example, :mod:`re`) or all binary data " "(for example, :mod:`difflib`)." msgstr "" +"Certaines bibliothèques décrites dans :ref:`textservices` fonctionnent aussi " +"avec soit des formats binaires compatibles ASCII (comme le module :mod:`re`) " +"soit toutes les données binaires (comme le module :mod:`difflib`)." #: ../Doc/library/binary.rst:16 msgid "" "In addition, see the documentation for Python's built-in binary data types " "in :ref:`binaryseq`." msgstr "" +"En complément, consultez la documentation des types natifs binaires dans :" +"ref:`binaryseq`." diff --git a/library/bisect.po b/library/bisect.po index a831af46..10a218f1 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -22,7 +22,7 @@ msgstr ":mod:`bisect` --- Algorithme de bissection de listes" #: ../Doc/library/bisect.rst:10 msgid "**Source code:** :source:`Lib/bisect.py`" -msgstr "**Code source :** :source:`Lib/bisect.py`" +msgstr "**Code source :** :source:`Lib/bisect.py`" #: ../Doc/library/bisect.rst:14 msgid "" @@ -34,6 +34,13 @@ msgid "" "working example of the algorithm (the boundary conditions are already " "right!)." msgstr "" +"Ce module fournit des outils pour maintenir une liste triée sans avoir à la " +"trier à chaque insertion. Il pourrait être plus rapide que l'approche " +"classique pour de longues listes d'éléments dont les opérations de " +"comparaison sont lourdes. Le module se nomme :mod:`bisect` car il utilise " +"une approche simple par bissection. Si vous voulez un exemple de cet " +"algorithme, le mieux est d'aller lire le code source de ce module (les " +"conditions sur les limites y étant justes !)." #: ../Doc/library/bisect.rst:21 msgid "The following functions are provided:" @@ -48,6 +55,12 @@ msgid "" "existing entries. The return value is suitable for use as the first " "parameter to ``list.insert()`` assuming that *a* is already sorted." msgstr "" +"Trouve le point d'insertion de *x* dans *a* permettant de conserver l'ordre. " +"Les paramètres *lo* et *hi* permettent de limiter les emplacements à " +"vérifier dans la liste, par défaut toute la liste est utilisée. Si *x* est " +"déjà présent dans *a*, le point d'insertion proposé sera avant (à gauche) de " +"l'entrée existante. Si *a* est déjà triée, la valeur renvoyée peut " +"directement être utilisée comme premier paramètre de ``list.insert()``." #: ../Doc/library/bisect.rst:33 msgid "" @@ -55,12 +68,17 @@ msgid "" "that ``all(val < x for val in a[lo:i])`` for the left side and ``all(val >= " "x for val in a[i:hi])`` for the right side." msgstr "" +"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " +"que, pour la moitié de gauche : ``all(val < x for val in a[lo:i])``, et pour " +"la partie de droite : ``all(val >= x for val in a[i:hi])``." #: ../Doc/library/bisect.rst:40 msgid "" "Similar to :func:`bisect_left`, but returns an insertion point which comes " "after (to the right of) any existing entries of *x* in *a*." msgstr "" +"Semblable à :func:`bisect_left`, mais renvoie un point d'insertion après (à " +"droite) d'une potentielle entrée existante valant *x* dans *a*." #: ../Doc/library/bisect.rst:43 msgid "" @@ -68,6 +86,9 @@ msgid "" "that ``all(val <= x for val in a[lo:i])`` for the left side and ``all(val > " "x for val in a[i:hi])`` for the right side." msgstr "" +"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " +"que, pour la moitié de gauche : ``all(val <= x for val in a[lo:i])`` et pour " +"la moitié de droite : ``all(val > x for val in a[i:hi])``." #: ../Doc/library/bisect.rst:49 msgid "" @@ -76,12 +97,18 @@ msgid "" "in mind that the O(log n) search is dominated by the slow O(n) insertion " "step." msgstr "" +"Insère *x* dans *a* en conservant le tri. C'est l'équivalent de ``a." +"insert(bisect.bisect_left(a, x, lo, hi), x)``, tant que *a* est déjà triée. " +"Gardez en tête que bien que la recherche ne coûte que O(log n), l'insertion " +"coûte O(n)." #: ../Doc/library/bisect.rst:57 msgid "" "Similar to :func:`insort_left`, but inserting *x* in *a* after any existing " "entries of *x*." msgstr "" +"Similaire à :func:`insort_left`, mais en insérant *x* dans *a* après une " +"potentielle entrée existante égale à *x*." #: ../Doc/library/bisect.rst:62 msgid "" @@ -91,6 +118,11 @@ msgid "" "The keys are precomputed to save unnecessary calls to the key function " "during searches." msgstr "" +"`SortedCollection recipe `_ utilise le module *bisect* pour construire une classe " +"collection exposant des méthodes de recherches naturelles et gèrant une " +"fonction clef. Les clefs sont précalculées pour économiser des appels " +"inutiles à la fonction clef durant les recherches." #: ../Doc/library/bisect.rst:70 msgid "Searching Sorted Lists" @@ -103,6 +135,10 @@ msgid "" "following five functions show how to transform them into the standard " "lookups for sorted lists::" msgstr "" +"Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " +"éléments, mais peuvent être étranges et peu naturelles à utiliser pour " +"rechercher des éléments. Les cinq fonctions suivantes montrent comment les " +"transformer en recherche plus classique pour les listes triées : ::" #: ../Doc/library/bisect.rst:114 msgid "Other Examples" @@ -115,6 +151,11 @@ msgid "" "(say) based on a set of ordered numeric breakpoints: 90 and up is an 'A', 80 " "to 89 is a 'B', and so on::" msgstr "" +"La fonction :func:`bisect` peut être utile pour des recherches dans des " +"tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " +"note (sous forme de lettre) correspondant à un note sous forme de points, en " +"se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " +"'B', etc… : ::" #: ../Doc/library/bisect.rst:130 msgid "" @@ -123,9 +164,16 @@ msgid "" "lead to an inefficient design (successive calls to bisect functions would " "not \"remember\" all of the previous key lookups)." msgstr "" +"Contrairement à la fonction :func:`sorted`, ça n'aurait pas de sens pour la " +"fonction :func:`bisect` d'avoir un paramètre *key* ou *reversed*, qui " +"conduiraient à une utilisation inefficace (des appels successifs à la " +"fonction *bisect* n'auraient aucun moyen de se \"souvenir\" des recherches " +"de clef précédentes)." #: ../Doc/library/bisect.rst:135 msgid "" "Instead, it is better to search a list of precomputed keys to find the index " "of the record in question::" msgstr "" +"Il est préférable d'utiliser une liste de clefs précalculée pour chercher " +"l'index de l'enregistrement en question : ::" diff --git a/library/cgitb.po b/library/cgitb.po index 89462020..fe05934c 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" -msgstr "" +msgstr ":mod:`cgitb` --- Gestionnaire d'exceptions pour les scripts CGI" #: ../Doc/library/cgitb.rst:10 msgid "**Source code:** :source:`Lib/cgitb.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/cgitb.py`" #: ../Doc/library/cgitb.rst:20 msgid "" @@ -37,10 +37,22 @@ msgid "" "debug the problem. Optionally, you can save this information to a file " "instead of sending it to the browser." msgstr "" +"Le module :mod:`cgitb` fournit un gestionnaire d'exceptions spécifique pour " +"les scripts Python. (Son nom est trompeur : Il a été conçu à l'origine pour " +"afficher des pile d'appels en HTML pour les scripts CGI, puis a été " +"généralisé par la suite pour afficher cette information en texte brut.) Une " +"fois ce module activé, si une excecption remonte jusqu'à l'interpréteur, un " +"rapport détaillé sera affiché. Le rapport affiche la pile d'appels, montrant " +"des extraits de code pour chaque niveau, ainsi que les arguments et les " +"variables locales des fonctions appelantes pour vous aider à résoudre le " +"problème. Il est aussi possible de sauvegarder cette information dans un " +"fichier plutôt que de l'envoyer dans le navigateur." #: ../Doc/library/cgitb.rst:30 msgid "To enable this feature, simply add this to the top of your CGI script::" msgstr "" +"Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " +"script CGI : ::" #: ../Doc/library/cgitb.rst:35 msgid "" @@ -48,6 +60,9 @@ msgid "" "displayed in the browser and whether the report is logged to a file for " "later analysis." msgstr "" +"Les paramètres optionnels de la fonction :func:`enable` permettent de " +"choisir si le rapport est envoyé au navigateur ou si le rapport est écrit " +"dans un fichier pour analyse ultérieure." #: ../Doc/library/cgitb.rst:44 msgid "" @@ -55,6 +70,9 @@ msgid "" "default handling for exceptions by setting the value of :attr:`sys." "excepthook`." msgstr "" +"Appeler cette fonction remplace le gestionnaire d'exceptions par défaut de " +"l'interpréteur par celui du module :mod:`cgitb`, en configurant :attr:`sys." +"excepthook`." #: ../Doc/library/cgitb.rst:47 msgid "" @@ -68,6 +86,15 @@ msgid "" "HTML. Any other value forces plain text output. The default value is ``" "\"html\"``." msgstr "" +"Le paramètre optionnel *display* vaut ``1`` par défaut, et peut être mis à " +"``0`` pour désactiver l'envoi des piles d'appels au navigateur. Si " +"l'argument *logdir* est donné les piles d'appels seront écrites dans des " +"fichiers placés dans le dossier *logdir*. L'argument optionnel *context* est " +"le nombre de lignes de code à afficher autour de la ligne courante dans le " +"code source à chaque niveau de la pile d'appel, il vaut ``5`` par défaut. Si " +"l'argument optionnel *format* est ``\"html\"``, le rapport sera rédigé en " +"HTML. Le rapport sera écrit en texte brut pour toute autre valeur. La " +"valeur par défaut est ``\"html\"``." #: ../Doc/library/cgitb.rst:59 msgid "" @@ -79,3 +106,11 @@ msgid "" "func:`sys.exc_info`. If the *info* argument is not supplied, the current " "exception is obtained from :func:`sys.exc_info`." msgstr "" +"Cette fonction gère les exceptions en utilisant la configuration par défaut " +"(c'est à dire envoyer un rapport HTML au navigateur sans l'enregistrer dans " +"un fichier). Il peut être utilisé lorsque vous avez attrapé une exception et " +"que vous en voulez un rapport généré par :mod:`cgitb`. L'argument optionnel " +"*info* doit être un *tuple* de trois éléments contenant le type de " +"l'exception, l'exception, et la pile d'appels, tel que le *tuple* renvoyé " +"par :func:`sys.exc_info`. Si l'argument *info* n'est pas donné, l'exception " +"courante est obtenue via :func:`sys.exc_info`." diff --git a/library/chunk.po b/library/chunk.po index 856c361a..93f532f3 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -46,7 +46,7 @@ msgstr "" #: ../Doc/library/chunk.rst:29 msgid "Contents" -msgstr "" +msgstr "Sommaire" #: ../Doc/library/chunk.rst:31 msgid "0" diff --git a/library/cmd.po b/library/cmd.po index 937ded25..aee4b84f 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -383,7 +383,7 @@ msgstr "" "utilise :func:`input` pour afficher une invite de commande et lire la " "prochaine commande; si il est faux, :meth:`sys.stdout.write` et :meth:`sys." "stdin.readline` sont utilisées. (Cela signifie qu'en important :mod:" -"`readline` sur les systèmes qui le supportent, l'interprète va " +"`readline` sur les systèmes qui le supportent, l'interpréteur va " "automatiquement supporter une édition de ligne similaire à :program:`Emacs` " "ainsi que des touches d'historique de commande)." @@ -433,7 +433,7 @@ msgstr "" "implémenté avec la méthode :meth:`~Cmd.precmd`, qui est responsable du " "passage de l'entrée en minuscules ainsi que d'écrire les commandes dans un " "fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " -"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement::" +"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" #: ../Doc/library/cmd.rst:316 msgid "" diff --git a/library/collections.abc.po b/library/collections.abc.po index 55f6a086..70d12073 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -55,7 +55,7 @@ msgstr "Hérite de" #: ../Doc/library/collections.abc.rst:38 msgid "Abstract Methods" -msgstr "Méthodes Abstraites" +msgstr "Méthodes abstraites" #: ../Doc/library/collections.abc.rst:38 msgid "Mixin Methods" diff --git a/library/colorsys.po b/library/colorsys.po index 166dd7c5..e01ecdfc 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/colorsys.rst:2 msgid ":mod:`colorsys` --- Conversions between color systems" -msgstr "" +msgstr ":mod:`colorsys` --- Conversions entre les systèmes de couleurs" #: ../Doc/library/colorsys.rst:9 msgid "**Source code:** :source:`Lib/colorsys.py`" -msgstr "**Code source :** :source:`Lib/colorsys.py`" +msgstr "**Code source :** :source:`Lib/colorsys.py`" #: ../Doc/library/colorsys.rst:13 msgid "" @@ -34,6 +34,15 @@ msgid "" "coordinate is between 0 and 1, but the I and Q coordinates can be positive " "or negative. In all other spaces, the coordinates are all between 0 and 1." msgstr "" +"Le module :mod:`colorsys` définit les conversions bidirectionnelles des " +"valeurs de couleur entre les couleurs exprimées dans l'espace colorimétrique " +"RVB (Rouge Vert Bleu) utilisé par les écrans d'ordinateur et trois autres " +"systèmes de coordonnées : YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " +"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " +"sont des valeurs en virgule flottante. Dans l'espace YIQ, la coordonnée Y " +"est comprise entre 0 et 1, mais les coordonnées I et Q peuvent être " +"positives ou négatives. Dans tous les autres espaces, les coordonnées sont " +"toutes comprises entre 0 et 1." #: ../Doc/library/colorsys.rst:23 msgid "" @@ -41,34 +50,47 @@ msgid "" "ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-spaces." "htm." msgstr "" +"Consultez http://www.poynton.com/ColorFAQ.html et https://www." +"cambridgeincolour.com/tutorials/color-spaces.htm pour plus d'informations " +"concernant les espaces colorimétrique." #: ../Doc/library/colorsys.rst:27 msgid "The :mod:`colorsys` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`colorsys` définit les fonctions suivantes :" #: ../Doc/library/colorsys.rst:32 msgid "Convert the color from RGB coordinates to YIQ coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées YIQ." #: ../Doc/library/colorsys.rst:37 msgid "Convert the color from YIQ coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées YIQ vers les coordonnées RGB (RVB)." #: ../Doc/library/colorsys.rst:42 msgid "Convert the color from RGB coordinates to HLS coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HLS " +"(TSV)." #: ../Doc/library/colorsys.rst:47 msgid "Convert the color from HLS coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées HLS (TSV) vers les coordonnées RGB " +"(RVB)." #: ../Doc/library/colorsys.rst:52 msgid "Convert the color from RGB coordinates to HSV coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HSV " +"(TSV)." #: ../Doc/library/colorsys.rst:57 msgid "Convert the color from HSV coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées HSV (TSV) vers les coordonnées RGB " +"(RVB)." #: ../Doc/library/colorsys.rst:59 msgid "Example::" diff --git a/library/concurrency.po b/library/concurrency.po index 0ae590b1..a0823763 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/concurrency.rst:5 msgid "Concurrent Execution" -msgstr "Exécution Concourante" +msgstr "Exécution concourante" #: ../Doc/library/concurrency.rst:7 msgid "" @@ -37,3 +37,5 @@ msgstr "" #: ../Doc/library/concurrency.rst:25 msgid "The following are support modules for some of the above services:" msgstr "" +"Les modules suivants servent de fondation pour certains services cités ci-" +"dessus." diff --git a/library/configparser.po b/library/configparser.po index 380dda37..a5783967 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -1028,7 +1028,7 @@ msgstr "" #: ../Doc/library/configparser.rst:1235 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/configparser.rst:1239 msgid "Base class for all other :mod:`configparser` exceptions." diff --git a/library/constants.po b/library/constants.po index 99871cfd..533a88de 100644 --- a/library/constants.po +++ b/library/constants.po @@ -81,6 +81,8 @@ msgstr "" #: ../Doc/library/constants.rst:43 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" +"Consultez :ref:`implementing-the-arithmetic-operations` pour davantage de " +"details." #: ../Doc/library/constants.rst:50 msgid "" diff --git a/library/contextlib.po b/library/contextlib.po index b390cff4..236a72e9 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -538,6 +538,8 @@ msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." #: ../Doc/library/contextlib.rst:613 msgid "Single use, reusable and reentrant context managers" diff --git a/library/crypto.po b/library/crypto.po index fbbe7ad8..55ec5af4 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/crypto.rst:5 msgid "Cryptographic Services" -msgstr "Service de Cryptographie" +msgstr "Service de cryptographie" #: ../Doc/library/crypto.rst:9 msgid "" @@ -28,6 +28,6 @@ msgid "" "available. Here's an overview:" msgstr "" "Les modules décrits dans ce chapitre mettent en œuvre divers algorithmes " -"cryptographiques. Ils peuvent, ou pas, être disponnibles, en fonction de " +"cryptographiques. Ils peuvent, ou pas, être disponibles, en fonction de " "l'installation Sur les systèmes Unix, le module :mod:`crypt` peut aussi être " "disponible. Voici une vue d'ensemble:" diff --git a/library/custominterp.po b/library/custominterp.po index 22aa90b1..d33df765 100644 --- a/library/custominterp.po +++ b/library/custominterp.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/custominterp.rst:5 msgid "Custom Python Interpreters" -msgstr "" +msgstr "Interpréteurs Python personnalisés" #: ../Doc/library/custominterp.rst:7 msgid "" @@ -28,7 +28,13 @@ msgid "" "look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, " "used to support compiling a possibly-incomplete chunk of Python code.)" msgstr "" +"Les modules décrits dans ce chapitre permettent d'écrire des interfaces " +"similaires à l'interpréteur interactif de Python. Si vous voulez un " +"interpréteur Python qui gère quelques fonctionalités supplémentaires, vous " +"devriez regarder le module :mod:`code`. (Le module :mod:`codeop` est un " +"module de plus bas niveau permettant de compiler des morceaux, pas forcément " +"complets, de Python.)" #: ../Doc/library/custominterp.rst:13 msgid "The full list of modules described in this chapter is:" -msgstr "" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/datatypes.po b/library/datatypes.po index c1ce7735..c0f117f9 100644 --- a/library/datatypes.po +++ b/library/datatypes.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/datatypes.rst:5 msgid "Data Types" -msgstr "" +msgstr "Types de données" #: ../Doc/library/datatypes.rst:7 msgid "" @@ -26,6 +26,9 @@ msgid "" "types such as dates and times, fixed-type arrays, heap queues, synchronized " "queues, and sets." msgstr "" +"Les modules documentés dans ce chapitre fournissent une gamme de types de " +"données spécialisés tel que les dates et les heures, les listes à type " +"prédéfini, les *heap queue*, les queues synchronisées, et les ensembles." #: ../Doc/library/datatypes.rst:11 msgid "" @@ -34,7 +37,11 @@ msgid "" "`tuple`. The :class:`str` class is used to hold Unicode strings, and the :" "class:`bytes` class is used to hold binary data." msgstr "" +"Python fournit aussi quelques types natifs, typiquement :class:`dict`, :" +"class:`list`, :class:`set`, :class:`frozenset`, et :class:`tuple`. La " +"classe :class:`str` est utilisée pour stocker des chaînes unicode, et la " +"classe :class:`bytes` des données binaires." #: ../Doc/library/datatypes.rst:16 msgid "The following modules are documented in this chapter:" -msgstr "" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/datetime.po b/library/datetime.po index 5ab21160..997fafe9 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -244,7 +244,7 @@ msgstr "" #: ../Doc/library/datetime.rst:141 msgid "Subclass relationships::" -msgstr "Relations entre les sous-classes :" +msgstr "Relations entre les sous-classes ::" #: ../Doc/library/datetime.rst:155 msgid ":class:`timedelta` Objects" @@ -592,11 +592,11 @@ msgstr "" #: ../Doc/library/datetime.rst:295 ../Doc/library/datetime.rst:490 #: ../Doc/library/datetime.rst:1914 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/datetime.rst:298 msgid "This is exact, but may overflow." -msgstr "Ceci est exact, mais peut provoquer un débordement" +msgstr "Ceci est exact, mais peut provoquer un débordement." #: ../Doc/library/datetime.rst:301 msgid "This is exact, and cannot overflow." @@ -1089,7 +1089,7 @@ msgstr "" #: ../Doc/library/datetime.rst:618 msgid "Example of counting days to an event::" -msgstr "Exemple de décompte des jours avant un évènement :" +msgstr "Exemple de décompte des jours avant un évènement ::" #: ../Doc/library/datetime.rst:636 msgid "Example of working with :class:`date`:" @@ -1302,7 +1302,7 @@ msgstr "" "Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " "*timestamp* est en dehors de l'intervalle de valeurs supportées par la " "fonction C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt " -"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`" +"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`." #: ../Doc/library/datetime.rst:790 msgid "" diff --git a/library/development.po b/library/development.po index f1bef6c3..96bad7fb 100644 --- a/library/development.po +++ b/library/development.po @@ -39,4 +39,4 @@ msgstr "" #: ../Doc/library/development.rst:14 msgid "The list of modules described in this chapter is:" -msgstr "Voici la liste des modules documentés par ce chapitre:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/distutils.po b/library/distutils.po index 9bc71144..f82e485e 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr "" +msgstr ":mod:`distutils` --- Création et installation des modules Python" #: ../Doc/library/distutils.rst:12 msgid "" @@ -28,6 +28,11 @@ msgid "" "collections of Python packages which include modules coded in both Python " "and C." msgstr "" +"Le package :mod:`distutils` fournit le support pour la création et " +"l'installation de modules supplémentaires dans une installation Python. Les " +"nouveaux modules peuvent être soit en Python pur à 100%, soit des modules " +"d'extension écrits en C, soit des collections de paquets Python qui incluent " +"des modules codés en C et en Python." #: ../Doc/library/distutils.rst:17 msgid "" @@ -36,32 +41,45 @@ msgid "" "particular, `setuptools `__ is " "an enhanced alternative to :mod:`distutils` that provides:" msgstr "" +"La plupart des utilisateurs de Python ne voudront *pas* utiliser ce module " +"directement, mais plutôt les outils cross-version maintenus par la *Python " +"Packaging Authority*. En particulier, `setuptools `__ est une alternative améliorée à :mod:" +"`distutils` qui fournit :" #: ../Doc/library/distutils.rst:23 msgid "support for declaring project dependencies" -msgstr "" +msgstr "support pour la déclaration des dépendances de projets" #: ../Doc/library/distutils.rst:24 msgid "" "additional mechanisms for configuring which files to include in source " "releases (including plugins for integration with version control systems)" msgstr "" +"mécanismes supplémentaires pour configurer quels fichiers inclure dans les " +"distributions source (y compris les plugins pour l'intégration avec les " +"systèmes de contrôle de version)" #: ../Doc/library/distutils.rst:26 msgid "" "the ability to declare project \"entry points\", which can be used as the " "basis for application plugin systems" msgstr "" +"la possibilité de déclarer les \"points d'entrée\" du projet, qui peuvent " +"être utilisés comme base pour les systèmes de plugins applicatifs" #: ../Doc/library/distutils.rst:28 msgid "" "the ability to automatically generate Windows command line executables at " "installation time rather than needing to prebuild them" msgstr "" +"la possibilité de générer automatiquement des exécutables en ligne de " +"commande Windows au moment de l'installation plutôt que de devoir les pré-" +"construire" #: ../Doc/library/distutils.rst:30 msgid "consistent behaviour across all supported Python versions" -msgstr "" +msgstr "comportement cohérent entre toutes les versions Python supportées" #: ../Doc/library/distutils.rst:32 msgid "" @@ -70,6 +88,11 @@ msgid "" "``distutils``. Refer to the `Python Packaging User Guide `_ for more information." msgstr "" +"Le programme d'installation recommandé `pip `__ " +"exécute tous les scripts ``setup. py`` avec ``setuptools``, même si le " +"script lui-même n'importe que ``distutils``. Pour plus d'informations, " +"reportez-vous au `Python Packaging User Guide `_." #: ../Doc/library/distutils.rst:38 msgid "" @@ -78,6 +101,10 @@ msgid "" "system, the legacy :mod:`distutils` based user documentation and API " "reference remain available:" msgstr "" +"À destination des auteurs et utilisateurs d'outils d'empaquetage cherchant " +"une compréhension plus approfondie des détails du système actuel de création " +"de paquets et de leur distribution, la documentation utilisateur historique " +"de :mod:`distutils` la référence de son API restent disponibles :" #: ../Doc/library/distutils.rst:43 msgid ":ref:`install-index`" diff --git a/library/doctest.po b/library/doctest.po index 84d2790c..782e0047 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -727,7 +727,7 @@ msgstr "" #: ../Doc/library/doctest.rst:757 msgid "Warnings" -msgstr "" +msgstr "Avertissements" #: ../Doc/library/doctest.rst:759 msgid "" diff --git a/library/dummy_threading.po b/library/dummy_threading.po index a77b4699..1aca0f6f 100644 --- a/library/dummy_threading.po +++ b/library/dummy_threading.po @@ -39,7 +39,7 @@ msgstr "" #: ../Doc/library/dummy_threading.rst:15 msgid "Suggested usage is::" -msgstr "Utilisation suggérée : " +msgstr "Utilisation suggérée ::" #: ../Doc/library/dummy_threading.rst:22 msgid "" diff --git a/library/email-examples.po b/library/email-examples.po index 62beeb72..630dd457 100644 --- a/library/email-examples.po +++ b/library/email-examples.po @@ -18,13 +18,16 @@ msgstr "" #: ../Doc/library/email-examples.rst:4 msgid ":mod:`email`: Examples" -msgstr "" +msgstr ":mod:`email`: Exemples" #: ../Doc/library/email-examples.rst:6 msgid "" "Here are a few examples of how to use the :mod:`email` package to read, " "write, and send simple email messages, as well as more complex MIME messages." msgstr "" +"Cette page contient quelques exemples de l'utilisation du package :mod:" +"`email` pour lire, écrire, et envoyer de simples messages email, ainsi que " +"des messages MIME plus complexes." #: ../Doc/library/email-examples.rst:9 msgid "First, let's see how to create and send a simple text message:" @@ -41,18 +44,24 @@ msgid "" "Here's an example of how to send a MIME message containing a bunch of family " "pictures that may be residing in a directory:" msgstr "" +"Voici un exemple de l'envoi d'un message MIME contenant une série de photos " +"de famille qui sont stockés ensemble dans un dossier :" #: ../Doc/library/email-examples.rst:26 msgid "" "Here's an example of how to send the entire contents of a directory as an " "email message: [1]_" msgstr "" +"Voici un exemple d'envoi du contenu d'un dossier entier en tant que message " +"email : [1]_" #: ../Doc/library/email-examples.rst:32 msgid "" "Here's an example of how to unpack a MIME message like the one above, into a " "directory of files:" msgstr "" +"Voici un message de comment décomposer un message MIME comme celui ci dessus " +"en tant que fichiers dans un dossier :" #: ../Doc/library/email-examples.rst:37 msgid "" @@ -87,7 +96,7 @@ msgstr "" #: ../Doc/library/email-examples.rst:62 msgid "Up to the prompt, the output from the above is:" -msgstr "" +msgstr "La sortie textuelle du code ci dessus est :" #: ../Doc/library/email-examples.rst:76 msgid "Footnotes" @@ -97,6 +106,7 @@ msgstr "Notes" msgid "" "Thanks to Matthew Dixon Cowles for the original inspiration and examples." msgstr "" +"Merci à Matthew Dixon Cowles pour l'inspiration originale et les exemples." #: ../Doc/library/email-examples.rst:78 msgid "Contributed by Martin Matejek." diff --git a/library/email.iterators.po b/library/email.iterators.po index 531a8e69..ff3ce268 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/email.iterators.rst:2 msgid ":mod:`email.iterators`: Iterators" -msgstr "" +msgstr ":mod:`email.iterators`: Itérateurs" #: ../Doc/library/email.iterators.rst:7 msgid "**Source code:** :source:`Lib/email/iterators.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/iterators.py`" #: ../Doc/library/email.iterators.rst:11 msgid "" @@ -31,6 +31,10 @@ msgid "" "module provides some useful higher level iterations over message object " "trees." msgstr "" +"Itérer sur l'arborescence d'un objet message est plutôt simple avec la " +"méthode :meth:`Message.walk `. Le module :mod:" +"`email.iterators` fournit des fonctionnalités d'itérations de plus haut " +"niveau sur les arbres d'objets messages." #: ../Doc/library/email.iterators.rst:19 msgid "" @@ -41,18 +45,30 @@ msgid "" "message from a file using :meth:`~io.TextIOBase.readline`, skipping over all " "the intervening headers." msgstr "" +"Cette fonction permet d'itérer sur tous les contenus de tous les éléments de " +"*msg*, en retournant les contenus sous forme de chaînes de caractères ligne " +"par ligne. Il saute les entêtes des sous éléments, et tous les sous éléments " +"dont le contenu n'est pas une chaîne de caractères Python. C'est en quelque " +"sorte équivalent à une lecture plate d'une représentation textuelle du " +"message à partir d'un fichier en utilisant :meth:`~io.TextIOBase.readline`, " +"et en sautant toutes les entêtes intermédiaires." #: ../Doc/library/email.iterators.rst:26 msgid "" "Optional *decode* is passed through to :meth:`Message.get_payload `." msgstr "" +"Le paramètre optionnel *decode* est transmis à la méthode :meth:`Message." +"get_payload `." #: ../Doc/library/email.iterators.rst:32 msgid "" "This iterates over all the subparts of *msg*, returning only those subparts " "that match the MIME type specified by *maintype* and *subtype*." msgstr "" +"Cette fonction permet d'itérer sur tous les sous éléments de *msg*, en " +"retournant seulement les sous éléments qui correspondent au type MIME " +"spécifié par *maintype* et *subtype*." #: ../Doc/library/email.iterators.rst:35 msgid "" @@ -60,24 +76,35 @@ msgid "" "is done only with the main type. *maintype* is optional too; it defaults " "to :mimetype:`text`." msgstr "" +"Notez que le paramètre *subtype* est optionnel ; s'il n'est pas présent, " +"alors le type MIME du sous élément est seulement composé du type principal. " +"*maintype* est également optionnel ; sa valeur par défaut est :mimetype:" +"`text`." #: ../Doc/library/email.iterators.rst:39 msgid "" "Thus, by default :func:`typed_subpart_iterator` returns each subpart that " "has a MIME type of :mimetype:`text/\\*`." msgstr "" +"En conséquence, par défaut, :func:`typed_subpart_iterator` retourne chaque " +"sous élément qui a un type MIME de type :mimetype:`text/\\*`." #: ../Doc/library/email.iterators.rst:43 msgid "" "The following function has been added as a useful debugging tool. It should " "*not* be considered part of the supported public interface for the package." msgstr "" +"La fonction suivante a été ajouté en tant qu'un outil de débogage. Elle *ne " +"devrait pas* être considérée comme une interface publique supportée pour ce " +"paquet." #: ../Doc/library/email.iterators.rst:48 msgid "" "Prints an indented representation of the content types of the message object " "structure. For example:" msgstr "" +"Affiche une représentation indentée des types de contenu de la structure de " +"l'objet message. Par exemple :" #: ../Doc/library/email.iterators.rst:81 msgid "" @@ -85,3 +112,7 @@ msgid "" "suitable for Python's :func:`print` function. *level* is used internally. " "*include_default*, if true, prints the default type as well." msgstr "" +"Le paramètre optionnel *fp* est un objet fichier-compatible dans lequel on " +"peut imprimer le flux de sortie. Il doit être approprié pour la fonction de " +"Python :func:`print`. *level* est utilisé en interne. *include_default*, si " +"vrai, affiche aussi le type par défaut." diff --git a/library/exceptions.po b/library/exceptions.po index 48e80d70..959a39e6 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/exceptions.rst:4 msgid "Built-in Exceptions" -msgstr "" +msgstr "Exceptions natives" #: ../Doc/library/exceptions.rst:10 msgid "" @@ -29,6 +29,12 @@ msgid "" "from which *it* is derived). Two exception classes that are not related via " "subclassing are never equivalent, even if they have the same name." msgstr "" +"En python, une exception est une instance d'une classe héritée de :class:" +"`BaseException`. Dans un bloc :keyword:`try`, la clause :keyword:`except` " +"traite non seulement la classe d'exception qu'elle mentionne, mais aussi " +"toutes les classes dérivées de cette classe (contrairement à ses classes " +"mères). Deux classes qui ne sont pas liées par héritage ne sont jamais " +"équivalentes, même si elles ont le même nom." #: ../Doc/library/exceptions.rst:19 msgid "" @@ -39,6 +45,12 @@ msgid "" "explaining the code). The associated value is usually passed as arguments " "to the exception class's constructor." msgstr "" +"Les exceptions natives présentes ci-dessous peuvent être levées par " +"l'interpréteur ou par les fonctions natives. Sauf mention contraire, une " +"\"valeur associée\" indique la cause de l'erreur. Cela peut être une chaîne " +"ou un *tuple* contenant plusieurs éléments d'information (e.g., un code " +"d'erreur ou un message explicatif). Cette valeur associée est généralement " +"donnée en argument du constructeur de la classe." #: ../Doc/library/exceptions.rst:26 msgid "" @@ -48,6 +60,11 @@ msgid "" "that there is nothing to prevent user code from raising an inappropriate " "error." msgstr "" +"Du code utilisateur peut lever des exceptions natives. Cela peut être " +"utilisé pour tester un gestionnaire d'exception ou pour rapporter une " +"condition d'erreur \"comme si\" c'était l'interpréteur qui levait cette " +"exception ; mais attention car rien n'empêche du code utilisateur de lever " +"une erreur inappropriée." #: ../Doc/library/exceptions.rst:31 msgid "" @@ -57,6 +74,12 @@ msgid "" "`BaseException`. More information on defining exceptions is available in " "the Python Tutorial under :ref:`tut-userexceptions`." msgstr "" +"Les classes d'exception natives peuvent être héritées pour définir de " +"nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les " +"nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-" +"classes, et non de :exc:`BaseException`. Plus d'informations sur la " +"définition des exceptions sont disponibles dans le Tutoriel Python sous :ref:" +"`tut-userexceptions`." #: ../Doc/library/exceptions.rst:37 msgid "" @@ -66,6 +89,11 @@ msgid "" "that is eventually displayed will include the originating exception(s) and " "the final exception." msgstr "" +"En levant (ou levant à nouveau) une exception dans une clause :keyword:" +"`except` ou :keyword:`finally`, :attr:`__context__` est automatiquement " +"assigné à la dernière exception capturée ; si la nouvelle exception n'est " +"pas gérée, la trace d'appels affichée inclut la ou les exception(s) " +"d'origine et l'exception finale." #: ../Doc/library/exceptions.rst:43 msgid "" @@ -74,6 +102,10 @@ msgid "" "be supplemented with an explicit cause by using :keyword:`from` with :" "keyword:`raise`::" msgstr "" +"En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " +"pour lever à nouveau l'exception en cours de traitement), le contexte " +"implicite d'exception peut être complété par une cause explicite en " +"utilisant :keyword:`from` avec :keyword:`raise`: ::" #: ../Doc/library/exceptions.rst:50 msgid "" @@ -85,6 +117,14 @@ msgid "" "exc:`KeyError` to :exc:`AttributeError`, while leaving the old exception " "available in :attr:`__context__` for introspection when debugging." msgstr "" +"L'expression suivant :keyword:`from` doit être une exception ou ``None``. " +"Elle sera assignée en tant que :attr:`__cause__` dans l'exception levée. " +"Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" +"`__suppress_context__` à ``True``, de sorte que l'utilisation de ``raise " +"new_exc from None`` remplace bien l'ancienne exception avec la nouvelle à " +"des fins d'affichage (e.g., convertir :exc:`KeyError` en :exc:" +"`AttributeError`, tout en laissant l'ancienne exception disponible dans :" +"attr:`__context__` pour introspection lors du débogage." #: ../Doc/library/exceptions.rst:59 msgid "" @@ -94,6 +134,12 @@ msgid "" "chained exception in :attr:`__context__` is shown only if :attr:`__cause__` " "is :const:`None` and :attr:`__suppress_context__` is false." msgstr "" +"Le code d'affichage par défaut de la trace d'appels montre ces exceptions " +"chaînées en plus de la trace de l'exception elle-même. Une exception chaînée " +"explicitement dans :attr:`__cause__` est toujours affichée si présente. Une " +"exception implicitement chaînée dans :attr:`__context__` n'est affichée que " +"si :attr:`__cause__` est :const:`None` et :attr:`__suppress_context__` est " +"faux." #: ../Doc/library/exceptions.rst:65 msgid "" @@ -101,16 +147,21 @@ msgid "" "exceptions so that the final line of the traceback always shows the last " "exception that was raised." msgstr "" +"Dans les deux cas, l'exception elle-même est toujours affichée après toutes " +"les exceptions enchaînées, de sorte que la dernière ligne de la trace " +"d'appels montre toujours la dernière exception qui a été levée." #: ../Doc/library/exceptions.rst:71 msgid "Base classes" -msgstr "" +msgstr "Classes de base" #: ../Doc/library/exceptions.rst:73 msgid "" "The following exceptions are used mostly as base classes for other " "exceptions." msgstr "" +"Les exceptions suivantes sont utilisées principalement en tant que classes " +"de base pour d'autres exceptions." #: ../Doc/library/exceptions.rst:77 msgid "" @@ -120,6 +171,11 @@ msgid "" "argument(s) to the instance are returned, or the empty string when there " "were no arguments." msgstr "" +"La classe de base pour toutes les exceptions natives. Elle n'est pas vouée à " +"être héritée directement par des classes utilisateur (pour cela, utilisez :" +"exc:`Exception`). Si :func:`str` est appelée sur une instance de cette " +"classe, la représentation du ou des argument(s) de l'instance est retournée, " +"ou la chaîne vide s'il n'y avait pas d'arguments." #: ../Doc/library/exceptions.rst:85 msgid "" @@ -128,18 +184,29 @@ msgid "" "assign a special meaning to the elements of this tuple, while others are " "usually called only with a single string giving an error message." msgstr "" +"Le *tuple* d'arguments donné au constructeur d'exception. Certaines " +"exceptions natives (comme :exc:`OSError`) attendent un certain nombre " +"d'arguments et attribuent une signification spéciale aux éléments de ce " +"*tuple*, alors que d'autres ne sont généralement appelées qu'avec une seule " +"chaîne de caractères rendant un message d'erreur. " #: ../Doc/library/exceptions.rst:92 msgid "" "This method sets *tb* as the new traceback for the exception and returns the " "exception object. It is usually used in exception handling code like this::" msgstr "" +"Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " +"l'exception et retourne l'objet exception. Elle est généralement utilisée " +"dans du code de gestion d'exceptions comme ceci: ::" #: ../Doc/library/exceptions.rst:105 msgid "" "All built-in, non-system-exiting exceptions are derived from this class. " "All user-defined exceptions should also be derived from this class." msgstr "" +"Toutes les exceptions natives, qui n'entraînent pas une sortie du système " +"dérivent de cette classe. Toutes les exceptions définies par l'utilisateur " +"devraient également être dérivées de cette classe." #: ../Doc/library/exceptions.rst:111 msgid "" @@ -147,12 +214,17 @@ msgid "" "arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" "`FloatingPointError`." msgstr "" +"La classe de base pour les exceptions natives qui sont levées pour diverses " +"erreurs arithmétiques : :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" +"`FloatingPointError`." #: ../Doc/library/exceptions.rst:118 msgid "" "Raised when a :ref:`buffer ` related operation cannot be " "performed." msgstr "" +"Levée lorsqu'une opération liée à un :ref:`tampon ` ne peut " +"pas être exécutée." #: ../Doc/library/exceptions.rst:124 msgid "" @@ -160,18 +232,22 @@ msgid "" "on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " "This can be raised directly by :func:`codecs.lookup`." msgstr "" +"La classe de base pour les exceptions qui sont levées lorsqu'une clé ou un " +"index utilisé sur un tableau de correspondances ou une séquence est " +"invalide : :exc:`IndexError`, :exc:`KeyError`. Peut être levée directement " +"par :func:`codecs.lookup`." #: ../Doc/library/exceptions.rst:130 msgid "Concrete exceptions" -msgstr "" +msgstr "Exceptions concrètes" #: ../Doc/library/exceptions.rst:132 msgid "The following exceptions are the exceptions that are usually raised." -msgstr "" +msgstr "Les exceptions suivantes sont celles qui sont habituellement levées." #: ../Doc/library/exceptions.rst:138 msgid "Raised when an :keyword:`assert` statement fails." -msgstr "" +msgstr "Levée lorsqu'une instruction :keyword:`assert` échoue." #: ../Doc/library/exceptions.rst:143 msgid "" @@ -179,6 +255,9 @@ msgid "" "assignment fails. (When an object does not support attribute references or " "attribute assignments at all, :exc:`TypeError` is raised.)" msgstr "" +"Levée lorsqu'une référence ou une assignation d'attribut (voir :ref:" +"`attribute-references`) échoue. (Lorsqu'un objet ne supporte pas du tout la " +"référence ou l'assignation d'attribut, :exc:`TypeError` est levé.)" #: ../Doc/library/exceptions.rst:150 msgid "" @@ -186,6 +265,10 @@ msgid "" "without reading any data. (N.B.: the :meth:`io.IOBase.read` and :meth:`io." "IOBase.readline` methods return an empty string when they hit EOF.)" msgstr "" +"Levée lorsque la fonction :func:`input` atteint une condition de fin de " +"fichier (EOF) sans lire aucune donnée. (N.B.: les méthodes :meth:`io.IOBase." +"read` et :meth:`io.IOBase.readline` retournent une chaîne vide lorsqu'elles " +"atteignent EOF.)" #: ../Doc/library/exceptions.rst:157 msgid "" @@ -194,6 +277,10 @@ msgid "" "fpectl`` option, or the :const:`WANT_SIGFPE_HANDLER` symbol is defined in " "the :file:`pyconfig.h` file." msgstr "" +"Levée lorsqu'une opération en virgule flottante échoue. Cette exception est " +"toujours définie, mais ne peut être levée que lorsque Python est configuré " +"avec l'option ``--with-fpectl``, ou que le symbole :const:" +"`WANT_SIGFPE_HANDLER` est défini dans le fichier :file:`pyconfig.h`." #: ../Doc/library/exceptions.rst:165 msgid "" @@ -202,6 +289,10 @@ msgid "" "exc:`BaseException` instead of :exc:`Exception` since it is technically not " "an error." msgstr "" +"Levée lorsqu'un :term:`generator` ou une :term:`coroutine` est fermé, voir :" +"meth:`generator.close` et :meth:`coroutine.close`. Elle hérite directement " +"de :exc:`BaseException` au lieu de :exc:`Exception` puisqu'il ne s'agit pas " +"techniquement d'une erreur." #: ../Doc/library/exceptions.rst:173 msgid "" @@ -217,10 +308,14 @@ msgid "" "that was attempted to be imported and the path to any file which triggered " "the exception, respectively." msgstr "" +"Les attributs :attr:`name` et :attr:`path` peuvent être définis uniquement à " +"l'aide d'arguments mot-clef (kwargs) passés au constructeur. Lorsqu'ils sont " +"définis, ils représentent respectivement le nom du module qui a été tenté " +"d'être importé et le chemin d'accès au fichier qui a déclenché l'exception." #: ../Doc/library/exceptions.rst:181 msgid "Added the :attr:`name` and :attr:`path` attributes." -msgstr "" +msgstr "Ajout des attributs :attr:`name` et :attr:`path`." #: ../Doc/library/exceptions.rst:187 msgid "" @@ -228,12 +323,17 @@ msgid "" "silently truncated to fall in the allowed range; if an index is not an " "integer, :exc:`TypeError` is raised.)" msgstr "" +"Levée lorsqu'un indice de séquence est hors de la plage. (Les indices de " +"tranches (*slices*) sont tronqués silencieusement pour tomber dans la plage " +"autorisée ; si un indice n'est pas un entier, :exc:`TypeError` est levée.)" #: ../Doc/library/exceptions.rst:196 msgid "" "Raised when a mapping (dictionary) key is not found in the set of existing " "keys." msgstr "" +"Levée lorsqu'une clef (de dictionnaire) n'est pas trouvée dans l'ensemble " +"des clefs existantes." #: ../Doc/library/exceptions.rst:203 msgid "" @@ -243,6 +343,12 @@ msgid "" "accidentally caught by code that catches :exc:`Exception` and thus prevent " "the interpreter from exiting." msgstr "" +"Levée lorsque l'utilisateur appuie sur la touche d'interruption " +"(normalement :kbd:`Control-C` or :kbd:`Delete`). Pendant l'exécution, un " +"contrôle des interruptions est effectué régulièrement. L'exception hérite " +"de :exc:`BaseException` afin de ne pas être accidentellement capturée par du " +"code qui capture :exc:`Exception` et ainsi empêcher l'interpréteur de " +"quitter." #: ../Doc/library/exceptions.rst:212 msgid "" @@ -254,6 +360,14 @@ msgid "" "recover from this situation; it nevertheless raises an exception so that a " "stack traceback can be printed, in case a run-away program was the cause." msgstr "" +"Levée lorsqu'une opération est à court de mémoire mais que la situation peut " +"encore être rattrapée (en supprimant certains objets). La valeur associée " +"est une chaîne de caractères indiquant quel type d'opération (interne) est à " +"court de mémoire. À noter qu'en raison de l'architecture interne de gestion " +"de la mémoire (la fonction :c:func:`malloc` du C), l'interpréteur peut ne " +"pas toujours être capable de rattraper cette situation ; il lève néanmoins " +"une exception pour qu'une pile d'appels puisse être affichée, dans le cas où " +"un programme en cours d'exécution en était la cause." #: ../Doc/library/exceptions.rst:223 msgid "" @@ -261,6 +375,9 @@ msgid "" "unqualified names. The associated value is an error message that includes " "the name that could not be found." msgstr "" +"Levée lorsqu'un nom local ou global n'est pas trouvé. Ceci ne s'applique " +"qu'aux noms non qualifiés. La valeur associée est un message d'erreur qui " +"inclut le nom qui n'a pas pu être trouvé." #: ../Doc/library/exceptions.rst:230 msgid "" @@ -275,6 +392,10 @@ msgid "" "error, including I/O failures such as \"file not found\" or \"disk full" "\" (not for illegal argument types or other incidental errors)." msgstr "" +"Cette exception est levée lorsqu'une fonction système retourne une erreur " +"liée au système, incluant les erreurs entrées-sorties telles que \"fichier " +"non trouvé\" ou \"disque plein\" (pas pour les types d'arguments illégaux ou " +"d'autres erreurs accidentelles)." #: ../Doc/library/exceptions.rst:244 msgid "" @@ -284,6 +405,11 @@ msgid "" "`~BaseException.args` attribute contains only a 2-tuple of the first two " "constructor arguments." msgstr "" +"La deuxième forme du constructeur définit les attributs correspondants, " +"décrits ci-dessous. Les attributs par défaut sont :const:`None` si non " +"spécifiés. Pour la rétrocompatibilité, si trois arguments sont passés, " +"l'attribut :attr:`~BaseException.args` contient seulement un *tuple* à deux " +"valeurs des deux premiers arguments du constructeur." #: ../Doc/library/exceptions.rst:250 msgid "" @@ -293,10 +419,15 @@ msgid "" "exc:`OSError` directly or via an alias, and is not inherited when " "subclassing." msgstr "" +"Le constructeur retourne souvent une sous-classe d':exc:`OSError`, comme " +"décrit dans `OS exceptions`_ ci-dessous. La sous-classe particulière dépend " +"de la valeur finale d':attr:`.errno`. Ce comportement ne se produit que lors " +"de la construction d':exc:`OSError` directement ou via un alias, et n'est " +"pas hérité lors du sous-classement." #: ../Doc/library/exceptions.rst:258 msgid "A numeric error code from the C variable :c:data:`errno`." -msgstr "" +msgstr "Code d'erreur numérique de la variable C :c:data:`errno`." #: ../Doc/library/exceptions.rst:262 msgid "" @@ -304,6 +435,9 @@ msgid "" "errno` attribute is then an approximate translation, in POSIX terms, of that " "native error code." msgstr "" +"Sous Windows, cela donne le code d'erreur Windows natif. L'attribut :attr:`." +"errno` est alors une traduction approximative, en termes POSIX, de ce code " +"d'erreur natif." #: ../Doc/library/exceptions.rst:266 msgid "" @@ -312,6 +446,10 @@ msgid "" "*errno* argument is ignored. On other platforms, the *winerror* argument is " "ignored, and the :attr:`winerror` attribute does not exist." msgstr "" +"Sous Windows, si l'argument du constructeur *winerror* est un entier, " +"l'attribut :attr:`.errno` est déterminé à partir du code d'erreur Windows, " +"et l'argument *errno* est ignoré. Sur d'autres plateformes, l'argument " +"*winerror* est ignoré, et l'attribut :attr:`winerror` n'existe pas." #: ../Doc/library/exceptions.rst:274 msgid "" @@ -319,6 +457,9 @@ msgid "" "formatted by the C functions :c:func:`perror` under POSIX, and :c:func:" "`FormatMessage` under Windows." msgstr "" +"Le message d'erreur correspondant, tel que fourni par le système " +"d'exploitation. Il est formatté par les fonctions C :c:func:`perror` sous " +"POSIX, et :c:func:`FormatMessage` sous Windows." #: ../Doc/library/exceptions.rst:282 msgid "" @@ -328,6 +469,11 @@ msgid "" "rename`), :attr:`filename2` corresponds to the second file name passed to " "the function." msgstr "" +"Pour les exceptions qui font référence à un chemin d'accès au système de " +"fichiers (comme :func:`open` ou :func:`os.unlink`), :attr:`filename` est le " +"nom du fichier transmis à la fonction. Pour les fonctions qui font référence " +"à deux chemins d'accès au système de fichiers (comme :func:`os.rename`), :" +"attr:`filename2` correspond au deuxième nom de fichier passé à la fonction." #: ../Doc/library/exceptions.rst:289 msgid "" @@ -335,6 +481,9 @@ msgid "" "error`, :exc:`select.error` and :exc:`mmap.error` have been merged into :exc:" "`OSError`, and the constructor may return a subclass." msgstr "" +":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." +"error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" +"`OSError`, et le constructeur peut retourner une sous-classe." #: ../Doc/library/exceptions.rst:295 msgid "" @@ -343,6 +492,10 @@ msgid "" "encoding. Also, the *filename2* constructor argument and attribute was " "added." msgstr "" +"L'attribut :attr:`filename` est maintenant le nom du fichier originel passé " +"à la fonction, au lieu du nom encodé ou décodé à partir de l'encodage du " +"système de fichiers. De plus, l'argument du constructeur et attribut " +"*filename2* a été ajouté." #: ../Doc/library/exceptions.rst:304 msgid "" @@ -353,6 +506,13 @@ msgid "" "Because of the lack of standardization of floating point exception handling " "in C, most floating point operations are not checked." msgstr "" +"Levée lorsque le résultat d'une opération arithmétique est trop grand pour " +"être représenté. Cela ne peut pas se produire pour les entiers (qui " +"préfèrent lever :exc:`MemoryError` plutôt que d'abandonner). Cependant, pour " +"des raisons historiques, OverflowError est parfois levée pour des entiers " +"qui sont en dehors d'une plage requise. En raison de l'absence de " +"normalisation de la gestion des exceptions de virgule flottante en C, la " +"plupart des opérations en virgule flottante ne sont pas vérifiées." #: ../Doc/library/exceptions.rst:314 msgid "" @@ -360,10 +520,13 @@ msgid "" "interpreter detects that the maximum recursion depth (see :func:`sys." "getrecursionlimit`) is exceeded." msgstr "" +"Cette exception est dérivée de :exc:`RuntimeError`. Elle est levée lorsque " +"l'interpréteur détecte que la profondeur de récursivité maximale (voir :func:" +"`sys.getrecursionlimit`) est dépassée." #: ../Doc/library/exceptions.rst:318 msgid "Previously, a plain :exc:`RuntimeError` was raised." -msgstr "" +msgstr "Auparavant, une simple :exc:`RuntimeError` était levée." #: ../Doc/library/exceptions.rst:324 msgid "" @@ -372,6 +535,11 @@ msgid "" "after it has been garbage collected. For more information on weak " "references, see the :mod:`weakref` module." msgstr "" +"Cette exception est levée lorsqu'un pointeur faible d'un objet proxy, créé " +"par la fonction :func:`weakref.proxy`, est utilisé pour accéder à un " +"attribut du référent après qu'il ait été récupéré par le ramasse-miettes. " +"Pour plus d'informations sur les pointeurs faibles, voir le module :mod:" +"`weakref`." #: ../Doc/library/exceptions.rst:332 msgid "" @@ -379,6 +547,9 @@ msgid "" "categories. The associated value is a string indicating what precisely went " "wrong." msgstr "" +"Levée lorsqu'une erreur qui n'appartient à aucune des autres catégories est " +"détectée. La valeur associée est une chaîne de caractères indiquant " +"précisément ce qui s'est mal passé." #: ../Doc/library/exceptions.rst:339 msgid "" @@ -386,12 +557,18 @@ msgid "" "`~iterator.__next__` method to signal that there are no further items " "produced by the iterator." msgstr "" +"Levée par la fonction native :func:`next` et la méthode :meth:`~iterator." +"__next__` d'un :term:`iterator` (itérateur) pour signaler qu'il n'y a pas " +"d'autres éléments produits par l'itérateur." #: ../Doc/library/exceptions.rst:343 msgid "" "The exception object has a single attribute :attr:`value`, which is given as " "an argument when constructing the exception, and defaults to :const:`None`." msgstr "" +"L'objet exception a un unique attribut :attr:`value`, qui est donné en " +"argument lors de la construction de l'exception, et vaut :const:`None` par " +"défaut." #: ../Doc/library/exceptions.rst:347 msgid "" @@ -399,6 +576,10 @@ msgid "" "`StopIteration` instance is raised, and the value returned by the function " "is used as the :attr:`value` parameter to the constructor of the exception." msgstr "" +"Lorsqu'une fonction de type :term:`generator` ou :term:`coroutine` retourne " +"une valeur, une nouvelle instance de :exc:`StopIteration` est levée, et la " +"valeur retournée par la fonction est passée au paramètre :attr:`value` du " +"constructeur de l'exception." #: ../Doc/library/exceptions.rst:352 msgid "" @@ -407,22 +588,30 @@ msgid "" "converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` as " "the new exception's cause)." msgstr "" +"Si une fonction de générateur définie en présence d'une directive ``from " +"__future__ import generator_stop`` lève :exc:`StopIteration`, elle est " +"convertie en :exc:`RuntimeError` (en conservant :exc:`StopIteration` comme " +"cause de la nouvelle exception)." #: ../Doc/library/exceptions.rst:357 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." msgstr "" +"Ajout de l'attribut ``value`` et de la possibilité pour les fonctions de " +"générateur de l'utiliser pour retourner une valeur." #: ../Doc/library/exceptions.rst:361 msgid "Introduced the RuntimeError transformation." -msgstr "" +msgstr "Introduction de la transformation RuntimeError." #: ../Doc/library/exceptions.rst:366 msgid "" "Must be raised by :meth:`__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." msgstr "" +"Doit être levée par la méthode :meth:`__anext__` d'un objet :term:" +"`asynchronous iterator` pour arrêter l'itération." #: ../Doc/library/exceptions.rst:373 msgid "" @@ -431,6 +620,10 @@ msgid "" "or :func:`eval`, or when reading the initial script or standard input (also " "interactively)." msgstr "" +"Levée lorsque l'analyseur syntaxique rencontre une erreur de syntaxe. Cela " +"peut se produire dans une instruction :keyword:`import`, dans un appel aux " +"fonctions natives :func:`exec` ou :func:`eval`, ou lors de la lecture du " +"script initial ou de l'entrée standard (également de manière interactive)." #: ../Doc/library/exceptions.rst:378 msgid "" @@ -438,18 +631,26 @@ msgid "" "attr:`offset` and :attr:`text` for easier access to the details. :func:" "`str` of the exception instance returns only the message." msgstr "" +"Les instances de cette classe ont des attributs :attr:`filename`, :attr:" +"`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " +"détails. La représentation :func:`str` de l'instance de l'exception retourne " +"seulement le message." #: ../Doc/library/exceptions.rst:385 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." msgstr "" +"Classe de base pour les erreurs de syntaxe liées à une indentation " +"incorrecte. C'est une sous-classe de :exc:`SyntaxError`." #: ../Doc/library/exceptions.rst:391 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." msgstr "" +"Levée lorsqu'une indentation contient une utilisation incohérente des " +"tabulations et des espaces. C'est une sous-classe de :exc:`IndentationError`." #: ../Doc/library/exceptions.rst:397 msgid "" @@ -457,6 +658,10 @@ msgid "" "not look so serious to cause it to abandon all hope. The associated value is " "a string indicating what went wrong (in low-level terms)." msgstr "" +"Levée lorsque l'interpréteur trouve une erreur interne, mais que la " +"situation ne semble pas si grave au point de lui faire abandonner tout " +"espoir. La valeur associée est une chaîne de caractères indiquant l'erreur " +"qui est survenue (en termes bas niveau)." #: ../Doc/library/exceptions.rst:401 msgid "" @@ -466,6 +671,11 @@ msgid "" "session), the exact error message (the exception's associated value) and if " "possible the source of the program that triggered the error." msgstr "" +"Vous devriez le signaler à l'auteur ou au responsable de votre interpréteur " +"Python. Assurez-vous de signaler la version de l'interpréteur (``sys." +"version`` ; elle est également affichée au lancement d'une session " +"interactive), le message d'erreur exact (la valeur associée à l'exception) " +"et si possible le code source du programme qui a déclenché l'erreur." #: ../Doc/library/exceptions.rst:410 msgid "" @@ -480,6 +690,17 @@ msgid "" "is zero; if it has another type (such as a string), the object's value is " "printed and the exit status is one." msgstr "" +"Cette exception est levée par la fonction :func:`sys.exit`. Elle hérite de :" +"exc:`BaseException` au lieu d':exc:`Exception` pour ne pas qu'elle soit " +"accidentellement capturée par du code qui capture :exc:`Exception`. Cela " +"permet à l'exception de se propager correctement et de faire quitter " +"l'interpréteur. Lorsqu'elle n'est pas gérée, l'interpréteur Python quitte ; " +"aucune trace d'appels n'est affichée. Le constructeur accepte le même " +"argument optionnel passé à :func:`sys.exit`. Si la valeur est un entier, " +"elle spécifie l'état de sortie du système (passé à la fonction C :c:func:" +"`exit`) ; si elle est ``None``, l'état de sortie est zéro ; si elle a un " +"autre type (comme une chaîne de caractères), la valeur de l'objet est " +"affichée et l'état de sortie est un." #: ../Doc/library/exceptions.rst:421 msgid "" @@ -490,12 +711,21 @@ msgid "" "absolutely positively necessary to exit immediately (for example, in the " "child process after a call to :func:`os.fork`)." msgstr "" +"Un appel à :func:`sys.exit` est traduit en une exception pour que les " +"gestionnaires de nettoyage (les clauses :keyword:`finally` des instructions :" +"keyword:`try`) puissent être exécutés, et pour qu'un débogeur puisse " +"exécuter un script sans courir le risque de perdre le contrôle. La fonction :" +"func:`os._exit` peut être utilisée s'il est absolument nécessaire de sortir " +"immédiatement (par exemple, dans le processus enfant après un appel à :func:" +"`os.fork`)." #: ../Doc/library/exceptions.rst:430 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" msgstr "" +"L'état de sortie ou le message d'erreur passé au constructeur. (``None`` par " +"défaut.)" #: ../Doc/library/exceptions.rst:436 msgid "" @@ -503,6 +733,9 @@ msgid "" "inappropriate type. The associated value is a string giving details about " "the type mismatch." msgstr "" +"Levée lorsqu'une opération ou fonction est appliquée à un objet d'un type " +"inapproprié. La valeur associée est une chaîne de caractères donnant des " +"détails sur le type d'inadéquation." #: ../Doc/library/exceptions.rst:442 msgid "" @@ -510,12 +743,17 @@ msgid "" "but no value has been bound to that variable. This is a subclass of :exc:" "`NameError`." msgstr "" +"Levée lorsqu'une référence est faite à une variable locale dans une fonction " +"ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. C'est " +"une sous-classe de :exc:`NameError`." #: ../Doc/library/exceptions.rst:449 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." msgstr "" +"Levée lorsqu'une erreur d'encodage ou de décodage liée à Unicode se produit. " +"C'est une sous-classe de :exc:`ValueError`." #: ../Doc/library/exceptions.rst:452 msgid "" @@ -523,44 +761,53 @@ msgid "" "error. For example, ``err.object[err.start:err.end]`` gives the particular " "invalid input that the codec failed on." msgstr "" +":exc:`UnicodeError` a des attributs qui décrivent l'erreur d'encodage ou de " +"décodage. Par exemple, ``err.object[err.start:err.end]`` donne l'entrée " +"particulière invalide sur laquelle le codec a échoué." #: ../Doc/library/exceptions.rst:458 msgid "The name of the encoding that raised the error." -msgstr "" +msgstr "Le nom de l'encodage qui a provoqué l'erreur." #: ../Doc/library/exceptions.rst:462 msgid "A string describing the specific codec error." -msgstr "" +msgstr "Une chaîne de caractères décrivant l'erreur de codec spécifique." #: ../Doc/library/exceptions.rst:466 msgid "The object the codec was attempting to encode or decode." -msgstr "" +msgstr "L'objet que le codec essayait d'encoder ou de décoder." #: ../Doc/library/exceptions.rst:470 msgid "The first index of invalid data in :attr:`object`." -msgstr "" +msgstr "Le premier index des données invalides dans :attr:`object`." #: ../Doc/library/exceptions.rst:474 msgid "The index after the last invalid data in :attr:`object`." -msgstr "" +msgstr "L'index après la dernière donnée invalide dans :attr:`object`." #: ../Doc/library/exceptions.rst:479 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant l'encodage. C'est " +"une sous-classe d':exc:`UnicodeError`." #: ../Doc/library/exceptions.rst:485 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant le décodage. C'est " +"une sous-classe d':exc:`UnicodeError`." #: ../Doc/library/exceptions.rst:491 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant la traduction. " +"C'est une sous-classe d':exc:`UnicodeError`." #: ../Doc/library/exceptions.rst:497 msgid "" @@ -568,6 +815,9 @@ msgid "" "the right type but an inappropriate value, and the situation is not " "described by a more precise exception such as :exc:`IndexError`." msgstr "" +"Levée lorsqu'une opération ou fonction native reçoit un argument qui possède " +"le bon type mais une valeur inappropriée, et que la situation n'est pas " +"décrite par une exception plus précise telle que :exc:`IndexError`." #: ../Doc/library/exceptions.rst:504 msgid "" @@ -575,26 +825,33 @@ msgid "" "The associated value is a string indicating the type of the operands and the " "operation." msgstr "" +"Levée lorsque le second argument d'une opération de division ou d'un modulo " +"est zero. La valeur associée est une chaîne indiquant le type des opérandes " +"et de l'opération." #: ../Doc/library/exceptions.rst:509 msgid "" "The following exceptions are kept for compatibility with previous versions; " "starting from Python 3.3, they are aliases of :exc:`OSError`." msgstr "" +"Les exceptions suivantes sont conservées pour la compatibilité avec les " +"anciennes versions ; depuis Python 3.3, ce sont des alias d':exc:`OSError`." #: ../Doc/library/exceptions.rst:518 msgid "Only available on Windows." -msgstr "" +msgstr "Seulement disponible sous Windows." #: ../Doc/library/exceptions.rst:522 msgid "OS exceptions" -msgstr "" +msgstr "Exceptions système" #: ../Doc/library/exceptions.rst:524 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." msgstr "" +"Les exceptions suivantes sont des sous-classes d':exc:`OSError`, elles sont " +"levées en fonction du code d'erreur système." #: ../Doc/library/exceptions.rst:529 msgid "" @@ -602,12 +859,17 @@ msgid "" "blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " "``EWOULDBLOCK`` and ``EINPROGRESS``." msgstr "" +"Levée lorsqu'une opération bloque sur un objet (e.g. socket) configuré pour " +"une opération non-bloquante. Correspond à :c:data:`errno` ``EAGAIN``, " +"``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." #: ../Doc/library/exceptions.rst:534 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" msgstr "" +"En plus de ceux de :exc:`OSError`, :exc:`BlockingIOError` peut avoir un " +"attribut de plus :" #: ../Doc/library/exceptions.rst:539 msgid "" @@ -615,22 +877,30 @@ msgid "" "it blocked. This attribute is available when using the buffered I/O classes " "from the :mod:`io` module." msgstr "" +"Un nombre entier contenant le nombre de caractères écrits dans le flux avant " +"qu'il ne soit bloqué. Cet attribut est disponible lors de l'utilisation des " +"classes tampon entrées-sorties du module :mod:`io`." #: ../Doc/library/exceptions.rst:545 msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" "`errno` ``ECHILD``." msgstr "" +"Levée lorsqu'une opération sur un processus enfant a échoué. Correspond à :c:" +"data:`errno` ``ECHILD``." #: ../Doc/library/exceptions.rst:550 msgid "A base class for connection-related issues." -msgstr "" +msgstr "Une classe de base pour les problèmes de connexion." #: ../Doc/library/exceptions.rst:552 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." msgstr "" +"Les sous-classes sont :exc:`BrokenPipeError`, :exc:" +"`ConnectionAbortedError`, :exc:`ConnectionRefusedError` et :exc:" +"`ConnectionResetError`." #: ../Doc/library/exceptions.rst:557 msgid "" @@ -639,42 +909,60 @@ msgid "" "has been shutdown for writing. Corresponds to :c:data:`errno` ``EPIPE`` and " "``ESHUTDOWN``." msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levé en essayant d'écrire sur un " +"*pipe* alors que l'autre extrémité a été fermée, ou en essayant d'écrire sur " +"un *socket* qui a été fermé pour l'écriture. Correspond à :c:data:`errno` " +"``EPIPE`` et ``ESHUTDOWN``." #: ../Doc/library/exceptions.rst:564 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "aborted by the peer. Corresponds to :c:data:`errno` ``ECONNABORTED``." msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " +"connexion est interrompue par le pair. Correspond à :c:data:`errno` " +"``ECONNABORTED``." #: ../Doc/library/exceptions.rst:570 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "refused by the peer. Corresponds to :c:data:`errno` ``ECONNREFUSED``." msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " +"connexion est refusée par le pair. Correspond à :c:data:`errno` " +"``ECONNREFUSED``." #: ../Doc/library/exceptions.rst:576 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection is reset by " "the peer. Corresponds to :c:data:`errno` ``ECONNRESET``." msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une connexion est " +"réinitialisée par le pair. Correspond à :c:data:`errno` ``ECONNRESET``." #: ../Doc/library/exceptions.rst:582 msgid "" "Raised when trying to create a file or directory which already exists. " "Corresponds to :c:data:`errno` ``EEXIST``." msgstr "" +"Levée en essayant de créer un fichier ou un répertoire qui existe déjà. " +"Correspond à :c:data:`errno` ``EEXIST``." #: ../Doc/library/exceptions.rst:587 msgid "" "Raised when a file or directory is requested but doesn't exist. Corresponds " "to :c:data:`errno` ``ENOENT``." msgstr "" +"Levée lorsqu'un fichier ou répertoire est demandé mais n'existe pas. " +"Correspond à :c:data:`errno` ``ENOENT``." #: ../Doc/library/exceptions.rst:592 msgid "" "Raised when a system call is interrupted by an incoming signal. Corresponds " "to :c:data:`errno` :py:data:`~errno.EINTR`." msgstr "" +"Levée lorsqu'un appel système est interrompu par un signal entrant. " +"Correspond à :c:data:`errno` :py:data:`~errno.EINTR`." #: ../Doc/library/exceptions.rst:595 msgid "" @@ -682,12 +970,18 @@ msgid "" "except if the signal handler raises an exception (see :pep:`475` for the " "rationale), instead of raising :exc:`InterruptedError`." msgstr "" +"Python relance maintenant les appels système lorsqu'un syscall est " +"interrompu par un signal, sauf si le gestionnaire de signal lève une " +"exception (voir :pep:`475` pour les raisons), au lieu de lever :exc:" +"`InterruptedError`." #: ../Doc/library/exceptions.rst:602 msgid "" "Raised when a file operation (such as :func:`os.remove`) is requested on a " "directory. Corresponds to :c:data:`errno` ``EISDIR``." msgstr "" +"Levée lorsqu'une opération sur un fichier (comme :func:`os.remove`) est " +"demandée sur un répertoire. Correspond à :c:data:`errno` ``EISDIR``." #: ../Doc/library/exceptions.rst:608 msgid "" @@ -695,6 +989,9 @@ msgid "" "on something which is not a directory. Corresponds to :c:data:`errno` " "``ENOTDIR``." msgstr "" +"Levée lorsqu'une opération sur un répertoire (comme :func:`os.listdir`) est " +"demandée sur autre chose qu'un répertoire. Correspond à :c:data:`errno` " +"``ENOTDIR``." #: ../Doc/library/exceptions.rst:614 msgid "" @@ -702,90 +999,112 @@ msgid "" "for example filesystem permissions. Corresponds to :c:data:`errno` " "``EACCES`` and ``EPERM``." msgstr "" +"Levée lorsqu'on essaye d'exécuter une opération sans les droits d'accès " +"adéquats — par exemple les permissions du système de fichiers. Correspond à :" +"c:data:`errno` ``EACCES`` et ``EPERM``." #: ../Doc/library/exceptions.rst:620 msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` " "``ESRCH``." msgstr "" +"Levée lorsqu'un processus donné n'existe pas. Correspond à :c:data:`errno` " +"``ESRCH``." #: ../Doc/library/exceptions.rst:625 msgid "" "Raised when a system function timed out at the system level. Corresponds to :" "c:data:`errno` ``ETIMEDOUT``." msgstr "" +"Levée lorsqu'une fonction système a expiré au niveau système. Correspond à :" +"c:data:`errno` ``ETIMEDOUT``." #: ../Doc/library/exceptions.rst:628 msgid "All the above :exc:`OSError` subclasses were added." -msgstr "" +msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." #: ../Doc/library/exceptions.rst:634 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" -msgstr "" +msgstr ":pep:`3151` - Refonte de la hiérarchie des exceptions système et IO" #: ../Doc/library/exceptions.rst:638 msgid "Warnings" -msgstr "" +msgstr "Avertissements" #: ../Doc/library/exceptions.rst:640 msgid "" "The following exceptions are used as warning categories; see the :mod:" "`warnings` module for more information." msgstr "" +"Les exceptions suivantes sont utilisées comme catégories d'avertissement ; " +"voir le module :mod:`warnings` pour plus d'informations." #: ../Doc/library/exceptions.rst:645 msgid "Base class for warning categories." -msgstr "" +msgstr "Classe de base pour les catégories d'avertissement." #: ../Doc/library/exceptions.rst:650 msgid "Base class for warnings generated by user code." msgstr "" +"Classe de base pour les avertissements générés par du code utilisateur." #: ../Doc/library/exceptions.rst:655 msgid "Base class for warnings about deprecated features." msgstr "" +"Classe de base pour les avertissements sur les fonctionnalités obsolètes." #: ../Doc/library/exceptions.rst:660 msgid "" "Base class for warnings about features which will be deprecated in the " "future." msgstr "" +"Classe de base pour les avertissements sur les fonctionnalités qui seront " +"obsolètes dans le futur." #: ../Doc/library/exceptions.rst:665 msgid "Base class for warnings about dubious syntax." -msgstr "" +msgstr "Classe de base pour les avertissements sur de la syntaxe douteuse." #: ../Doc/library/exceptions.rst:670 msgid "Base class for warnings about dubious runtime behavior." msgstr "" +"Classe de base pour les avertissements sur les comportements d'exécution " +"douteux." #: ../Doc/library/exceptions.rst:675 msgid "" "Base class for warnings about constructs that will change semantically in " "the future." msgstr "" +"Classe de base pour les avertissements sur les constructions qui changeront " +"sémantiquement dans le futur." #: ../Doc/library/exceptions.rst:681 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" +"Classe de base pour les avertissements sur des erreurs probables dans les " +"imports de modules." #: ../Doc/library/exceptions.rst:686 msgid "Base class for warnings related to Unicode." -msgstr "" +msgstr "Classe de base pour les avertissements liés à l'Unicode." #: ../Doc/library/exceptions.rst:691 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" +"Classe de base pour les avertissements liés à :class:`bytes` et :class:" +"`bytearray`." #: ../Doc/library/exceptions.rst:696 msgid "Base class for warnings related to resource usage." msgstr "" +"Classe de base pour les avertissements liés à l'utilisation de ressources." #: ../Doc/library/exceptions.rst:703 msgid "Exception hierarchy" -msgstr "" +msgstr "Hiérarchie des exceptions" #: ../Doc/library/exceptions.rst:705 msgid "The class hierarchy for built-in exceptions is:" -msgstr "" +msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" diff --git a/library/filesys.po b/library/filesys.po index b52df4f8..681a3e64 100644 --- a/library/filesys.po +++ b/library/filesys.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/filesys.rst:5 msgid "File and Directory Access" -msgstr "" +msgstr "Accès aux Fichiers et aux Dossiers" #: ../Doc/library/filesys.rst:7 msgid "" @@ -27,6 +27,10 @@ msgid "" "manipulating paths in a portable way, and creating temporary files. The " "full list of modules in this chapter is:" msgstr "" +"Les modules décrits dans ce chapitre servent à accéder aux fichiers et aux " +"dossiers. Des modules, par exemple, pour lire les propriétés des fichiers, " +"manipuler des chemins de manière portable, et créer des fichiers " +"temporaires. La liste exhaustive des modules de ce chapitre est :" #: ../Doc/library/filesys.rst:32 msgid "Module :mod:`os`" @@ -37,6 +41,9 @@ msgid "" "Operating system interfaces, including functions to work with files at a " "lower level than Python :term:`file objects `." msgstr "" +"Interfaces du système d'exploitation, incluant des fonctions pour travailler " +"avec des fichiers dans un niveau plus bas que les :term:`objets fichiers " +"` de Python." #: ../Doc/library/filesys.rst:36 msgid "Module :mod:`io`" @@ -47,6 +54,8 @@ msgid "" "Python's built-in I/O library, including both abstract classes and some " "concrete classes such as file I/O." msgstr "" +"Bibliothèque d'I/O native de Python, incluant des classes abstraites et " +"concrètes tel que les I/O sur les fichiers." #: ../Doc/library/filesys.rst:38 msgid "Built-in function :func:`open`" @@ -55,3 +64,5 @@ msgstr "Fonction native :func:`open`" #: ../Doc/library/filesys.rst:39 msgid "The standard way to open files for reading and writing with Python." msgstr "" +"Le moyen classique pour ouvrir des fichiers pour les lire ou y écrire avec " +"Python." diff --git a/library/fractions.po b/library/fractions.po index 65cd8649..c71c64d9 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/fractions.rst:2 msgid ":mod:`fractions` --- Rational numbers" -msgstr "" +msgstr ":mod:`fractions` --- Nombres rationnels" #: ../Doc/library/fractions.rst:10 msgid "**Source code:** :source:`Lib/fractions.py`" @@ -28,12 +28,16 @@ msgstr "**Code source :** :source:`Lib/fractions.py`" msgid "" "The :mod:`fractions` module provides support for rational number arithmetic." msgstr "" +"Le module :mod:`fractions` fournit un support de l'arithmétique des nombres " +"rationnels." #: ../Doc/library/fractions.rst:17 msgid "" "A Fraction instance can be constructed from a pair of integers, from another " "rational number, or from a string." msgstr "" +"Une instance de *Fraction* peut être construite depuis une paire d'entiers, " +"depuis un autre nombre rationnel, ou depuis une chaîne de caractères." #: ../Doc/library/fractions.rst:26 msgid "" @@ -52,6 +56,21 @@ msgid "" "below.) The last version of the constructor expects a string or unicode " "instance. The usual form for this instance is::" msgstr "" +"La première version demande que *numerator* et *denominator* soient des " +"instance de :class:`numbers.Rational` et renvoie une instance de :class:" +"`Fraction` valant ``numerator/denominator``. Si *denominator* vaut :const:" +"`0`, une :exc:`ZeroDivisionError` est levée. La seconde version demande que " +"*other_fraction* soit une instance de :class:`numbers.Rational` et renvoie " +"une instance de :class:`Fraction` avec la même valeur. Les deux versions " +"suivantes acceptent un :class:`float` ou une instance de :class:`decimal." +"Decimal`, et renvoient une instance de :class:`Fraction` avec exactement la " +"même valeur. Notez que les problèmes usuels des virgules flottantes " +"binaires (voir :ref:`tut-fp-issues`) font que ``Fraction(1.1)`` n'est pas " +"exactement égal à 11/10, et donc ``Fraction(1.1)`` ne renvoie *pas* " +"``Fraction(11, 10)`` comme on pourrait le penser. (Mais référez-vous à la " +"documentation de la méthode :meth:`limit_denominator` ci-dessous.) La " +"dernière version du constructeur attend une chaîne de caractères ou unicode. " +"La représentation habituelle de cette forme est : ::" #: ../Doc/library/fractions.rst:43 msgid "" @@ -62,6 +81,12 @@ msgid "" "In either form the input string may also have leading and/or trailing " "whitespace. Here are some examples::" msgstr "" +"où le ``sign`` optionnel peut être soit `+` soit `-`, et ``numerator`` et " +"``denominator`` (si présent) sont des chaînes de chiffres décimaux. De " +"plus, toute chaîne qui représente une valeur finie et acceptée par le " +"constructeur de :class:`float` est aussi acceptée par celui de :class:" +"`Fraction`. Dans ces deux formes, la chaîne d'entrée peut aussi contenir " +"des espaces en début ou en fin de chaîne. Voici quelques exemples : ::" #: ../Doc/library/fractions.rst:77 msgid "" @@ -71,20 +96,27 @@ msgid "" "as immutable. In addition, :class:`Fraction` has the following properties " "and methods:" msgstr "" +"La classe :class:`Fraction` hérite de la classe abstraite :class:`numbers." +"Rational`, et implémente toutes les méthodes et opérations de cette classe. " +"Les instances de :class:`Fraction` sont hashables, et doivent être traitées " +"comme immuables. En plus de cela, :class:`Fraction` possède les propriétés " +"et méthodes suivantes :" #: ../Doc/library/fractions.rst:83 msgid "" "The :class:`Fraction` constructor now accepts :class:`float` and :class:" "`decimal.Decimal` instances." msgstr "" +"Le constructeur de :class:`Fraction` accepte maintenant des instances de :" +"class:`float` et :class:`decimal.Decimal`." #: ../Doc/library/fractions.rst:90 msgid "Numerator of the Fraction in lowest term." -msgstr "" +msgstr "Numérateur de la fraction irréductible." #: ../Doc/library/fractions.rst:94 msgid "Denominator of the Fraction in lowest term." -msgstr "" +msgstr "Dénominateur de la fraction irréductible." #: ../Doc/library/fractions.rst:99 msgid "" @@ -92,24 +124,34 @@ msgid "" "value of *flt*, which must be a :class:`float`. Beware that ``Fraction." "from_float(0.3)`` is not the same value as ``Fraction(3, 10)``." msgstr "" +"Cette méthode de classe construit un objet :class:`Fraction` représentant la " +"valeur exacte de *flt*, qui doit être de type :class:`float`. Attention, " +"``Fraction.from_float(0.3)`` n'est pas la même valeur que ``Fraction(3, " +"10)``." #: ../Doc/library/fractions.rst:105 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`float`." msgstr "" +"Depuis Python 3.2, vous pouvez aussi construire une instance de :class:" +"`Fraction` directement depuis un :class:`float`." #: ../Doc/library/fractions.rst:111 msgid "" "This class method constructs a :class:`Fraction` representing the exact " "value of *dec*, which must be a :class:`decimal.Decimal` instance." msgstr "" +"Cette méthode de classe construit un objet :class:`Fraction` représentant la " +"valeur exacte de *dec*, qui doit être de type :class:`decimal.Decimal`." #: ../Doc/library/fractions.rst:116 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`decimal.Decimal` instance." msgstr "" +"Depuis Python 3.2, vous pouvez aussi construire une instance de :class:" +"`Fraction` directement depuis une instance de :class:`decimal.Decimal`." #: ../Doc/library/fractions.rst:123 msgid "" @@ -117,22 +159,29 @@ msgid "" "denominator at most max_denominator. This method is useful for finding " "rational approximations to a given floating-point number:" msgstr "" +"Trouve et renvoie la :class:`Fraction` la plus proche de ``self`` qui a au " +"plus *max_denominator* comme dénominateur. Cette méthode est utile pour " +"trouver des approximations rationnelles de nombres flottants donnés :" #: ../Doc/library/fractions.rst:131 msgid "or for recovering a rational number that's represented as a float:" -msgstr "" +msgstr "ou pour retrouver un nombre rationnel représenté par un flottant :" #: ../Doc/library/fractions.rst:144 msgid "" "Returns the greatest :class:`int` ``<= self``. This method can also be " "accessed through the :func:`math.floor` function:" msgstr "" +"Renvoie le plus grand :class:`int` ``<= self``. Cette méthode peut aussi " +"être utilisée à travers la fonction :func:`math.floor`." #: ../Doc/library/fractions.rst:154 msgid "" "Returns the least :class:`int` ``>= self``. This method can also be " "accessed through the :func:`math.ceil` function." msgstr "" +"Renvoie le plus petit :class:`int` ``>= self``. Cette méthode peut aussi " +"être utilisée à travers la fonction :func:`math.ceil`." #: ../Doc/library/fractions.rst:161 msgid "" @@ -142,6 +191,12 @@ msgid "" "rounding half toward even. This method can also be accessed through the :" "func:`round` function." msgstr "" +"La première version renvoie l':class:`int` le plus proche de ``self``, " +"arrondissant les demis au nombre pair le plus proche. La seconde version " +"arrondit ``self`` au plus proche multiple de ``Fraction(1, 10**ndigits)`` " +"(logiquement, si ``ndigits`` est négatif), arrondissant toujours les demis " +"au nombre pair le plus proche. Cette méthode peut aussi être utilisée à via " +"la fonction :func:`round`." #: ../Doc/library/fractions.rst:170 msgid "" @@ -151,15 +206,20 @@ msgid "" "sign as *b* if *b* is nonzero; otherwise it takes the sign of *a*. ``gcd(0, " "0)`` returns ``0``." msgstr "" +"Renvoie le plus grand diviseur commun (PGCD) des entiers *a* et *b*. Si *a* " +"et *b* sont tous deux non nuls, alors la valeur absolue de ``gcd(a, b)`` est " +"le plus grand entier qui divise à la fois *a* et *b*. ``gcd(a,b)`` a le " +"même signe que *b* si *b* n'est pas nul ; autrement il prend le signe de " +"*a*. ``gcd(0, 0)`` renvoie ``0``." #: ../Doc/library/fractions.rst:176 msgid "Use :func:`math.gcd` instead." -msgstr "" +msgstr "Utilisez plutôt :func:`math.gcd`." #: ../Doc/library/fractions.rst:182 msgid "Module :mod:`numbers`" -msgstr "" +msgstr "Module :mod:`numbers`" #: ../Doc/library/fractions.rst:183 msgid "The abstract base classes making up the numeric tower." -msgstr "" +msgstr "Les classes abstraites représentant la hiérarchie des nombres." diff --git a/library/frameworks.po b/library/frameworks.po index 7cb12fb9..604b5a07 100644 --- a/library/frameworks.po +++ b/library/frameworks.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/frameworks.rst:5 msgid "Program Frameworks" -msgstr "" +msgstr "*Frameworks* d'applications" #: ../Doc/library/frameworks.rst:7 msgid "" @@ -26,7 +26,10 @@ msgid "" "dictate the structure of your program. Currently the modules described " "here are all oriented toward writing command-line interfaces." msgstr "" +"Les modules décrits dans ce chapitre sont des *frameworks* qui encadreront " +"la structure de vos programmes. Actuellement tous les modules décrits ici " +"sont destinés à écrire des interfaces en ligne de commande." #: ../Doc/library/frameworks.rst:11 msgid "The full list of modules described in this chapter is:" -msgstr "" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/functional.po b/library/functional.po index 83b9fb7b..d24e9eea 100644 --- a/library/functional.po +++ b/library/functional.po @@ -18,14 +18,17 @@ msgstr "" #: ../Doc/library/functional.rst:3 msgid "Functional Programming Modules" -msgstr "" +msgstr "Modules de programmation fonctionnelle" #: ../Doc/library/functional.rst:5 msgid "" "The modules described in this chapter provide functions and classes that " "support a functional programming style, and general operations on callables." msgstr "" +"Les modules décrits dans ce chapitre fournissent des fonctions et des " +"classes permettant d'adopter un style fonctionnel, ainsi que des " +"manipulations sur des appelables." #: ../Doc/library/functional.rst:8 msgid "The following modules are documented in this chapter:" -msgstr "" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/functions.po b/library/functions.po index 4677ba9c..b9b6c116 100644 --- a/library/functions.po +++ b/library/functions.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 msgid "Built-in Functions" -msgstr "Fonctions Natives" +msgstr "Fonctions natives" #: ../Doc/library/functions.rst:7 msgid "" @@ -375,8 +375,8 @@ msgid "" "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" "Donne un nouveau tableau d'octets. La classe :class:`bytearray` est une " -"séquence mutable de nombre entiers dans l'intervalle 0 <= x < 256. Il " -"possède la plupart des méthodes des séquences variables, décrites dans :ref:" +"séquence muable de nombre entiers dans l'intervalle 0 <= x < 256. Il possède " +"la plupart des méthodes des séquences variables, décrites dans :ref:" "`typesseq-mutable`, ainsi que la plupart des méthodes de la classe :class:" "`bytes`, voir :ref:`bytes-methods`." @@ -1781,7 +1781,7 @@ msgstr "``'U'``" #: ../Doc/library/functions.rst:908 msgid ":term:`universal newlines` mode (deprecated)" -msgstr "mode :term:`universal newlines` (déprécié)" +msgstr "mode :term:`universal newlines` (obsolète)" #: ../Doc/library/functions.rst:911 msgid "" @@ -2033,7 +2033,7 @@ msgid "" "`os.open` function to open a file relative to a given directory::" msgstr "" "L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " -"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" +"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" #: ../Doc/library/functions.rst:1033 msgid "" diff --git a/library/functools.po b/library/functools.po index d046b337..a49edf57 100644 --- a/library/functools.po +++ b/library/functools.po @@ -53,10 +53,10 @@ msgid "" "comparison functions." msgstr "" "Transforme une fonction de comparaison à l'ancienne en une :term:`fonction " -"clef`. Utilisé avec des outils qui acceptent des fonctions clef (comme :" -"func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:" -"`heapq.nsmallest`, :func:`itertools.groupby`). Cette fonction est destinée " -"au portage de fonctions python 2 utilisant des fonctions de comparaison vers " +"clé`. Utilisé avec des outils qui acceptent des fonctions clef (comme :func:" +"`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq." +"nsmallest`, :func:`itertools.groupby`). Cette fonction est destinée au " +"portage de fonctions python 2 utilisant des fonctions de comparaison vers " "Python 3." #: ../Doc/library/functools.rst:32 @@ -172,7 +172,7 @@ msgstr "" #: ../Doc/library/functools.rst:83 msgid "Example of an LRU cache for static web content::" -msgstr "Exemple d'un cache LRU pour du contenu web statique ::" +msgstr "Exemple d'un cache LRU pour du contenu web statique ::" #: ../Doc/library/functools.rst:102 msgid "" @@ -183,7 +183,7 @@ msgstr "" "Exemple de calcul efficace de `la suite de Fibonacci `_ en utilisant un cache pour implémenter la " "technique de `programmation dynamique `_ ::" +"Programmation_dynamique>`_ ::" #: ../Doc/library/functools.rst:122 msgid "Added the *typed* option." @@ -248,7 +248,7 @@ msgstr "" "fonctionne comme *func* appelée avec les arguments positionels *args* et les " "arguments nommés *keywords*. Si plus d'arguments sont fournis à l'appel, ils " "sont ajoutés à *args*. Si plus d'arguments nommés sont fournis, ils étendent " -"et surchargent *keywords*. A peu près équivalent à ::" +"et surchargent *keywords*. A peu près équivalent à ::" #: ../Doc/library/functools.rst:186 msgid "" @@ -352,7 +352,7 @@ msgid "" msgstr "" "Pour définir une fonction générique, il faut la décorer avec le décorateur " "``@singledispatch``. Noter que la distribution est effectuée sur le type du " -"premier argument, donc la fonction doit être créée en conséquence ::" +"premier argument, donc la fonction doit être créée en conséquence ::" #: ../Doc/library/functools.rst:283 msgid "" @@ -364,7 +364,7 @@ msgstr "" "Pour ajouter des surcharges d'implémentation à la fonction, utiliser " "l'attribut :func:`register` de la fonction générique. C'est un décorateur, " "prenant un type en paramètre et décorant une fonction implémentant " -"l'opération pour ce type ::" +"l'opération pour ce type ::" #: ../Doc/library/functools.rst:301 msgid "" @@ -372,7 +372,7 @@ msgid "" "`register` attribute can be used in a functional form::" msgstr "" "Pour permettre l'enregistrement de lambdas et de fonctions pré-existantes, " -"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" +"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" #: ../Doc/library/functools.rst:309 msgid "" @@ -382,7 +382,7 @@ msgid "" msgstr "" "L'attribut :func:`register` renvoie la fonction non décorée ce qui permet " "d'empiler les décorateurs, la sérialisation, et la création de tests " -"unitaires pour chaque variante indépendamment ::" +"unitaires pour chaque variante indépendamment ::" #: ../Doc/library/functools.rst:323 msgid "" @@ -390,7 +390,7 @@ msgid "" "argument::" msgstr "" "Quand elle est appelée, la fonction générique distribue sur le type du " -"premier argument ::" +"premier argument ::" #: ../Doc/library/functools.rst:343 msgid "" @@ -411,7 +411,7 @@ msgid "" "type, use the ``dispatch()`` attribute::" msgstr "" "Pour vérifier quelle implémentation la fonction générique choisira pour un " -"type donné, utiliser l'attribut ``dispatch()`` ::" +"type donné, utiliser l'attribut ``dispatch()`` ::" #: ../Doc/library/functools.rst:357 msgid "" @@ -419,7 +419,7 @@ msgid "" "attribute::" msgstr "" "Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " -"en lecture seule ``registry`` ::" +"en lecture seule ``registry`` ::" #: ../Doc/library/functools.rst:374 msgid "" @@ -519,7 +519,7 @@ msgstr "" "Ceci est une fonction d'aide pour appeler :func:`update_wrapper` comme " "décorateur de fonction lors de la définition d'une fonction englobante. " "C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " -"assigned=assigned, updated=updated)``. Par exemple ::" +"assigned=assigned, updated=updated)``. Par exemple ::" #: ../Doc/library/functools.rst:444 msgid "" diff --git a/library/getpass.po b/library/getpass.po index 54c9a987..42190247 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -50,9 +50,9 @@ msgid "" "message to *stream* and reading from ``sys.stdin`` and issuing a :exc:" "`GetPassWarning`." msgstr "" -"Si aucune saisie en mode sans echo n'est disponnible, getpass() se résoudra " -"à afficher un message d'avertissement vers *stream*, puis lire l'entrée " -"depuis ``sys.stdin``, en levant une :exc:`GetPassWarning`." +"Si aucune saisie en mode sans echo n'est disponible, getpass() se résoudra à " +"afficher un message d'avertissement vers *stream*, puis lire l'entrée depuis " +"``sys.stdin``, en levant une :exc:`GetPassWarning`." #: ../Doc/library/getpass.rst:32 msgid "" @@ -70,7 +70,7 @@ msgstr "" #: ../Doc/library/getpass.rst:42 msgid "Return the \"login name\" of the user." -msgstr "Renvoie le \"login name\" de l'utilisateur " +msgstr "Renvoie le \"login name\" de l'utilisateur." #: ../Doc/library/getpass.rst:44 msgid "" diff --git a/library/html.entities.po b/library/html.entities.po index 901125a6..15effe51 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -18,17 +18,19 @@ msgstr "" #: ../Doc/library/html.entities.rst:2 msgid ":mod:`html.entities` --- Definitions of HTML general entities" -msgstr "" +msgstr ":mod:`html.entities` --- Définitions des entités HTML générales" #: ../Doc/library/html.entities.rst:9 msgid "**Source code:** :source:`Lib/html/entities.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/html/entities.py`" #: ../Doc/library/html.entities.rst:13 msgid "" "This module defines four dictionaries, :data:`html5`, :data:" "`name2codepoint`, :data:`codepoint2name`, and :data:`entitydefs`." msgstr "" +"Ce module définit quatres dictionnaires, :data:`html5`, :data:" +"`name2codepoint`, :data:`codepoint2name`, et :data:`entitydefs`." #: ../Doc/library/html.entities.rst:19 msgid "" @@ -39,20 +41,32 @@ msgid "" "case the name is present with and without the ``';'``. See also :func:`html." "unescape`." msgstr "" +"Un dictionnaire qui fait correspondre les références de caractères nommés " +"HTML5 [#]_ aux caractères Unicode équivalents, e.g. ``html5['gt;'] == '>'``. " +"À noter que le point-virgule en fin de chaîne est inclus dans le nom (e.g. " +"``'gt;'``), toutefois certains noms sont acceptés par le standard même sans " +"le point-virgule: dans ce cas, le nom est présent à la fois avec et sans le " +"``;``. Voir aussi :func:`html.unescape()`." #: ../Doc/library/html.entities.rst:31 msgid "" "A dictionary mapping XHTML 1.0 entity definitions to their replacement text " "in ISO Latin-1." msgstr "" +"Un dictionnaire qui fait correspondre les définitions d'entitiés XHTML 1.0 " +"avec leur remplacement en ISO Latin-1." #: ../Doc/library/html.entities.rst:37 msgid "A dictionary that maps HTML entity names to the Unicode code points." msgstr "" +"Un dictionnaire qui fait correspondre les noms d'entités HTML avec les " +"points de code Unicode." #: ../Doc/library/html.entities.rst:42 msgid "A dictionary that maps Unicode code points to HTML entity names." msgstr "" +"Un dictionnaire qui fait correspondre les points de code Unicode avec les " +"noms d'entités HTML." #: ../Doc/library/html.entities.rst:46 msgid "Footnotes" @@ -61,3 +75,4 @@ msgstr "Notes" #: ../Doc/library/html.entities.rst:47 msgid "See https://www.w3.org/TR/html5/syntax.html#named-character-references" msgstr "" +"Voir https://www.w3.org/TR/html5/syntax.html#named-character-references" diff --git a/library/html.po b/library/html.po index bf6c85f7..ae42c6fd 100644 --- a/library/html.po +++ b/library/html.po @@ -18,15 +18,15 @@ msgstr "" #: ../Doc/library/html.rst:2 msgid ":mod:`html` --- HyperText Markup Language support" -msgstr "" +msgstr ":mod:`html` --- Support du HyperText Markup Language" #: ../Doc/library/html.rst:7 msgid "**Source code:** :source:`Lib/html/__init__.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/html/__init__.py`" #: ../Doc/library/html.rst:11 msgid "This module defines utilities to manipulate HTML." -msgstr "" +msgstr "Ce module définit des outils permettant la manipulation d'HTML." #: ../Doc/library/html.rst:15 msgid "" @@ -36,6 +36,12 @@ msgid "" "\"``) and (``'``) are also translated; this helps for inclusion in an HTML " "attribute value delimited by quotes, as in ````." msgstr "" +"Convertit les caractères ``&``, ``<`` et ``>`` de la chaîne de caractères " +"*s* en séquences HTML valides. À utiliser si le texte à afficher pourrait " +"contenir de tels caractères dans le HTML. Si le paramètre optionnel *quote* " +"est vrai, les caractères (``\"``) et (``'``) sont également traduits; cela " +"est utile pour les inclusions dans des valeurs d'attributs HTML délimitées " +"par des guillemets, comme dans ````." #: ../Doc/library/html.rst:26 msgid "" @@ -45,15 +51,22 @@ msgid "" "and invalid character references, and the :data:`list of HTML 5 named " "character references `." msgstr "" +"Convertit toutes les références de caractères nommés et numériques (e.g. " +"``>``, ``>``, ``&x3e;``) dans la chaîne de caractères *s* par les " +"caractères unicode correspondants. Cette fonction utilise les règles " +"définies par le stadard HTML 5 à la fois pour les caractères valides et les " +"caractères invalides, et la :data:`liste des références des caractères " +"nommés en HTML 5 `." #: ../Doc/library/html.rst:36 msgid "Submodules in the ``html`` package are:" -msgstr "" +msgstr "Les sous-modules dans le paquet ``html`` sont :" #: ../Doc/library/html.rst:38 msgid ":mod:`html.parser` -- HTML/XHTML parser with lenient parsing mode" msgstr "" +":mod:`html.parser` -- Parseur HTML/XHTML avec un mode de *parsing* tolérant" #: ../Doc/library/html.rst:39 msgid ":mod:`html.entities` -- HTML entity definitions" -msgstr "" +msgstr ":mod:`html.entities` -- Définitions d'entités HTML" diff --git a/library/i18n.po b/library/i18n.po index d6f26d4e..ef206d9c 100644 --- a/library/i18n.po +++ b/library/i18n.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/i18n.rst:5 msgid "Internationalization" -msgstr "" +msgstr "Internationalisation" #: ../Doc/library/i18n.rst:7 msgid "" @@ -27,7 +27,11 @@ msgid "" "language to be used in program messages or by tailoring output to match " "local conventions." msgstr "" +"Les modules décrits dans ce chapitre vous aident à rédiger des programmes " +"indépendants des langues et des cultures en fournissant des mécanismes pour " +"sélectionner une langue à utiliser dans les messages, ou en adaptant la " +"sortie aux conventions culturelles." #: ../Doc/library/i18n.rst:12 msgid "The list of modules described in this chapter is:" -msgstr "Voici la liste des modules documentés par ce chapitre:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/index.po b/library/index.po index ef6319dd..97dd4686 100644 --- a/library/index.po +++ b/library/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/index.rst:5 msgid "The Python Standard Library" -msgstr "" +msgstr "La bibliothèque standard" #: ../Doc/library/index.rst:7 msgid "" @@ -27,6 +27,11 @@ msgid "" "library that is distributed with Python. It also describes some of the " "optional components that are commonly included in Python distributions." msgstr "" +"Alors que :ref:`reference-index` décrit exactement la syntaxe et la " +"sémantique du langage Python, ce manuel de référence de la Bibliothèque " +"décrit la bibliothèque standard distribuée avec Python. Il décrit aussi " +"certains composants optionnels typiquement inclus dans les distributions de " +"Python." #: ../Doc/library/index.rst:13 msgid "" @@ -40,6 +45,16 @@ msgid "" "portability of Python programs by abstracting away platform-specifics into " "platform-neutral APIs." msgstr "" +"La bibliothèque standard de Python est très grande, elle offre un large " +"éventail d'outils comme le montre la longueur de la table des matières ci-" +"dessous. La bibliothèque contient des modules natifs (écrits en C) exposant " +"les fonctionnalités du système telles que les interactions avec les fichiers " +"qui autremment ne seraient pas accessibles aux développeurs Python, ainsi " +"que des modules écrits en Python exposant des solutions standardisées à de " +"nombreux problèmes du quotidien du développeur. Certains de ces modules sont " +"définis explicitement pour encourager et améliorer la portabilité des " +"programmes Python en abstrayant des spécificités sous-jacentes en API " +"neutres." #: ../Doc/library/index.rst:23 msgid "" @@ -49,6 +64,12 @@ msgid "" "packages, so it may be necessary to use the packaging tools provided with " "the operating system to obtain some or all of the optional components." msgstr "" +"Les installateurs de Python pour Windows incluent généralement la " +"bibliothèque standard en entier, et y ajoutent souvent d'aures composants. " +"Pour les systèmes d'exploitation Unix, Python est typiquement fourni sous " +"forme d'une collection de paquets, il peut donc être nécessaire d'utiliser " +"le gestionnaire de paquets fourni par le système d'exploitation pour obtenir " +"certains composants optionnels." #: ../Doc/library/index.rst:30 msgid "" diff --git a/library/internet.po b/library/internet.po index 86b75a38..66b73c88 100644 --- a/library/internet.po +++ b/library/internet.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/internet.rst:5 msgid "Internet Protocols and Support" -msgstr "Gestion des Protocols Internet" +msgstr "Gestion des protocols internet" #: ../Doc/library/internet.rst:14 msgid "" diff --git a/library/intro.po b/library/intro.po index aff3e9b6..6346f24d 100644 --- a/library/intro.po +++ b/library/intro.po @@ -23,6 +23,8 @@ msgstr "Introduction" #: ../Doc/library/intro.rst:7 msgid "The \"Python library\" contains several different kinds of components." msgstr "" +"La \"Bibliothèque Python\" contient divers composants dans différentes " +"catégories." #: ../Doc/library/intro.rst:9 msgid "" @@ -33,6 +35,12 @@ msgid "" "hand, the language core does define syntactic properties like the spelling " "and priorities of operators.)" msgstr "" +"Elle contient des types de données qui seraient normalement considérés comme " +"\"fondamentaux\" au langage, tel que les nombres et les listes. Pour ces " +"types, le coeur du langage en définit les écritures littérales et impose " +"quelques contraintes sémantiques, sans les définir exhaustivement. " +"(Cependant le coeur du langage impose quelques propriétés comme " +"l'orthographe des attributs ou les caractéristiques des opérateurs.)" #: ../Doc/library/intro.rst:15 msgid "" @@ -41,6 +49,10 @@ msgid "" "statement. Some of these are defined by the core language, but many are not " "essential for the core semantics and are only described here." msgstr "" +"La bibliothèque contient aussi des fonctions et des exceptions natives, " +"pouvant être utilisées par tout code Python sans :keyword:`import`. " +"Certaines sont définies par le noyeau de Python, bien qu'elles ne soient pas " +"toutes essentielles." #: ../Doc/library/intro.rst:20 msgid "" @@ -57,6 +69,19 @@ msgid "" "available only when a particular configuration option was chosen at the time " "when Python was compiled and installed." msgstr "" +"La grande majorité de la bibliothèque consiste cependant en une collection " +"de modules. Cette collection peut être parcourue de différentes manières. " +"Certains modules sont rédigés en C et inclus dans l'interpréteur Python, " +"d'autres sont écrits en Python et leur source est importée. Certains modules " +"fournissent des interfaces extrêmement spécifiques à Python, tel que " +"l'affichage d'une pile d'appels, d'autres fournissent des interfaces " +"spécifiques à un système d'exploitation, comme l'accès à du matériel " +"spécifique. D'autres fournissent des interfaces spécifiques à un domaine " +"d'application, comme le *World Wide Web*. Certains modules sont disponibles " +"dans toutes les versions et implémentations de Python, d'autres ne sont " +"disponibles que si le système sous-jacent les gère ou en a besoin. Enfin, " +"d'autres ne sont disponibles que si Python à été compilé avec une certaine " +"option." #: ../Doc/library/intro.rst:32 msgid "" @@ -64,6 +89,9 @@ msgid "" "built-in functions, data types and exceptions, and finally the modules, " "grouped in chapters of related modules." msgstr "" +"Cette documentation organise les modules \"de l'intérieur vers l'extérieur" +"\", documentant en premier les fonctions natives, les types de données et " +"exceptions, puis les modules, groupés par chapitre, par thèmatiques." #: ../Doc/library/intro.rst:36 msgid "" @@ -79,7 +107,17 @@ msgid "" "chapter :ref:`built-in-funcs`, as the remainder of the manual assumes " "familiarity with this material." msgstr "" +"Ça signifie que si vous commencez à lire cette documentation du début, et " +"sautez au chapitre suivant lorsqu'elle vous ennuie, vous aurez un aperçu " +"global des modules et domaines couverts par cette bibliothèque. Bien sûr " +"vous n'avez pas à la lire comme un roman, vous pouvez simplement survoler la " +"table des matières (au début), ou chercher une fonction, un module, ou un " +"mot dans l'index (à la fin). Et si vous appréciez apprendre sur des sujets " +"au hasard, choisissez une page au hasard (avec le module :mod:`random`) et " +"lisez un chapitre ou deux. Peu importe l'ordre que vous adopterez, commencez " +"par le chapitre :ref:`built-in-funcs`, car les autres chapitres présument " +"que vous en avez une bonne connaissance." #: ../Doc/library/intro.rst:48 msgid "Let the show begin!" -msgstr "" +msgstr "Que le spectacle commence !" diff --git a/library/io.po b/library/io.po index 0749c9a1..237157e6 100644 --- a/library/io.po +++ b/library/io.po @@ -1327,7 +1327,7 @@ msgstr "" #: ../Doc/library/io.rst:986 msgid "Multi-threading" -msgstr "Threads" +msgstr "Fils d'exécution" #: ../Doc/library/io.rst:988 msgid "" diff --git a/library/ipc.po b/library/ipc.po index 7322c4aa..2617dd5a 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -18,13 +18,15 @@ msgstr "" #: ../Doc/library/ipc.rst:5 msgid "Interprocess Communication and Networking" -msgstr "" +msgstr "Communication et réseau entre processus" #: ../Doc/library/ipc.rst:7 msgid "" "The modules described in this chapter provide mechanisms for different " "processes to communicate." msgstr "" +"Les modules décrits dans ce chapitre fournissent différents méchanismes " +"permettant à des processus de communiquer." #: ../Doc/library/ipc.rst:10 msgid "" @@ -32,7 +34,11 @@ msgid "" "mod:`signal` and :mod:`mmap`. Other modules support networking protocols " "that two or more processes can use to communicate across machines." msgstr "" +"Certains de ces modules ne fonctionnent que pour deux processus sur une " +"seule machine, comme les modules :mod:`signal` et :mod:`mmap`. D'autres " +"gèrent des protocoles réseaux que deux processus, ou plus, peuvent utiliser " +"pour communiquer entre différentes machines." #: ../Doc/library/ipc.rst:14 msgid "The list of modules described in this chapter is:" -msgstr "Voici la liste des modules documentés par ce chapitre:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/itertools.po b/library/itertools.po index 52c1bb93..8fe41e41 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -225,7 +225,7 @@ msgstr ":func:`filterfalse`" #: ../Doc/library/itertools.rst:55 msgid "elements of seq where pred(elem) is false" -msgstr " éléments de *seq* quand *pred(elem)* est faux" +msgstr "éléments de *seq* quand *pred(elem)* est faux" #: ../Doc/library/itertools.rst:55 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" diff --git a/library/json.po b/library/json.po index fb09cfe3..5dcaf36c 100644 --- a/library/json.po +++ b/library/json.po @@ -106,8 +106,8 @@ msgid "" "to-json-table>`." msgstr "" "Sérialise *obj* comme un flux JSON formaté vers *fp* (un :term:`file-like " -"object` supportant ``.write()``) utilisant cette :ref:`table de conversion " -"`." +"object` gérant ``.write()``) utilisant cette :ref:`table de conversion `." #: ../Doc/library/json.rst:138 msgid "" @@ -391,7 +391,7 @@ msgid "" "*encoding* which is ignored and deprecated." msgstr "" "Les autres arguments ont la même signification que pour :func:`load`, à " -"l'exception d'*encoding* qui est ignoré et déprécié." +"l'exception d'*encoding* qui est ignoré et obsolète." #: ../Doc/library/json.rst:275 msgid "Encoders and Decoders" @@ -475,7 +475,7 @@ msgstr "*null*" #: ../Doc/library/json.rst:302 ../Doc/library/json.rst:388 msgid "None" -msgstr "*None*" +msgstr "None" #: ../Doc/library/json.rst:305 msgid "" @@ -590,7 +590,7 @@ msgstr "*number*" #: ../Doc/library/json.rst:391 msgid "Added support for int- and float-derived Enum classes." -msgstr "Ajout du support des classes *Enum* dérivées d'*int* ou de *float*" +msgstr "Ajout du support des classes *Enum* dérivées d'*int* ou de *float*." #: ../Doc/library/json.rst:394 msgid "" @@ -686,7 +686,7 @@ msgstr "" #: ../Doc/library/json.rst:486 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/json.rst:490 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" @@ -840,7 +840,7 @@ msgstr "" "La RFC ne permet pas la représentation des nombres infinis ou des *NaN*. " "Néanmoins, par défaut, ce module accepte et retranscrit ``Infinity``, ``-" "Infinity`` et ``NaN`` comme s'ils étaient des valeurs numériques littérales " -"JSON valides." +"JSON valides ::" #: ../Doc/library/json.rst:581 msgid "" diff --git a/library/keyword.po b/library/keyword.po index 0d501897..67cf76e6 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/keyword.rst:2 msgid ":mod:`keyword` --- Testing for Python keywords" -msgstr "" +msgstr ":mod:`keyword` --- Tester si des chaînes sont des mot-clés Python" #: ../Doc/library/keyword.rst:7 msgid "**Source code:** :source:`Lib/keyword.py`" @@ -28,10 +28,12 @@ msgstr "**Code source :** :source:`Lib/keyword.py`" msgid "" "This module allows a Python program to determine if a string is a keyword." msgstr "" +"Ce module permet à un programme Python de déterminer si une chaîne " +"représente un mot-clé." #: ../Doc/library/keyword.rst:16 msgid "Return true if *s* is a Python keyword." -msgstr "" +msgstr "Renvoie vrai si *s* est un mot-clé Python." #: ../Doc/library/keyword.rst:21 msgid "" @@ -39,3 +41,7 @@ msgid "" "keywords are defined to only be active when particular :mod:`__future__` " "statements are in effect, these will be included as well." msgstr "" +"Séquence contenant tous les mots-clés définis par l'interpréteur. Si " +"certains mots-clés sont définis pour être actifs seulement si des " +"instructions :mod:`__future__` particulières sont effectives, ils seront " +"tout de même inclus." diff --git a/library/language.po b/library/language.po index aaf12ed4..9693f7c7 100644 --- a/library/language.po +++ b/library/language.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/language.rst:5 msgid "Python Language Services" -msgstr "" +msgstr "Services du Langage Python" #: ../Doc/library/language.rst:7 msgid "" @@ -26,7 +26,10 @@ msgid "" "language. These modules support tokenizing, parsing, syntax analysis, " "bytecode disassembly, and various other facilities." msgstr "" +"Python fournit quelques modules pour vous aider à travailler avec le langage " +"Python lui-même. Ces modules gèrent entre autres la tokenisation, le " +"parsing, l'analyse de syntaxe, et le désassemblage de *bytecode*." #: ../Doc/library/language.rst:11 msgid "These modules include:" -msgstr "" +msgstr "Ces modules sont :" diff --git a/library/linecache.po b/library/linecache.po index e6922551..8803ead7 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/linecache.rst:2 msgid ":mod:`linecache` --- Random access to text lines" -msgstr "" +msgstr ":mod:`linecache` --- Accès direct aux lignes d'un texte" #: ../Doc/library/linecache.rst:9 msgid "**Source code:** :source:`Lib/linecache.py`" -msgstr "**Code source :** :source:`Lib/linecache.py`" +msgstr "**Code source :** :source:`Lib/linecache.py`" #: ../Doc/library/linecache.rst:13 msgid "" @@ -32,6 +32,11 @@ msgid "" "`traceback` module to retrieve source lines for inclusion in the formatted " "traceback." msgstr "" +"Le module :mod:`linecache` permet d'obtenir n'importe quelle ligne d'un " +"fichier source Python. Le cas classique où de nombreuses lignes sont " +"accédées est optimisé en utilisant un cache interne. C'est utilisé par le " +"module :mod:`traceback` pour récupérer les lignes à afficher dans les piles " +"d'appels." #: ../Doc/library/linecache.rst:18 msgid "" @@ -39,10 +44,14 @@ msgid "" "uses :func:`tokenize.detect_encoding` to get the encoding of the file; in " "the absence of an encoding token, the file encoding defaults to UTF-8." msgstr "" +"Les fichiers sont ouverts par la fonction :func:`tokenize.open`. Cette " +"fonction utilise :func:`tokenize.detect_encoding` pour obtenir l'encodage du " +"fichier. En l'absence d'un BOM et d'un cookie d'encodage, c'est l'encodage " +"UTF-8 qui sera utilisé." #: ../Doc/library/linecache.rst:22 msgid "The :mod:`linecache` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`linecache` définit les fonctions suivantes :" #: ../Doc/library/linecache.rst:27 msgid "" @@ -50,6 +59,9 @@ msgid "" "an exception --- it will return ``''`` on errors (the terminating newline " "character will be included for lines that are found)." msgstr "" +"Récupère la ligne *lineno* du fichier *filename*. Cette fonction ne lévera " +"jamais d'exception, elle préfèrera renvoyer ``''`` en cas d'erreur (le " +"caractère de retour à la ligne sera inclu pour les lignes existantes)." #: ../Doc/library/linecache.rst:33 msgid "" @@ -58,12 +70,19 @@ msgid "" "``__loader__`` in *module_globals*, in case the module was imported from a " "zipfile or other non-filesystem import source." msgstr "" +"Si le fichier *filename* n'est pas trouvé, la fonction le cherchera dans les " +"chemins de recherche de modules, ``sys.path`, après avoir vérifié si un " +"``__loader__`` (de la :pep:`302`) se trouve dans *module_globals*, dans le " +"cas où le module a été importé depuis un fichier zip, ou une autre source " +"hors du système de fichier." #: ../Doc/library/linecache.rst:41 msgid "" "Clear the cache. Use this function if you no longer need lines from files " "previously read using :func:`getline`." msgstr "" +"Nettoie le cache. Utilisez cette fonction si vous n'avez plus besoin des " +"lignes des fichiers précédement lus via :func:`getline`." #: ../Doc/library/linecache.rst:47 msgid "" @@ -71,6 +90,10 @@ msgid "" "have changed on disk, and you require the updated version. If *filename* is " "omitted, it will check all the entries in the cache." msgstr "" +"Vérifie la validité du cache. Utilisez cette fonction si les fichiers du " +"cache pourraient avoir changé sur le disque, et que vous en voudriez une " +"version à jour. Sans *filename*, toutes les entrées du cache seront " +"vérifiées." #: ../Doc/library/linecache.rst:53 msgid "" @@ -79,6 +102,11 @@ msgid "" "later call. This avoids doing I/O until a line is actually needed, without " "having to carry the module globals around indefinitely." msgstr "" +"Récupère suffisament d'informations sur un module situé hors du système de " +"fichiers pour récuperer ses lignes plus tard via :func:`getline`, même si " +"*module_globals* devient ``None``. Cela évite de lire le fichier avant " +"d'avoir besoin d'une ligne, tout en évitant de conserver les globales du " +"module indéfiniment." #: ../Doc/library/linecache.rst:60 msgid "Example::" diff --git a/library/macpath.po b/library/macpath.po index 49bc0ab1..21d3aa0c 100644 --- a/library/macpath.po +++ b/library/macpath.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/macpath.rst:2 msgid ":mod:`macpath` --- Mac OS 9 path manipulation functions" -msgstr "" +msgstr ":mod:`macpath` --- Fonctions de manipulation de chemins pour Mac OS 9" #: ../Doc/library/macpath.rst:7 msgid "**Source code:** :source:`Lib/macpath.py`" -msgstr "" +msgstr "**Code source:** :source:`Lib/macpath.py`" #: ../Doc/library/macpath.rst:11 msgid "" @@ -30,6 +30,9 @@ msgid "" "path` module. It can be used to manipulate old-style Macintosh pathnames on " "Mac OS X (or any other platform)." msgstr "" +"Ce module est une implémentation du module :mod:`os.path` pour Mac OS 9 (ou " +"plus ancien). Il peut être utilisé pour manipuler des chemins dans l'ancien " +"style Macintosh sur Mac OS X (ou n'importe quelle autre plateforme)." #: ../Doc/library/macpath.rst:15 msgid "" @@ -38,3 +41,8 @@ msgid "" "func:`isfile`, :func:`walk`, :func:`exists`. For other functions available " "in :mod:`os.path` dummy counterparts are available." msgstr "" +"Les fonctions suivantes sont disponibles dans ce module : :func:`normcase`, :" +"func:`normpath`, :func:`isabs`, :func:`join`, :func:`split`, :func:`isdir`, :" +"func:`isfile`, :func:`walk`, :func:`exists`. Toutes les autres fonctions d':" +"mod:`os.path` sont aussi disponibles, mais vides, pour garder la " +"compatibilité." diff --git a/library/mailbox.po b/library/mailbox.po index 854d2820..f7e716f1 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -1713,7 +1713,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:1489 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/mailbox.rst:1491 msgid "" diff --git a/library/misc.po b/library/misc.po index 56c5a426..5cffe51a 100644 --- a/library/misc.po +++ b/library/misc.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/misc.rst:5 msgid "Miscellaneous Services" -msgstr "Services Divers" +msgstr "Services divers" #: ../Doc/library/misc.rst:7 msgid "" @@ -26,4 +26,4 @@ msgid "" "are available in all Python versions. Here's an overview:" msgstr "" "Les modules documentés dans ce chapitre fournissent différents services " -"disponnibles dans toutes les version de Python. En voici un aperçu :" +"disponibles dans toutes les version de Python. En voici un aperçu :" diff --git a/library/mm.po b/library/mm.po index 86798a80..0bca34ee 100644 --- a/library/mm.po +++ b/library/mm.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/mm.rst:5 msgid "Multimedia Services" -msgstr "Services Multimedia" +msgstr "Services multimedia" #: ../Doc/library/mm.rst:7 msgid "" @@ -28,4 +28,4 @@ msgid "" msgstr "" "Les modules documentés dans ce chapitre implémentent divers algorithmes ou " "interfaces principalement utiles pour les applications multimédia. Ils " -"peuvent ne pas être disponnibles sur votre installation. En voici un aperçu :" +"peuvent ne pas être disponibles sur votre installation. En voici un aperçu :" diff --git a/library/modules.po b/library/modules.po index 79f2042b..d32352f2 100644 --- a/library/modules.po +++ b/library/modules.po @@ -18,14 +18,17 @@ msgstr "" #: ../Doc/library/modules.rst:5 msgid "Importing Modules" -msgstr "" +msgstr "Importer des modules" #: ../Doc/library/modules.rst:7 msgid "" "The modules described in this chapter provide new ways to import other " "Python modules and hooks for customizing the import process." msgstr "" +"Les modules décrits dans ce chapitre fournissent de nouveaux moyens " +"d'importer d'autres modules Python, et des *hooks* pour personaliser le " +"processus d'importation." #: ../Doc/library/modules.rst:10 msgid "The full list of modules described in this chapter is:" -msgstr "" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/numeric.po b/library/numeric.po index 25755f86..0f77dcb9 100644 --- a/library/numeric.po +++ b/library/numeric.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/numeric.rst:6 msgid "Numeric and Mathematical Modules" -msgstr "" +msgstr "Modules numériques et mathématiques" #: ../Doc/library/numeric.rst:8 msgid "" @@ -29,7 +29,14 @@ msgid "" "mod:`decimal` module supports exact representations of decimal numbers, " "using arbitrary precision arithmetic." msgstr "" +"Les modules documentés dans ce chapitre fournissent des fonctions et des " +"types autour des nombres et des mathématiques. Le module :mod:`numbers` " +"définit une hiérarchie abstraite des types numériques. Les modules :mod:" +"`math` et :mod:`cmath` contiennent des fonctions mathématiques pour les " +"nombres à virgule flottante ou les nombres complexes. Le module :mod:" +"`decimal` permet de représenter des nombres décimaux de manière exacte, et " +"utilise une arithmétique de précision arbitraire." #: ../Doc/library/numeric.rst:15 msgid "The following modules are documented in this chapter:" -msgstr "" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/optparse.po b/library/optparse.po index 6755542e..ca26ee8d 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -197,7 +197,7 @@ msgstr "" #: ../Doc/library/optparse.rst:165 msgid "positional argument" -msgstr "augment positionnel" +msgstr "argument positionnel" #: ../Doc/library/optparse.rst:163 msgid "" diff --git a/library/os.po b/library/os.po index dfb6764a..5692245b 100644 --- a/library/os.po +++ b/library/os.po @@ -883,7 +883,7 @@ msgstr "" #: ../Doc/library/os.rst:622 msgid "File Object Creation" -msgstr "Création de Fichiers Objets" +msgstr "Création de fichiers objets" #: ../Doc/library/os.rst:624 msgid "" @@ -907,7 +907,7 @@ msgstr "" #: ../Doc/library/os.rst:639 msgid "File Descriptor Operations" -msgstr "Opérations sur les Descripteurs de Fichiers" +msgstr "Opérations sur les descripteurs de fichiers" #: ../Doc/library/os.rst:641 msgid "" @@ -1678,7 +1678,7 @@ msgstr "Longueur du terminal en caractères." #: ../Doc/library/os.rst:1248 msgid "Height of the terminal window in characters." -msgstr "Hauteur du terminal en caractères" +msgstr "Hauteur du terminal en caractères." #: ../Doc/library/os.rst:1254 msgid "Inheritance of File Descriptors" @@ -1749,7 +1749,7 @@ msgstr "Définit le marqueuer \"héritable\" de l'identificateur spécifié." #: ../Doc/library/os.rst:1297 msgid "Files and Directories" -msgstr "Fichiers et Répertoires" +msgstr "Fichiers et répertoires" #: ../Doc/library/os.rst:1299 msgid "" @@ -2140,7 +2140,7 @@ msgid "" msgstr "" "Change l'id du propriétaire et du groupe de *path* par les valeurs " "numériques *uid* et *gid*. Pour laisser l'un de ces ids inchangé, le définir " -"à -1. " +"à -1." #: ../Doc/library/os.rst:1496 msgid "" @@ -2628,7 +2628,7 @@ msgstr "" "peut échouer sur certaines distributions Unix si *src* et *dst* sont sur des " "systèmes de fichiers séparés. Si le renommage est effectué avec succès, il " "est une opération atomique (nécessité POSIX). Sur Window, si *dst* existe " -"déjà, une :exc:`OSError` est levée même s'il est un fichier. " +"déjà, une :exc:`OSError` est levée même s'il est un fichier." #: ../Doc/library/os.rst:1840 ../Doc/library/os.rst:1870 msgid "" @@ -2980,7 +2980,7 @@ msgid "" msgstr "" "Renvoie ``True`` si l'entrée est un lien symbolique (même cassé). Renvoie " "``False`` si l'entrée pinte vers un répertoire ou tout autre type de " -"fichier, ou s'il n'existe plus" +"fichier, ou s'il n'existe plus." #: ../Doc/library/os.rst:2030 msgid "" @@ -3274,7 +3274,7 @@ msgstr "" #: ../Doc/library/os.rst:2220 msgid "File generation number." -msgstr "Nombre de génération de fichier" +msgstr "Nombre de génération de fichier." #: ../Doc/library/os.rst:2224 msgid "Time of file creation." @@ -3463,10 +3463,10 @@ msgstr "" "synchronisées en une fois), :const:`ST_MANDLOCK` (permet les verrous " "impératifs sur un système de fichiers), :const:`ST_WRITE` (écrit sur les " "fichiers/répertoires/liens symboliques), :const:`ST_APPEND` (fichiers en " -"ajout-seul), :const:`ST_IMMUTABLE` (fichiers immutables), :const:" -"`ST_NOATIME` (ne met pas à jour les moments d'accès), :const:`ST_NODIRATIME` " -"(ne met pas à jour les moments d'accès auxrépertoires), :const:`ST_REALTIME` " -"(Met atime à jour relativement à mtime/ctime)." +"ajout-seul), :const:`ST_IMMUTABLE` (fichiers immuables), :const:`ST_NOATIME` " +"(ne met pas à jour les moments d'accès), :const:`ST_NODIRATIME` (ne met pas " +"à jour les moments d'accès aux répertoires), :const:`ST_REALTIME` (Met atime " +"à jour relativement à mtime/ctime)." #: ../Doc/library/os.rst:2322 msgid "The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added." @@ -3580,7 +3580,7 @@ msgstr "" "descripteur de fichier ouvert pour son paramètre *path*, utilisez " "l'opérateur ``in`` sur ``supports_fd``. Par exemple, cette expression " "détermine si :func:`os.chdir` accepte un descripteur de fichier ouvert quand " -"appelée sur votre plate-forme actuelle." +"appelée sur votre plate-forme actuelle ::" #: ../Doc/library/os.rst:2401 msgid "" @@ -4368,7 +4368,7 @@ msgid "" "issues when using fork() from a thread." msgstr "" "Notez que certaines plate-formes (dont FreeBSD <= 6.3 et Cygwin) ont des " -"problèmes connus lors d'utilisation de fork() depuis un *thread*." +"problèmes connus lors d'utilisation de fork() depuis un fil d'exécution." #: ../Doc/library/os.rst:2987 msgid "See :mod:`ssl` for applications that use the SSL module with fork()." diff --git a/library/pdb.po b/library/pdb.po index 908e14da..f718d52c 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/pdb.rst:4 msgid ":mod:`pdb` --- The Python Debugger" -msgstr "" +msgstr ":mod:`pdb` --- Le débogeur Python" #: ../Doc/library/pdb.rst:9 msgid "**Source code:** :source:`Lib/pdb.py`" @@ -33,6 +33,13 @@ msgid "" "It also supports post-mortem debugging and can be called under program " "control." msgstr "" +"Le module :mod:`pdb` définit un débogueur de code source interactif pour les " +"programmes Python. Il supporte le paramétrage (conditionnel) de points " +"d'arrêt et l'exécution du code source ligne par ligne, l'inspection des " +"*frames* de la pile, la liste du code source, et l'évaluation arbitraire de " +"code Python dans le contexte de n'importe quelle *frame* de la pile. Il " +"supporte aussi le débogage post-mortem et peut être controllé depuis un " +"programme." #: ../Doc/library/pdb.rst:26 msgid "" @@ -40,12 +47,18 @@ msgid "" "`Pdb`. This is currently undocumented but easily understood by reading the " "source. The extension interface uses the modules :mod:`bdb` and :mod:`cmd`." msgstr "" +"Le débogueur est extensible -- Il est en réalité défini comme la classe :" +"class:`Pdb`. C'est actuellement non-documenté mais facilement compréhensible " +"en lisant le code source. L'interface d'extension utilise les modules :mod:" +"`bdb` et :mod:`cmd`." #: ../Doc/library/pdb.rst:30 msgid "" "The debugger's prompt is ``(Pdb)``. Typical usage to run a program under " "control of the debugger is::" msgstr "" +"L'invite du débogueur est ``(Pdb)``. L'usage typique pour exécuter un " +"programme sous le contrôle du débogueur est ::" #: ../Doc/library/pdb.rst:44 msgid "" @@ -53,12 +66,17 @@ msgid "" "command arguments, e.g. the current global and local names are offered as " "arguments of the ``p`` command." msgstr "" +"La complétion via le module :mod:`readline' est disponible pour les " +"commandes et les arguments de commande, par exemple les noms *global* et " +"*local* sont proposés comme arguments de la commande ``p``." #: ../Doc/library/pdb.rst:49 msgid "" ":file:`pdb.py` can also be invoked as a script to debug other scripts. For " "example::" msgstr "" +"Le fichier :file:`pdb.py` peut aussi être invoqué comme un script pour " +"déboguer d'autres scripts. Par exemple ::" #: ../Doc/library/pdb.rst:54 msgid "" @@ -68,18 +86,28 @@ msgid "" "Automatic restarting preserves pdb's state (such as breakpoints) and in most " "cases is more useful than quitting the debugger upon program's exit." msgstr "" +"Si le programme débuggé se termine anormalement, pdb entrera en débogagepost-" +"mortem. Après le débogage post-mortem (ou après une sortie normale du " +"programme), pdb redémarrera le programme. Le redémarrage automatique " +"préserve l'état de pdb (tels que les points d'arrêt) et dans la plupart des " +"cas est plus utile que de quitter le débogueur à la sortie du programme." #: ../Doc/library/pdb.rst:60 msgid "" ":file:`pdb.py` now accepts a ``-c`` option that executes commands as if " "given in a :file:`.pdbrc` file, see :ref:`debugger-commands`." msgstr "" +"Le fichier :file:`pdb.py` accepte maintenant une option ``-c`` qui exécute " +"les commandes comme si elles provenaient d'un fichier :file:`.pdbrc`, voir :" +"ref:`debugger-commands`." #: ../Doc/library/pdb.rst:64 msgid "" "The typical usage to break into the debugger from a running program is to " "insert ::" msgstr "" +"L'usage typique pour forcer le débogueur depuis un programme s'exécutant est " +"d'insérer ::" #: ../Doc/library/pdb.rst:69 msgid "" @@ -87,16 +115,21 @@ msgid "" "through the code following this statement, and continue running without the " "debugger using the :pdbcmd:`continue` command." msgstr "" +"à l'endroit où vous voulez pénétrer dans le débogueur. Vous pouvez alors " +"parcourir le code suivant cette instruction, et continuer à exécuter sans le " +"débogueur en utilisant la commande :pdbcmd:`continue`." #: ../Doc/library/pdb.rst:73 msgid "The typical usage to inspect a crashed program is::" -msgstr "" +msgstr "L'usage typique pour inspecter un programme planté ::" #: ../Doc/library/pdb.rst:91 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" msgstr "" +"Le module définit les fonctions suivantes; chacune entre dans le débogueur " +"d'une manière légèrement différente:" #: ../Doc/library/pdb.rst:96 msgid "" @@ -109,6 +142,15 @@ msgid "" "module :mod:`__main__` is used. (See the explanation of the built-in :func:" "`exec` or :func:`eval` functions.)" msgstr "" +"Exécute la *déclaration* (donnée sous forme de chaîne de caractères ou " +"d'objet code) sous le contrôle du débogueur. L'invite de débogage apparaît " +"avant l'exécution de tout code; vous pouvez définir des points d'arrêt et " +"taper :pdbcmd:`continue`, ou vous pouvez passer à travers l'instruction en " +"utilisant :pdbcmd:`step` ou :pdbcmd:`next` (toutes ces commandes sont " +"expliquées ci-dessous). Les arguments *globals* et *locals* optionnels " +"spécifient l'environnement dans lequel le code est exécuté; par défaut le " +"dictionnaire du module :mod:`__main__` est utilisé. (Voir l'explication des " +"fonctions intégrées :func:`exec` ou :func:`eval`.)" #: ../Doc/library/pdb.rst:108 msgid "" @@ -116,6 +158,10 @@ msgid "" "debugger control. When :func:`runeval` returns, it returns the value of the " "expression. Otherwise this function is similar to :func:`run`." msgstr "" +"Évalue l'*expression* (donné comme une chaine de caractères ou un code " +"objet) sous le contrôle du débogueur. Quand la fonction :func:`runeval` " +"retourne, elle renvoie la valeur de l'expression. Autrement cette fonction " +"est similaire à la fonction :func:`run`." #: ../Doc/library/pdb.rst:115 msgid "" @@ -124,6 +170,10 @@ msgid "" "function call returned. The debugger prompt appears as soon as the function " "is entered." msgstr "" +"Appelle la *function* (une fonction ou une méthode, pas une chaine de " +"caractères) avec les arguments donnés. Quand :func:`runcall` revient, il " +"retourne ce que l'appel de fonctionne a renvoyé. L'invite de débogage " +"apparaît dès que la fonction est entrée." #: ../Doc/library/pdb.rst:123 msgid "" @@ -131,6 +181,9 @@ msgid "" "a breakpoint at a given point in a program, even if the code is not " "otherwise being debugged (e.g. when an assertion fails)." msgstr "" +"Entre le débogueur dans la *frame* de la pile d'appel. Ceci est utile pour " +"coder en dur un point d'arrêt dans un programme, même si le code n'est pas " +"autrement débogué (par exemple, quand une assertion échoue)." #: ../Doc/library/pdb.rst:130 msgid "" @@ -139,12 +192,18 @@ msgid "" "being handled (an exception must be being handled if the default is to be " "used)." msgstr "" +"Entre le débogage post-mortem de l'objet *traceback* donné. Si aucun " +"*traceback* n'est donné, il utilise celui de l'exception en cours de " +"traitement (une exception doit être gérée si la valeur par défaut doit être " +"utilisée)." #: ../Doc/library/pdb.rst:138 msgid "" "Enter post-mortem debugging of the traceback found in :data:`sys." "last_traceback`." msgstr "" +"Entre le débogage post-mortem de la trace trouvé dans :data:`sys. " +"last_traceback`." #: ../Doc/library/pdb.rst:142 msgid "" @@ -152,16 +211,21 @@ msgid "" "the :class:`Pdb` class and calling the method of the same name. If you want " "to access further features, you have to do this yourself:" msgstr "" +"Les fonctions ``run*`` et :func:`set_trace` sont des alias pour instancier " +"la classe :class:`Pdb` et appeler la méthode du même nom. Si vous souhaitez " +"accéder à d'autres fonctionnalités, vous devez le faire vous-même ::" #: ../Doc/library/pdb.rst:149 msgid ":class:`Pdb` is the debugger class." -msgstr "" +msgstr "Le classe du débogueur est la classe :class:`Pdb`." #: ../Doc/library/pdb.rst:151 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." msgstr "" +"Les arguments *completekey*, *stdin* et *stdout* sont transmis à la classe " +"sous-jacente :class:`cmd.Cmd`; voir la description ici." #: ../Doc/library/pdb.rst:154 msgid "" @@ -169,6 +233,9 @@ msgid "" "patterns. The debugger will not step into frames that originate in a module " "that matches one of these patterns. [1]_" msgstr "" +"L'argument *skip*, s'il est donné, doit être un itérable des noms de modules " +"de style glob. Le débogueur n'entrera pas dans les *frames* qui proviennent " +"d'un module qui correspond à l'un de ces motifs. [1]_" #: ../Doc/library/pdb.rst:158 msgid "" @@ -178,10 +245,15 @@ msgid "" "`Ctrl-C`. If you want Pdb not to touch the SIGINT handler, set *nosigint* " "to true." msgstr "" +"Par défaut, Pdb définit un gestionnaire pour le signal SIGINT (qui est " +"envoyé lorsque l'utilisateur appuie sur :kbd:`Ctrl-C` sur la console) " +"lorsque vous donnez une commande ``continue``. Ceci vous permet de pénétrer " +"à nouveau dans le débogueur en appuyant sur :kbd:`Ctrl-C`. Si vous voulez " +"que Pdb ne touche pas le gestionnaire SIGINT, assignez *nosigint* à *True*." #: ../Doc/library/pdb.rst:163 msgid "Example call to enable tracing with *skip*::" -msgstr "" +msgstr "Exemple d'appel pour activer le traçage avec *skip* ::" #: ../Doc/library/pdb.rst:167 msgid "The *skip* argument." @@ -191,14 +263,16 @@ msgstr "L'argument *skip*." msgid "" "The *nosigint* argument. Previously, a SIGINT handler was never set by Pdb." msgstr "" +"L'argument *nosigint*. Auparavant, un gestionnaire SIGINT n'était jamais " +"configuré par Pdb." #: ../Doc/library/pdb.rst:179 msgid "See the documentation for the functions explained above." -msgstr "" +msgstr "Voir la documentation pour les fonctions expliquées ci-dessus." #: ../Doc/library/pdb.rst:185 msgid "Debugger Commands" -msgstr "" +msgstr "Commande du débogueur" #: ../Doc/library/pdb.rst:187 msgid "" @@ -211,12 +285,24 @@ msgid "" "the square brackets must not be typed. Alternatives in the command syntax " "are separated by a vertical bar (``|``)." msgstr "" +"Les commandes reconnues par le débogueur sont listées. La plupart des " +"commandes peuvent être abrégées à une ou deux lettres comme indiquées; par " +"exemple. ``h(elp)`` signifie que soit ``h`` ou ``help`` peut être utilisée " +"pour entrer la commande help (mais pas ``he`` or ``hel``, ni ``H`` ou " +"``HELP``). Les arguments des commandes doivent être séparées par des espaces " +"(espaces ou tabulations). Les arguments optionnels sont entourés dans des " +"crochets (``[]``) dans la syntaxe de la commande; les crochets ne doivent " +"pas être insérés. Les alternatives dans la syntaxe de la commande sont " +"séparés par une barre verticale (``|``)." #: ../Doc/library/pdb.rst:196 msgid "" "Entering a blank line repeats the last command entered. Exception: if the " "last command was a :pdbcmd:`list` command, the next 11 lines are listed." msgstr "" +"Entrer une ligne vide répète la dernière commande entrée. Exception: si la " +"dernière commande était la commande :pdbcmd:`list`, les 11 prochaines lignes " +"sont affichées." #: ../Doc/library/pdb.rst:199 msgid "" @@ -228,6 +314,14 @@ msgid "" "in such a statement, the exception name is printed but the debugger's state " "is not changed." msgstr "" +"Les commandes que le débogueur ne reconnaît pas sont supposées être des " +"instructions Python et sont exécutées dans le contexte du programme en cours " +"de débogage. Les instructions Python peuvent également être préfixées avec " +"un point d'exclamation (``!``). C'est une façon puissante d'inspecter le " +"programme en cours de débogage; il est même possible de changer une variable " +"ou d'appeler une fonction. Lorsqu'une exception se produit dans une telle " +"instruction, le nom de l'exception est affiché mais l'état du débogueur " +"n'est pas modifié." #: ../Doc/library/pdb.rst:207 msgid "" @@ -235,6 +329,9 @@ msgid "" "parameters which allows one a certain level of adaptability to the context " "under examination." msgstr "" +"Le débogueur supporte :ref:`aliases `. Les alias peuvent " +"avoir des paramètres qui permettent un certain niveau d'adaptabilité au " +"contexte étudié." #: ../Doc/library/pdb.rst:211 msgid "" @@ -244,6 +341,12 @@ msgid "" "separating the commands; the input is split at the first ``;;`` pair, even " "if it is in the middle of a quoted string." msgstr "" +"Plusieurs commandes peuvent être saisies sur une seule ligne, séparées par " +"``;;``. (Un seul ``;`` n'est pas utilisé car il est le séparateur de " +"plusieurs commandes dans une ligne qui est passée à l'analyseur Python. " +"Aucune intelligence n'est appliquée pour séparer les commandes; l'entrée est " +"divisée à la première paire de ``;;`` paire, même si il est au milieu d'une " +"chaîne de caractères." #: ../Doc/library/pdb.rst:221 msgid "" @@ -253,6 +356,12 @@ msgid "" "exist, the one in the home directory is read first and aliases defined there " "can be overridden by the local file." msgstr "" +"Si un fichier :file:`.pdbrc` existe dans le répertoire de l'utilisateur ou " +"dans le répertoire courant, il est lu et exécuté comme si il avait été écrit " +"dans l'invite du débogueur. C'est particulièrement utile pour les alias. Si " +"les deux fichiers existent, celui dans le répertoire de l'utilisateur est lu " +"en premier et les alias définit là peuvent être surchargés par le fichier " +"local." #: ../Doc/library/pdb.rst:227 msgid "" @@ -260,6 +369,9 @@ msgid "" "pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " "effect." msgstr "" +"Le fichier :file:`.pdbrc` peut maintenant contenir des commandes qui " +"continue le débogage, comme :pdbcmd:`continue` ou :pdbcmd:`next`. " +"Précédemment, ces commandes n'avaient aucun effet." #: ../Doc/library/pdb.rst:235 msgid "" @@ -269,24 +381,36 @@ msgid "" "argument must be an identifier, ``help exec`` must be entered to get help on " "the ``!`` command." msgstr "" +"Sans argument, affiche la liste des commandes disponibles. Avec une " +"*commande* comme argument, affiche l'aide de cette commande. ``help pdb`` " +"affiche la documentation complète (la docstring du module :mod:`pdb``). " +"Puisque l'argument *command* doit être un identificateur, ``help exec`` doit " +"être entré pour obtenir de l'aide sur la commande ``!``." #: ../Doc/library/pdb.rst:243 msgid "" "Print a stack trace, with the most recent frame at the bottom. An arrow " "indicates the current frame, which determines the context of most commands." msgstr "" +"Affiche une trace de pile, avec la *frame* le plus récent en bas. Une flèche " +"indique le *frame* courant, qui détermine le contexte de la plupart des " +"commandes." #: ../Doc/library/pdb.rst:248 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." msgstr "" +"Déplace le niveau de la *frame* courante *count* (par défaut un) vers le bas " +"dans la trace de pile (vers une *frame* plus récente)." #: ../Doc/library/pdb.rst:253 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." msgstr "" +"Déplace le niveau de la *frame* courante *count* (par défaut un) vers le " +"haut dans la trace de pile (vers une *frame* plus ancienne)." #: ../Doc/library/pdb.rst:258 msgid "" @@ -298,12 +422,21 @@ msgid "" "breakpoint is assigned a number to which all the other breakpoint commands " "refer." msgstr "" +"Avec un argument *lineno*, définit une pause dans le fichier courant. Avec " +"un argument *function*, définit une pause à la première instruction " +"exécutable dans cette fonction. Le numéro de ligne peut être préfixé d'un " +"nom de fichier et d'un deux-points, pour spécifier un point d'arrêt dans un " +"autre fichier (probablement celui qui n'a pas encore été chargé). Le fichier " +"est recherché sur :data:`sys.path`. Notez que chaque point d'arrêt reçoit un " +"numéro auquel se réfèrent toutes les autres commandes de point d'arrêt." #: ../Doc/library/pdb.rst:265 msgid "" "If a second argument is present, it is an expression which must evaluate to " "true before the breakpoint is honored." msgstr "" +"Si un second argument est présent, c'est une expression qui doit évaluer à " +"*True* avant que le point d'arrêt ne soit honoré." #: ../Doc/library/pdb.rst:268 msgid "" @@ -311,12 +444,17 @@ msgid "" "of times that breakpoint has been hit, the current ignore count, and the " "associated condition if any." msgstr "" +"Sans argument, liste tous les arrêts, incluant pour chaque point d'arrêt, le " +"nombre de fois qu'un point d'arrêt a été atteint, le nombre de ignore, et la " +"condition associée le cas échéant." #: ../Doc/library/pdb.rst:274 msgid "" "Temporary breakpoint, which is removed automatically when it is first hit. " "The arguments are the same as for :pdbcmd:`break`." msgstr "" +"Point d'arrêt temporaire, qui est enlevé automatiquement au premier passage. " +"Les arguments sont les mêmes que pour :pdbcmd:`break`." #: ../Doc/library/pdb.rst:279 msgid "" @@ -324,6 +462,10 @@ msgid "" "With a space separated list of breakpoint numbers, clear those breakpoints. " "Without argument, clear all breaks (but first ask confirmation)." msgstr "" +"Avec un argument *filename:lineno*, efface tous les points d'arrêt sur cette " +"ligne. Avec une liste de numéros de points d'arrêt séparés par un espace, " +"efface ces points d'arrêt. Sans argument, efface tous les points d'arrêt " +"(mais demande d'abord confirmation)." #: ../Doc/library/pdb.rst:285 msgid "" @@ -332,10 +474,15 @@ msgid "" "execution, but unlike clearing a breakpoint, it remains in the list of " "breakpoints and can be (re-)enabled." msgstr "" +"Désactive les points d'arrêt indiqués sous la forme d'une liste de numéros " +"de points d'arrêt séparés par un espace. Désactiver un point d'arrêt " +"signifie qu'il ne peut pas interrompre l'exécution du programme, mais à la " +"différence d'effacer un point d'arrêt, il reste dans la liste des points " +"d'arrêt et peut être (ré)activé." #: ../Doc/library/pdb.rst:292 msgid "Enable the breakpoints specified." -msgstr "" +msgstr "Active les points d'arrêt spécifiés." #: ../Doc/library/pdb.rst:296 msgid "" @@ -345,6 +492,11 @@ msgid "" "breakpoint is reached and the breakpoint is not disabled and any associated " "condition evaluates to true." msgstr "" +"Définit le nombre d'ignore pour le numéro de point d'arrêt donné. Si le " +"compte est omis, le compte est mis à 0. Un point d'arrêt devient actif " +"lorsque le compte est nul. Lorsqu'il n'est pas nul, le comptage est diminué " +"à chaque fois que le point d'arrêt est atteint et que le point d'arrêt n'est " +"pas désactivé et que toute condition associée est évaluée comme vraie." #: ../Doc/library/pdb.rst:304 msgid "" @@ -352,6 +504,10 @@ msgid "" "to true before the breakpoint is honored. If *condition* is absent, any " "existing condition is removed; i.e., the breakpoint is made unconditional." msgstr "" +"Définit une nouvelle *condition* pour le point d'arrêt, une expression qui " +"doit évaluer à *True* avant que le point d'arrêt ne soit honoré. Si " +"*condition* est absente, toute condition existante est supprimée, c'est-à-" +"dire que le point d'arrêt est rendu inconditionnel." #: ../Doc/library/pdb.rst:310 msgid "" @@ -359,23 +515,33 @@ msgid "" "themselves appear on the following lines. Type a line containing just " "``end`` to terminate the commands. An example::" msgstr "" +"Spécifie une liste de commandes pour le numéro du point d'arrêt *bpnumber*. " +"Les commandes elles-mêmes apparaissent sur les lignes suivantes. Tapez une " +"ligne contenant juste ``end`` pour terminer les commandes. Un exemple ::" #: ../Doc/library/pdb.rst:319 msgid "" "To remove all commands from a breakpoint, type commands and follow it " "immediately with ``end``; that is, give no commands." msgstr "" +"Pour supprimer toutes les commandes depuis un point d'arrêt, écrivez " +"``commands`` suivi immédiatement avec ``end``; ceci supprime les commandes." #: ../Doc/library/pdb.rst:322 msgid "" "With no *bpnumber* argument, commands refers to the last breakpoint set." msgstr "" +"Sans argument *bpnumber*, les commandes se réfèrent au dernier point d'arrêt " +"défini." #: ../Doc/library/pdb.rst:324 msgid "" "You can use breakpoint commands to start your program up again. Simply use " "the continue command, or step, or any other command that resumes execution." msgstr "" +"Vous pouvez utiliser les commandes de point d'arrêt pour redémarrer votre " +"programme. Utilisez simplement la commande continue, ou step, ou toute " +"autre commande qui reprend l'exécution." #: ../Doc/library/pdb.rst:327 msgid "" @@ -395,12 +561,21 @@ msgid "" "of the other commands print anything, you see no sign that the breakpoint " "was reached." msgstr "" +"Si vous utilisez la commande 'silence' dans la liste des commandes, le " +"message habituel concernant l'arrêt à un point d'arrêt n'est pas affiché. " +"Ceci peut être souhaitable pour les points d'arrêt qui doivent afficher un " +"message spécifique et ensuite continuer. Si aucune des autres commandes " +"n'affiche quoi que ce soit, vous ne voyez aucun signe indiquant que le point " +"de rupture a été atteint." #: ../Doc/library/pdb.rst:341 msgid "" "Execute the current line, stop at the first possible occasion (either in a " "function that is called or on the next line in the current function)." msgstr "" +"Exécute la ligne en cours, s'arrête à la première occasion possible (soit " +"dans une fonction qui est appelée, soit sur la ligne suivante de la fonction " +"courante)." #: ../Doc/library/pdb.rst:346 msgid "" @@ -410,12 +585,19 @@ msgid "" "executes called functions at (nearly) full speed, only stopping at the next " "line in the current function.)" msgstr "" +"Continue l'exécution jusqu'à ce que la ligne suivante de la fonction en " +"cours soit atteinte ou qu'elle revienne. (La différence entre :pdbcmd:`next` " +"et :pdbcmd:`step` est que :pdbcmd:`step` s'arrête dans une fonction appelée, " +"tandis que :pdbcmd:`next` exécute les fonctions appelées à (presque) pleine " +"vitesse, ne s'arrêtant qu'à la ligne suivante dans la fonction courante.)" #: ../Doc/library/pdb.rst:354 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." msgstr "" +"Sans argument, continue l'exécution jusqu'à ce que la ligne avec un nombre " +"supérieur au nombre actuel soit atteinte." #: ../Doc/library/pdb.rst:357 msgid "" @@ -423,18 +605,23 @@ msgid "" "equal to that is reached. In both cases, also stop when the current frame " "returns." msgstr "" +"Avec un numéro de ligne, continue l'exécution jusqu'à ce qu'une ligne avec " +"un numéro supérieur ou égal à celui-ci soit atteinte. Dans les deux cas, " +"arrête également lorsque la frame courante revient." #: ../Doc/library/pdb.rst:361 msgid "Allow giving an explicit line number." -msgstr "" +msgstr "Permet de donner un numéro de ligne explicite." #: ../Doc/library/pdb.rst:366 msgid "Continue execution until the current function returns." -msgstr "" +msgstr "Continue l'exécution jusqu'au retour de la fonction courante." #: ../Doc/library/pdb.rst:370 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" +"Continue l'exécution, seulement s'arrête quand un point d'arrêt est " +"rencontré." #: ../Doc/library/pdb.rst:374 msgid "" @@ -442,6 +629,10 @@ msgid "" "frame. This lets you jump back and execute code again, or jump forward to " "skip code that you don't want to run." msgstr "" +"Défint la prochaine ligne qui sera exécutée. Uniquement disponible dans la " +"*frame* inférieur. Cela vous permet de revenir en arrière et d'exécuter à " +"nouveau le code, ou de passer en avant pour sauter le code que vous ne " +"voulez pas exécuter." #: ../Doc/library/pdb.rst:378 msgid "" @@ -449,6 +640,9 @@ msgid "" "possible to jump into the middle of a :keyword:`for` loop or out of a :" "keyword:`finally` clause." msgstr "" +"Il est à noter que tous les sauts ne sont pas autorisés -- par exemple, il " +"n'est pas possible de sauter au milieu d'une boucle :keyword:`for` ou en " +"dehors d'une clause :keyword:`finally`." #: ../Doc/library/pdb.rst:384 msgid "" @@ -458,6 +652,12 @@ msgid "" "lines around at that line. With two arguments, list the given range; if the " "second argument is less than the first, it is interpreted as a count." msgstr "" +"Liste le code source du fichier courant. Sans arguments, liste 11 lignes " +"autour de la ligne courante ou continue le listing précédant. Avec " +"l'argument ``.``, liste 11 lignes autour de la ligne courante. Avec un " +"argument, list les 11 lignes autour de cette ligne. Avec deux arguments, " +"liste la plage donnée; si le second argument est inférieur au premier, il " +"est interprété comme un compte." #: ../Doc/library/pdb.rst:390 msgid "" @@ -466,60 +666,74 @@ msgid "" "raised or propagated is indicated by ``>>``, if it differs from the current " "line." msgstr "" +"La ligne en cours dans l'image courante est indiquée par ``->``. Si une " +"exception est en cours de débogage, la ligne où l'exception a été " +"initialement levée ou propagée est indiquée par ``>>``, si elle diffère de " +"la ligne courante." #: ../Doc/library/pdb.rst:395 msgid "The ``>>`` marker." -msgstr "" +msgstr "Le marqueur ``>>``." #: ../Doc/library/pdb.rst:400 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." msgstr "" +"Liste le code source de la fonction ou du bloc courant. Les lignes " +"intéressantes sont marquées comme pour :pdbcmd:`list`." #: ../Doc/library/pdb.rst:407 msgid "Print the argument list of the current function." -msgstr "" +msgstr "Affiche la liste d'arguments de la fonction courante." #: ../Doc/library/pdb.rst:411 msgid "Evaluate the *expression* in the current context and print its value." -msgstr "" +msgstr "Évalue l'*expression* dans le contexte courant et affiche sa valeur." #: ../Doc/library/pdb.rst:415 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." msgstr "" +"``print()`` peut aussi être utilisée, mais n'est pas une commande du " +"débogueur --- il exécute la fonction Python :func:`print`." #: ../Doc/library/pdb.rst:421 msgid "" "Like the :pdbcmd:`p` command, except the value of the expression is pretty-" "printed using the :mod:`pprint` module." msgstr "" +"Comme la commande :pdbcmd:`p`, sauf que la valeur de l'expression est " +"joliment affiché en utilisant le module :mod:`pprint`." #: ../Doc/library/pdb.rst:426 msgid "Print the type of the *expression*." -msgstr "" +msgstr "Affiche le type de l'*expression*." #: ../Doc/library/pdb.rst:430 msgid "Try to get source code for the given object and display it." -msgstr "" +msgstr "Essaie d'obtenir le code source pour l'objet donné et l'affiche." #: ../Doc/library/pdb.rst:436 msgid "" "Display the value of the expression if it changed, each time execution stops " "in the current frame." msgstr "" +"Affiche la valeur de l'expression si elle a changée, chaque fois que " +"l'exécution s'arrête dans la *frame* courante." #: ../Doc/library/pdb.rst:439 msgid "Without expression, list all display expressions for the current frame." -msgstr "" +msgstr "Sans expression, liste toutes les expressions pour la frame courante." #: ../Doc/library/pdb.rst:445 msgid "" "Do not display the expression any more in the current frame. Without " "expression, clear all display expressions for the current frame." msgstr "" +"N'affiche plus l'expression dans la *frame* courante. Sans expression, " +"efface toutes les expressions d'affichage de la *frame* courante." #: ../Doc/library/pdb.rst:452 msgid "" @@ -527,6 +741,9 @@ msgid "" "namespace contains all the (global and local) names found in the current " "scope." msgstr "" +"Démarre un interpréteur interactif (en utilisant le module :mod:`code`) dont " +"l'espace de nommage global contient tous les noms (*global* et *local*) " +"trouvés dans la portée courante." #: ../Doc/library/pdb.rst:462 msgid "" @@ -536,6 +753,12 @@ msgid "" "no command is given, the current alias for *name* is shown. If no arguments " "are given, all aliases are listed." msgstr "" +"Créez un alias appelé *name* qui exécute *command*. La commande ne doit " +"*pas* être entourée de guillemets. Les paramètres remplaçables peuvent être " +"indiqués par ``%1``, ``%2`` et ainsi de suite, tandis que ``%*`` est " +"remplacé par tous les paramètres. Si aucune commande n'est donnée, l'alias " +"courant pour *name* est affiché. Si aucun argument n'est donné, tous les " +"alias sont listés." #: ../Doc/library/pdb.rst:468 msgid "" @@ -545,16 +768,24 @@ msgid "" "Aliasing is recursively applied to the first word of the command line; all " "other words in the line are left alone." msgstr "" +"Les alias peuvent être imbriqués et peuvent contenir tout ce qui peut être " +"légalement tapé à l'invite pdb. Notez que les commandes pdb internes " +"*peuvent* être remplacées par des alias. Une telle commande est alors " +"masquée jusqu'à ce que l'alias soit supprimé. L'aliasing est appliqué " +"récursivement au premier mot de la ligne de commande; tous les autres mots " +"de la ligne sont laissés seuls." #: ../Doc/library/pdb.rst:474 msgid "" "As an example, here are two useful aliases (especially when placed in the :" "file:`.pdbrc` file)::" msgstr "" +"Comme un exemple, voici deux alias utiles (spécialement quand il est placé " +"dane le fichier :file:`.pdbrc`) ::" #: ../Doc/library/pdb.rst:484 msgid "Delete the specified alias." -msgstr "" +msgstr "Supprime l'alias spécifié." #: ../Doc/library/pdb.rst:488 msgid "" @@ -564,6 +795,11 @@ msgid "" "prefix the assignment command with a :keyword:`global` statement on the same " "line, e.g.::" msgstr "" +"Exécute l'instruction *statement* (une ligne) dans le contexte da la *frame* " +"de la pile courante. Le point d'exclamation peut être omis à moins que le " +"premier mot de l'instruction ne ressemble à une commande de débogueur. Pour " +"définir une variable globale, vous pouvez préfixer la commande d'assignation " +"avec une instruction :keyword:`global` sur la même ligne, par exemple ::" #: ../Doc/library/pdb.rst:500 msgid "" @@ -572,10 +808,14 @@ msgid "" "History, breakpoints, actions and debugger options are preserved. :pdbcmd:" "`restart` is an alias for :pdbcmd:`run`." msgstr "" +"Redémarre le programme Python débogué. Si un argument est fourni, il est " +"splitté avec :mod:`shlex` et le résultat es utilisé comme le nouveau :data:" +"`sys.argv`. L'historique, les points d'arrêt, les actions et les options du " +"débogueur sont préservés. :pdbcmd:`restart` est un alias pour :pdbcmd:`run`." #: ../Doc/library/pdb.rst:507 msgid "Quit from the debugger. The program being executed is aborted." -msgstr "" +msgstr "Quitte le débogueur. Le programme exécuté est arrêté." #: ../Doc/library/pdb.rst:511 msgid "Footnotes" @@ -586,3 +826,6 @@ msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." msgstr "" +"La question de savoir si une *frame* est considérée comme provenant d'un " +"certain module est déterminée par le ``__name__`` dans les globales de la " +"*frame*." diff --git a/library/persistence.po b/library/persistence.po index f2a3f825..1b41810f 100644 --- a/library/persistence.po +++ b/library/persistence.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/persistence.rst:5 msgid "Data Persistence" -msgstr "" +msgstr "Persistance des données" #: ../Doc/library/persistence.rst:7 msgid "" @@ -28,7 +28,14 @@ msgid "" "objects from the bytes. The various DBM-related modules support a family of " "hash-based file formats that store a mapping of strings to other strings." msgstr "" +"Les modules décrits dans ce chapitre permettent de stocker des données " +"Python de manière persistante typiquement sur disque. Les modules :mod:" +"`pickle` et :mod:`marshal` peuvent transformer n'importe quel type Python en " +"une séquence d'octets, puis recréer les objets depuis ces octets. Les " +"différents modules du paquet *dbm* gèrent une catégorie de formats de " +"fichier basée sur des hach, stockant des correpondances entre chaînes de " +"caractères." #: ../Doc/library/persistence.rst:13 msgid "The list of modules described in this chapter is:" -msgstr "Voici la liste des modules documentés par ce chapitre:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/pipes.po b/library/pipes.po index af1d9c83..e4b58169 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/pipes.rst:2 msgid ":mod:`pipes` --- Interface to shell pipelines" -msgstr "" +msgstr ":mod:`pipes` --- Interface au *pipelines* shell" #: ../Doc/library/pipes.rst:10 msgid "**Source code:** :source:`Lib/pipes.py`" @@ -29,20 +29,25 @@ msgid "" "The :mod:`pipes` module defines a class to abstract the concept of a " "*pipeline* --- a sequence of converters from one file to another." msgstr "" +"Le module :mod:`pipes` définit une classe permettant d'abstraire le concept " +"de *pipeline* --- une séquence de convertisseurs d'un fichier vers un autre." #: ../Doc/library/pipes.rst:17 msgid "" "Because the module uses :program:`/bin/sh` command lines, a POSIX or " "compatible shell for :func:`os.system` and :func:`os.popen` is required." msgstr "" +"Du fait que le module utilise les lignes de commandes :program:`/bin/sh`, un " +"shell POSIX ou compatible est requis pour :func:`os.system` et :func:`os." +"popen`." #: ../Doc/library/pipes.rst:20 msgid "The :mod:`pipes` module defines the following class:" -msgstr "" +msgstr "Le module :mod:`pipes` définit la classe suivante :" #: ../Doc/library/pipes.rst:25 msgid "An abstraction of a pipeline." -msgstr "" +msgstr "Une abstraction d'un *pipeline*." #: ../Doc/library/pipes.rst:27 msgid "Example::" @@ -50,19 +55,19 @@ msgstr "Exemples ::" #: ../Doc/library/pipes.rst:42 msgid "Template Objects" -msgstr "" +msgstr "L'Objet *Template*" #: ../Doc/library/pipes.rst:44 msgid "Template objects following methods:" -msgstr "" +msgstr "Les méthodes de l'objet *Template* :" #: ../Doc/library/pipes.rst:49 msgid "Restore a pipeline template to its initial state." -msgstr "" +msgstr "Réinitialise un modèle de *pipeline* à son état inital." #: ../Doc/library/pipes.rst:54 msgid "Return a new, equivalent, pipeline template." -msgstr "" +msgstr "Renvoie un nouveau modèle de *pipeline*, équivalent." #: ../Doc/library/pipes.rst:59 msgid "" @@ -70,12 +75,18 @@ msgid "" "debugging is on, commands to be executed are printed, and the shell is given " "``set -x`` command to be more verbose." msgstr "" +"Si *flag* est vrai, active le débogage. Sinon, le désactive. Quand le " +"débogage est actif, les commandes à exécuter seront affichée et le shell est " +"pourvu de la commande ``set -x`` afin d'être plus verbeux." #: ../Doc/library/pipes.rst:66 msgid "" "Append a new action at the end. The *cmd* variable must be a valid bourne " "shell command. The *kind* variable consists of two letters." msgstr "" +"Ajoute une nouvelle action à la fin. La variable *cmd* doit être une " +"commande *bourne shell* valide. La varialbe *kind* est composée de deux " +"lettres." #: ../Doc/library/pipes.rst:69 msgid "" @@ -84,6 +95,10 @@ msgid "" "command line) or ``'.'`` (which means the commands reads no input, and hence " "must be first.)" msgstr "" +"La première lettre peut soit être ``'-'`` (qui signifie que la commande lit " +"sa sortie standard), soit ``'f'`` (qui signifie que la commande lit un " +"fichier donné par la ligne de commande), soit ``'.'`` (qui signifie que la " +"commande ne lit pas d'entrée, et donc doit être la première.)" #: ../Doc/library/pipes.rst:74 msgid "" @@ -92,19 +107,28 @@ msgid "" "a file on the command line) or ``'.'`` (which means the command does not " "write anything, and hence must be last.)" msgstr "" +"De même, la seconde lettre peut soit être ``'-'`` (qui signifie que la " +"commande écrit sur la sortie standard), soit ``'f'`` (qui signifie que la " +"commande écrit sur un fichier donné par la ligne de commande), soit ``'.'`` " +"(qui signifie que la commande n'écrit rien, et donc doit être la dernière.)" #: ../Doc/library/pipes.rst:82 msgid "" "Add a new action at the beginning. See :meth:`append` for explanations of " "the arguments." msgstr "" +"Ajoute une nouvelle action au début. Voir :meth:`append` pour plus " +"d'explications sur les arguments." #: ../Doc/library/pipes.rst:88 msgid "" "Return a file-like object, open to *file*, but read from or written to by " "the pipeline. Note that only one of ``'r'``, ``'w'`` may be given." msgstr "" +"Renvoie un objet `file-like`, ouvert à *file*, mais permettant d'écrire vers " +"le *pipeline* ou de lire depuis celui-ci. À noter que seulement un des deux " +"('r' ou 'w') peut être donné." #: ../Doc/library/pipes.rst:94 msgid "Copy *infile* to *outfile* through the pipe." -msgstr "" +msgstr "Copie *infile* vers *outfile* au travers du *pipe*." diff --git a/library/platform.po b/library/platform.po index 5ce9042d..2db7eb82 100644 --- a/library/platform.po +++ b/library/platform.po @@ -216,7 +216,7 @@ msgstr "" #: ../Doc/library/platform.rst:173 msgid "Result changed from a tuple to a namedtuple." -msgstr "" +msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." #: ../Doc/library/platform.rst:178 msgid "Java Platform" diff --git a/library/pty.po b/library/pty.po index f98a3136..92650c81 100644 --- a/library/pty.po +++ b/library/pty.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" -msgstr "" +msgstr ":mod:`pty` --- Outils de manipulation de pseudo-terminaux" #: ../Doc/library/pty.rst:11 msgid "**Source code:** :source:`Lib/pty.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/pty.py`" #: ../Doc/library/pty.rst:15 msgid "" @@ -30,6 +30,9 @@ msgid "" "concept: starting another process and being able to write to and read from " "its controlling terminal programmatically." msgstr "" +"Le module :mod:`pty` expose des fonctions de manipulation de pseudo-" +"terminaux, il permet d'écrire un programme capable de démarrer un autre " +"processus, d'écrire et de lire depuis son terminal." #: ../Doc/library/pty.rst:19 msgid "" @@ -37,10 +40,13 @@ msgid "" "to do it only for Linux. (The Linux code is supposed to work on other " "platforms, but hasn't been tested yet.)" msgstr "" +"La gestion de pseudo-terminaux étant très dépendante de la plateforme, ce " +"code ne gère que Linux. (Code supposé fonctionner sur d'autres plateformes, " +"mais sans avoir été testé)." #: ../Doc/library/pty.rst:23 msgid "The :mod:`pty` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`pty` expose les fonctions suivantes :" #: ../Doc/library/pty.rst:28 msgid "" @@ -50,6 +56,11 @@ msgid "" "a file descriptor connected to the child's controlling terminal (and also to " "the child's standard input and output)." msgstr "" +"Fork. Connecte le terminal contrôlé par le fils à un pseudo-terminal. La " +"valeur renvoyée est ``(pid, fd)``. Notez que le fils obtient ``0`` comme " +"*pid* et un *fd* non valide. Le parent obtient le *pid* du fils, et *fd* un " +"descripteur de fichier connecté à un terminal contrôlé par le fils (et donc " +"à l'entrée et la sortie standard du fils)." #: ../Doc/library/pty.rst:37 msgid "" @@ -57,6 +68,10 @@ msgid "" "emulation code for generic Unix systems. Return a pair of file descriptors " "``(master, slave)``, for the master and the slave end, respectively." msgstr "" +"Ouvre une nouvelle paire de pseudo-terminaux, en utilisant si possible :func:" +"`os.openpty`, ou du code émulant la fonctionalité pour des systèmes Unix " +"génériques. Renvoie une paire de descripteurs de fichier ``(master, " +"slave)``, pour le maître et pour l'esclave respectivement." #: ../Doc/library/pty.rst:44 msgid "" @@ -64,6 +79,9 @@ msgid "" "process's standard io. This is often used to baffle programs which insist on " "reading from the controlling terminal." msgstr "" +"Crée un nouveau processus et connecte son terminal aux entrées/sorties " +"standard du processus courant. C'est typiquement utilisé pour duper les " +"programmes insistant sur le fait de lire depuis leur terminal." #: ../Doc/library/pty.rst:48 msgid "" @@ -71,12 +89,17 @@ msgid "" "from a file descriptor. The defaults try to read 1024 bytes each time they " "are called." msgstr "" +"Les fonctions *master_read* et *stdin_read* doivent être des fonctions " +"lisant sur un descripteur de fichier. Par défaut elles lisent 1024 octets à " +"chaque fois qu'elles sont appelées." #: ../Doc/library/pty.rst:52 msgid "" ":func:`spawn` now returns the status value from :func:`os.waitpid` on the " "child process." msgstr "" +":func:`spawn` renvoie maintenant la valeur renvoyée par :func:`os.waitpid` " +"sur le processus fils." #: ../Doc/library/pty.rst:57 msgid "Example" @@ -88,3 +111,6 @@ msgid "" "a pseudo-terminal to record all input and output of a terminal session in a " "\"typescript\". ::" msgstr "" +"Le programme suivant se comporte comme la commande Unix :manpage:" +"`script(1)`, utilisant un pseudo-terminal pour enregistrer toutes les " +"entrées et sorties d'une session dans un fichier \"typescript\". ::" diff --git a/library/pyclbr.po b/library/pyclbr.po index 09861218..65672283 100644 --- a/library/pyclbr.po +++ b/library/pyclbr.po @@ -56,7 +56,7 @@ msgstr "" #: ../Doc/library/pyclbr.rst:45 msgid "Class Objects" -msgstr "Les objets classe" +msgstr "Objets classes" #: ../Doc/library/pyclbr.rst:47 msgid "" diff --git a/library/queue.po b/library/queue.po index f8cf5fdb..577acfcb 100644 --- a/library/queue.po +++ b/library/queue.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/queue.rst:2 msgid ":mod:`queue` --- A synchronized queue class" -msgstr "" +msgstr ":mod:`queue` --- File synchronisée" #: ../Doc/library/queue.rst:7 msgid "**Source code:** :source:`Lib/queue.py`" @@ -32,6 +32,12 @@ msgid "" "module implements all the required locking semantics. It depends on the " "availability of thread support in Python; see the :mod:`threading` module." msgstr "" +"Le module :mod:`queue` implémente des files multi-productrices et multi-" +"consommatrices. C'est particulièrement utile en programmation *multi-" +"thread*, lorsque les informations doivent être échangées sans risques entre " +"plusieurs *threads*. La classe :class:`Queue` de ce module implémente tout " +"le vérouillage nécessaire. Cela dépend de la disponibilité du support des " +"threads en Python; voir le module :mod:`threading`." #: ../Doc/library/queue.rst:18 msgid "" @@ -48,10 +54,14 @@ msgid "" "Internally, the module uses locks to temporarily block competing threads; " "however, it is not designed to handle reentrancy within a thread." msgstr "" +"En interne, le module utilise des verrous pour bloquer temporairement des " +"fils d'exécution concurrents. Cependant, il n'a pas été conçu pour être " +"réentrant au sein d'un fil d'exécution." #: ../Doc/library/queue.rst:28 msgid "The :mod:`queue` module defines the following classes and exceptions:" msgstr "" +"Le module :mod:`queue` définit les classes et les exceptions suivantes :" #: ../Doc/library/queue.rst:32 msgid "" @@ -79,6 +89,11 @@ msgid "" "consumed. If *maxsize* is less than or equal to zero, the queue size is " "infinite." msgstr "" +"Constructeur pour une file de priorité. *maxsize* est un entier définissant " +"le nombre maximal d'éléments pouvant être mis dans la file. L'insertion sera " +"bloquée lorsque cette borne supérieure sera atteinte, jusqu'à ce que des " +"éléments soient consommés. Si *maxsize* est inférieur ou égal à 0, la taille " +"de la file sera infinie." #: ../Doc/library/queue.rst:52 msgid "" @@ -86,12 +101,18 @@ msgid "" "the one returned by ``sorted(list(entries))[0]``). A typical pattern for " "entries is a tuple in the form: ``(priority_number, data)``." msgstr "" +"Les éléments de valeurs les plus faibles sont extraits en premier (l'élément " +"de valeur la plus faible est celui renvoyé par ``sorted(list(entries))" +"[0]``). Un cas typique est d'utiliser des tuple de la forme : " +"``(priority_number, data)``." #: ../Doc/library/queue.rst:59 msgid "" "Exception raised when non-blocking :meth:`~Queue.get` (or :meth:`~Queue." "get_nowait`) is called on a :class:`Queue` object which is empty." msgstr "" +"Exception levée lorsque la méthode non bloquante :meth:`~Queue.get` (ou :" +"meth:`~Queue.get_nowait`) est appelée sur l'objet :class:`Queue` vide." #: ../Doc/library/queue.rst:66 msgid "" diff --git a/library/quopri.po b/library/quopri.po index 11f40cf2..525589e8 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/quopri.rst:2 msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" -msgstr "" +msgstr ":mod:`quopri` --- Encode et décode des données *MIME quoted-printable*" #: ../Doc/library/quopri.rst:7 msgid "**Source code:** :source:`Lib/quopri.py`" @@ -34,6 +34,14 @@ msgid "" "via the :mod:`base64` module is more compact if there are many such " "characters, as when sending a graphics file." msgstr "" +"Ce module effectue des encodages et décodages de transport *quoted-" +"printable*, tel que définis dans la :rfc:`1521` : \"*MIME (Multipurpose " +"Internet Mail Extensions) Part One Mechanisms for Specifying and Describing " +"the Format of Internet Message Bodies*\". L'encodage *quoted-printable* est " +"adapté aux données dans lesquelles peu de données ne sont pas affichables. " +"L'encodage *base64* disponible dans le module :mod:`base64` est plus compact " +"dans les cas où ces caractères sont nombreux, typiquement pour encoder des " +"images." #: ../Doc/library/quopri.rst:25 msgid "" @@ -44,6 +52,13 @@ msgid "" "encoded headers as described in :rfc:`1522`: \"MIME (Multipurpose Internet " "Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text\"." msgstr "" +"Décode le contenu du fichier *input* et écrit le résultat décodé, binaire, " +"dans le fichier *output*. *input* et *output* doivent être des :term:`objets " +"fichiers binaires `. Si l'argument facultatif *header* est " +"fourni et vrai, les *underscore* seront décodés en espaces. C'est utilisé " +"pour décoder des entêtes encodées \"Q\" décrits dans la RFC :rfc:`1522` : " +"\"*MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header " +"Extensions for Non-ASCII Text*\"." #: ../Doc/library/quopri.rst:35 msgid "" @@ -62,6 +77,8 @@ msgid "" "Like :func:`decode`, except that it accepts a source :class:`bytes` and " "returns the corresponding decoded :class:`bytes`." msgstr "" +"Fonctionn comme :func:`decode`, sauf qu'elle accepte des :class:`bytes` " +"comme source, et renvoie les :class:`bytes` décodés correspondants." #: ../Doc/library/quopri.rst:53 msgid "" @@ -69,6 +86,10 @@ msgid "" "returns the corresponding encoded :class:`bytes`. By default, it sends a " "``False`` value to *quotetabs* parameter of the :func:`encode` function." msgstr "" +"Fonctionn comme :func:`encode`, sauf qu'elle accepte des :class:`bytes` " +"comme source et renvoie les :class:`bytes` encodés correpondants. Par " +"défaut, ``False`` est donné au paramètre *quotetabs* de la fonction :func:" +"`encode`." #: ../Doc/library/quopri.rst:61 msgid "Module :mod:`base64`" @@ -76,4 +97,4 @@ msgstr "Module :mod:`base64`" #: ../Doc/library/quopri.rst:62 msgid "Encode and decode MIME base64 data" -msgstr "" +msgstr "Encode et décode des données MIME en base64" diff --git a/library/re.po b/library/re.po index 38e3bc5a..27160166 100644 --- a/library/re.po +++ b/library/re.po @@ -29,8 +29,8 @@ msgid "" "This module provides regular expression matching operations similar to those " "found in Perl." msgstr "" -"Ce module fournit des opérations sur les expressions rationnelles " -"similaires à celles que l'on trouve dans Perl." +"Ce module fournit des opérations sur les expressions rationnelles similaires " +"à celles que l'on trouve dans Perl." #: ../Doc/library/re.rst:17 msgid "" @@ -59,12 +59,12 @@ msgid "" msgstr "" "Les expressions rationnelles utilisent le caractère *backslash* (``'\\'``) " "pour indiquer des formes spéciales ou permettre d'utiliser des caractères " -"spéciaux sans en invoquer le sens. Cela entre en conflit avec l'utilisation " +"spéciaux sans en invoquer le sens. Cela entre en conflit avec l'utilisation " "en Python du même caractère pour la même raison dans les chaînes " "littérales ; par exemple, pour rechercher un *backslash* littéral il " "faudrait écrire ``'\\\\\\\\'`` comme motif, parce que l'expression " -"rationnelle devrait être ``\\\\``, et chaque *backslash* exprimé par ``\\" -"\\`` au sein des chaînes littérales Python." +"rationnelle devrait être ``\\\\`` et chaque *backslash* doit être représenté " +"par ``\\\\`` au sein des chaînes littérales Python." #: ../Doc/library/re.rst:32 msgid "" @@ -76,12 +76,12 @@ msgid "" "string notation." msgstr "" "La solution est d'utiliser la notation des chaînes brutes en Python pour les " -"expressions rationnelles ; Les *backslashes* ne provoquent aucun traitement " -"spécifique dans les chaînes littérales préfixées par ``'r'``. Ainsi, ``r" -"\"\\n\"`` est une chaîne de deux caractères contenant ``'\\'`` et ``'n'``, " -"tandis que ``\"\\n\"`` est une chaîne contenant un unique caractère : un " -"saut de ligne. Généralement, les motifs seront exprimés en Python à l'aide " -"de chaînes brutes." +"expressions rationnelles ; Les *backslashs* ne provoquent aucun traitement " +"spécifique dans les chaînes littérales préfixées par ``'r'``. Ainsi, ``r\"\\n" +"\"`` est une chaîne de deux caractères contenant ``'\\'`` et ``'n'``, tandis " +"que ``\"\\n\"`` est une chaîne contenant un unique caractère : un saut de " +"ligne. Généralement, les motifs seront exprimés en Python à l'aide de " +"chaînes brutes." #: ../Doc/library/re.rst:39 msgid "" @@ -92,14 +92,14 @@ msgid "" msgstr "" "Il est important de noter que la plupart des opérations sur les expressions " "rationnelles sont disponibles comme fonctions au niveau du module et comme " -"méthodes des :ref:`expressions rationnelles compilées `. Les " +"méthodes des :ref:`expressions rationnelles compilées `. Les " "fonctions sont des raccourcis qui ne vous obligent pas à d'abord compiler un " "objet *regex*, mais auxquelles manquent certains paramètres de configuration " "fine." #: ../Doc/library/re.rst:49 msgid "Regular Expression Syntax" -msgstr "Syntaxe des Expressions Rationnelles" +msgstr "Syntaxe des expressions rationnelles" #: ../Doc/library/re.rst:51 msgid "" @@ -146,9 +146,9 @@ msgid "" "further information and a gentler presentation, consult the :ref:`regex-" "howto`." msgstr "" -"Une brève explication sur le format des expressions rationnelles suit. Pour " -"de plus amples informations, et une meilleure présentation, référez-vous au :" -"ref:`regex-howto`." +"Une brève explication sur le format des expressions rationnelles suit. Pour " +"de plus amples informations et une présentation plus simple, référez-vous " +"au :ref:`regex-howto`." #: ../Doc/library/re.rst:69 msgid "" @@ -162,8 +162,8 @@ msgstr "" "Les expressions rationnelles peuvent contenir à la fois des caractères " "spéciaux et ordinaires. Les plus ordinaires, comme ``'A'``, ``'a'`` ou " "``'0'`` sont les expressions rationnelles les plus simples : elles " -"correspondent simplement à elles-mêmes. Vous pouvez concaténer deux " -"caractères ordinaires, donc ``last`` correspond à la chaîne ``'last'``. " +"correspondent simplement à elles-mêmes. Vous pouvez concaténer des " +"caractères ordinaires, ainsi ``last`` correspond à la chaîne ``'last'``. " "(Dans la suite de cette section, nous écrirons les expressions rationnelles " "dans ``ce style spécifique``, généralement sans guillemets, et les chaînes à " "tester ``'entourées de simples guillemets'``.)" @@ -193,7 +193,7 @@ msgid "" msgstr "" "Les caractères de répétition (``*``, ``+``, ``?``, ``{m,n}``, etc.) ne " "peuvent être directement imbriqués. Cela empêche l'ambiguïté avec le suffixe " -"modificateur non gourmand ``?``, et avec les autres modificateurs dans " +"modificateur non gourmand ``?`` et avec les autres modificateurs dans " "d'autres implémentations. Pour appliquer une seconde répétition à une " "première, des parenthèses peuvent être utilisées. Par exemple, l'expression " "``(?:a{6})*`` valide toutes les chaînes composées d'un nombre de caractères " @@ -213,8 +213,8 @@ msgid "" "If the :const:`DOTALL` flag has been specified, this matches any character " "including a newline." msgstr "" -"(Point.) Dans le mode par défaut, il valide tout caractère à l'exception du " -"saut de ligne. Si l'option :const:`DOTALL` a été spécifiée, il valide tout " +"(Point.) Dans le mode par défaut, il valide tout caractère à l'exception du " +"saut de ligne. Si l'option :const:`DOTALL` a été spécifiée, il valide tout " "caractère, saut de ligne compris." #: ../Doc/library/re.rst:98 @@ -226,7 +226,7 @@ msgid "" "(Caret.) Matches the start of the string, and in :const:`MULTILINE` mode " "also matches immediately after each newline." msgstr "" -"(Accent circonflexe.) Valide le début d'une chaîne de caractères, ainsi que " +"(Accent circonflexe.) Valide le début d'une chaîne de caractères, ainsi que " "ce qui suit chaque saut de ligne en mode :const:`MULTILINE`." #: ../Doc/library/re.rst:107 @@ -246,8 +246,8 @@ msgid "" msgstr "" "Valide la fin d'une chaîne de caractères, ou juste avant le saut de ligne à " "la fin de la chaîne, ainsi qu'avant chaque saut de ligne en mode :const:" -"`MULTILINE`. ``foo`` valide à la fois 'foo' et 'foobar', tandis que " -"l'expression rationnelle ``foo$`` ne correspond qu'à 'foo'. Plus " +"`MULTILINE`. ``foo`` valide à la fois 'foo' et 'foobar', tandis que " +"l'expression rationnelle ``foo$`` ne correspond qu'à 'foo'. Plus " "intéressant, chercher ``foo.$`` dans ``'foo1\\nfoo2\\n'`` trouve normalement " "'foo2', mais 'foo1' en mode :const:`MULTILINE` ; chercher un simple ``$`` " "dans ``'foo\\n'`` trouvera deux correspondances (vides) : une juste avant le " @@ -263,9 +263,9 @@ msgid "" "as many repetitions as are possible. ``ab*`` will match 'a', 'ab', or 'a' " "followed by any number of 'b's." msgstr "" -"Implique à l'expression rationnelle résultante de valider 0 répétition ou " -"plus de l'expression qui précède, avec autant de répétitions que possible. " -"``ab*`` validera 'a', 'ab' ou 'a' suivi de n'importe quel nombre de 'b'." +"Fait valider par l'expression rationnelle résultante 0 répétition ou plus de " +"l'expression qui précède, avec autant de répétitions que possible. ``ab*`` " +"validera 'a', 'ab' ou 'a' suivi de n'importe quel nombre de 'b'." #: ../Doc/library/re.rst:117 msgid "``'+'``" @@ -277,9 +277,9 @@ msgid "" "``ab+`` will match 'a' followed by any non-zero number of 'b's; it will not " "match just 'a'." msgstr "" -"Implique à l'expression rationnelle résultante de valider une répétition ou " -"plus de l'expression qui précède. ``ab+`` validera 'a' suivi de n'importe " -"quel nombre non nul de 'b' ; ça ne validera pas la chaîne 'a'." +"Fait valider par l'expression rationnelle résultante 1 répétition ou plus de " +"l'expression qui précède. ``ab+`` validera 'a' suivi de n'importe quel " +"nombre non nul de 'b' ; cela ne validera pas la chaîne 'a'." #: ../Doc/library/re.rst:121 msgid "``'?'``" @@ -290,8 +290,8 @@ msgid "" "Causes the resulting RE to match 0 or 1 repetitions of the preceding RE. " "``ab?`` will match either 'a' or 'ab'." msgstr "" -"Implique à l'expression rationnelle résultante de valider 0 ou 1 répétition " -"de l'expression qui précède. ``ab?`` correspondra à la fois à 'a' et 'ab'." +"Fait valider par l'expression rationnelle résultante 0 ou 1 répétition de " +"l'expression qui précède. ``ab?`` correspondra à 'a' ou 'ab'." #: ../Doc/library/re.rst:130 msgid "``*?``, ``+?``, ``??``" @@ -328,7 +328,7 @@ msgid "" msgstr "" "Spécifie qu'exactement *m* copies de l'expression rationnelle qui précède " "devront être validées ; un nombre plus faible de correspondances empêche " -"l'expression entière de correspondre. Par exemple, ``a{6}`` correspondra " +"l'expression entière de correspondre. Par exemple, ``a{6}`` correspondra " "exactement à six caractères ``'a'``, mais pas à cinq." #: ../Doc/library/re.rst:144 @@ -367,12 +367,11 @@ msgid "" "character string ``'aaaaaa'``, ``a{3,5}`` will match 5 ``'a'`` characters, " "while ``a{3,5}?`` will only match 3 characters." msgstr "" -"Implique à l'expression rationnelle résultante de valider entre *m* et *n* " +"Fait valider par l'expression rationnelle résultante entre *m* et *n* " "répétitions de l'expression qui précède, cherchant à en valider le moins " -"possible. Il s'agit de la version non gourmande du précédent " -"qualificateur. Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, " -"``a{3,5}`` trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en " -"trouvera que 3." +"possible. Il s'agit de la version non gourmande du précédent qualificateur. " +"Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, ``a{3,5}`` " +"trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en trouvera que 3." #: ../Doc/library/re.rst:164 msgid "``'\\'``" @@ -384,9 +383,9 @@ msgid "" "``'*'``, ``'?'``, and so forth), or signals a special sequence; special " "sequences are discussed below." msgstr "" -"Échappe à la fois les caractères spéciaux (permettant d'utiliser des " -"caractères comme ``'*'``, ``'?'`` et autres), ou signale une séquence " -"spéciale ; les séquences spéciales sont décrites ci-dessous." +"Échappe les caractères spéciaux (permettant d’identifier des caractères " +"comme ``'*'``, ``'?'`` et autres) ou signale une séquence spéciale ; les " +"séquences spéciales sont décrites ci-dessous." #: ../Doc/library/re.rst:158 msgid "" @@ -402,11 +401,11 @@ msgstr "" "vous que Python utilise aussi le *backslash* comme une séquence " "d'échappement dans les chaînes littérales ; si la séquence d'échappement " "n'est pas reconnue par le parseur Python, le *backslash* et les caractères " -"qui le suivent sont inclus dans la chaîne renvoyée. Cependant, si Python " -"avait reconnu la séquence, le *backslash* aurait dû être doublé. C'est " -"assez compliqué et difficile à comprendre, c'est pourquoi il est hautement " -"recommandé d'utiliser des chaînes brutes pour tout sauf les expressions les " -"plus simples." +"qui le suivent sont inclus dans la chaîne renvoyée. Cependant, si Python " +"reconnait la séquence, le *backslash* doit être doublé (pour ne plus être " +"reconnu). C'est assez compliqué et difficile à comprendre, c'est pourquoi il " +"est hautement recommandé d'utiliser des chaînes brutes pour tout sauf les " +"expressions les plus simples." #: ../Doc/library/re.rst:196 msgid "``[]``" @@ -414,7 +413,7 @@ msgstr "``[]``" #: ../Doc/library/re.rst:167 msgid "Used to indicate a set of characters. In a set:" -msgstr "Utilisé pour indiquer un ensemble de caractères. Dans un ensemble :" +msgstr "Utilisé pour indiquer un ensemble de caractères. Dans un ensemble :" #: ../Doc/library/re.rst:169 msgid "" @@ -447,7 +446,7 @@ msgid "" "``[(+*)]`` will match any of the literal characters ``'('``, ``'+'``, " "``'*'``, or ``')'``." msgstr "" -"Les caractères spéciaux perdent leur sens à l'intérieur des ensembles. Par " +"Les caractères spéciaux perdent leur sens à l'intérieur des ensembles. Par " "exemple, ``[(+*)]`` validera chacun des caractères littéraux ``'('``, " "``'+'``, ``'*'`` ou ``')'``." @@ -472,12 +471,12 @@ msgid "" "first character in the set." msgstr "" "Les caractères qui ne sont pas dans un intervalle peuvent être trouvés avec " -"l'ensemble complémentaire (:dfn:`complementing`). Si le premier caractère " -"de l'ensemble est ``'^'``, tous les caractères qui *ne sont pas* dans " -"l'ensemble seront validés. Par exemple, ``[^5]`` correspondra à tout " -"caractère autre que ``'5'``, et ``[^^]`` validera n'importe quel caractère " -"excepté ``'^'``. ``^`` n'a pas de sens particulier s'il n'est pas le " -"premier caractère de l'ensemble." +"l'ensemble complémentaire (:dfn:`complementing`). Si le premier caractère de " +"l'ensemble est ``'^'``, tous les caractères qui *ne sont pas* dans " +"l'ensemble seront validés. Par exemple, ``[^5]`` correspondra à tout " +"caractère autre que ``'5'`` et ``[^^]`` validera n'importe quel caractère " +"excepté ``'^'``. ``^`` n'a pas de sens particulier s'il n'est pas le premier " +"caractère de l'ensemble." #: ../Doc/library/re.rst:194 msgid "" @@ -486,9 +485,9 @@ msgid "" "``[]()[{}]`` will both match a parenthesis." msgstr "" "Pour insérer un ``']'`` littéral dans un ensemble, il faut le précéder d'un " -"*backslash* ou le placer au début de l'ensemble. Par exemple, ``[()[\\]" -"{}]`` et ``[]()[{}]`` vont tous deux correspondre à une parenthèse, un " -"crochet ou une accolade." +"*backslash* ou le placer au début de l'ensemble. Par exemple, ``[()[\\]{}]`` " +"et ``[]()[{}]`` vont tous deux correspondre à une parenthèse, un crochet ou " +"une accolade." #: ../Doc/library/re.rst:207 msgid "``'|'``" @@ -552,7 +551,7 @@ msgid "" "rule. Following are the currently supported extensions." msgstr "" "Il s'agit d'une notation pour les extensions (un ``'?'`` suivant une ``'('`` " -"n'a pas de sens autrement). Le premier caractère après le ``'?'`` détermine " +"n'a pas de sens autrement). Le premier caractère après le ``'?'`` détermine " "quel sens donner à l'expression. Les extensions ne créent généralement pas " "de nouveaux groupes ; ``(?P...)`` est la seule exception à la règle. " "Retrouvez ci-dessous la liste des extensions actuellement supportées." @@ -593,7 +592,7 @@ msgid "" "*cannot* be retrieved after performing a match or referenced later in the " "pattern." msgstr "" -"Une version non capturante des parenthèses habituelles. Valide n'importe " +"Une version non capturante des parenthèses habituelles. Valide n'importe " "quelle expression rationnelle à l'intérieur des parenthèses, mais la sous-" "chaîne correspondant au groupe *ne peut pas* être récupérée après l'analyse " "ou être référencée plus loin dans le motif." @@ -623,9 +622,9 @@ msgid "" "P['\"]).*?(?P=quote)`` (i.e. matching a string quoted with either " "single or double quotes):" msgstr "" -"Les groupes nommés peuvent être référencés dans trois contextes. Si le " -"motif est ``(?P['\"]).*?(?P=quote)`` (i.e. correspondant à une chaîne " -"entourée de guillemets simples ou doubles)." +"Les groupes nommés peuvent être référencés dans trois contextes. Si le motif " +"est ``(?P['\"]).*?(?P=quote)`` (i.e. correspondant à une chaîne " +"entourée de guillemets simples ou doubles) :" #: ../Doc/library/re.rst:258 msgid "Context of reference to group \"quote\"" @@ -1415,7 +1414,7 @@ msgstr "" #: ../Doc/library/re.rst:673 ../Doc/library/re.rst:745 #: ../Doc/library/re.rst:761 msgid "Added the optional flags argument." -msgstr "Ajout de l'argument optionnel *flags*" +msgstr "Ajout de l'argument optionnel *flags*." #: ../Doc/library/re.rst:676 msgid "" @@ -2250,8 +2249,8 @@ msgid "" "separate the house number from the street name:" msgstr "" "Le motif ``:?`` trouve les deux points derrière le nom de famille, pour " -"qu'ils n'apparaissent pas dans la liste résultante. Avec un ``maxsplit`` de " -"``4``, nous pourrions séparer le numéro du nom de la rue." +"qu'ils n'apparaissent pas dans la liste résultante. Avec un ``maxsplit`` de " +"``4``, nous pourrions séparer le numéro du nom de la rue :" #: ../Doc/library/re.rst:1328 msgid "Text Munging" diff --git a/library/runpy.po b/library/runpy.po index 7a6d99ee..5a717a81 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -232,7 +232,7 @@ msgstr "" #: ../Doc/library/runpy.rst:169 msgid ":pep:`338` -- Executing modules as scripts" -msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" #: ../Doc/library/runpy.rst:169 ../Doc/library/runpy.rst:172 msgid "PEP written and implemented by Nick Coghlan." diff --git a/library/site.po b/library/site.po index cb611ab2..ec4d95ff 100644 --- a/library/site.po +++ b/library/site.po @@ -276,4 +276,4 @@ msgstr "" #: ../Doc/library/site.rst:252 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Per user site-packages directory" +msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." diff --git a/library/smtpd.po b/library/smtpd.po index 9f97b4ff..d229bf70 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -329,7 +329,7 @@ msgstr "" #: ../Doc/library/smtpd.rst:245 msgid "Command" -msgstr "Command" +msgstr "Commande" #: ../Doc/library/smtpd.rst:245 msgid "Action taken" diff --git a/library/sndhdr.po b/library/sndhdr.po index 05f9ae95..31f53764 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/sndhdr.rst:2 msgid ":mod:`sndhdr` --- Determine type of sound file" -msgstr "" +msgstr ":mod:`sndhdr` --- Détermine le type d'un fichier audio" #: ../Doc/library/sndhdr.rst:10 msgid "**Source code:** :source:`Lib/sndhdr.py`" -msgstr "**Code source :** :source:`Lib/sndhdr.py`" +msgstr "**Code source :** :source:`Lib/sndhdr.py`" #: ../Doc/library/sndhdr.rst:18 msgid "" @@ -41,6 +41,20 @@ msgid "" "the tuple, *bits_per_sample*, will either be the sample size in bits or " "``'A'`` for A-LAW or ``'U'`` for u-LAW." msgstr "" +"Le module :mod:`sndhdr` fournit des fonctions permettant d'essayer de " +"déterminer le type de données audio contenues dans un fichier. Lorsque ces " +"fonctions parviennent à déterminer le format de données, elles renvoient un :" +"func:`~collections.namedtuple`, contenant cinq attributs : (``filetype``, " +"``framerate``, ``nchannels``, ``nframes``, ``sampwidth``). La valeur de " +"*type* indique le format de données parmi ``'aifc'``, ``'aiff'``, ``'au'``, " +"``'hcom'``, ``'sndr'``, ``'sndt'``, ``'voc'``, ``'wav'``, ``'8svx'``, " +"``'sb'``, ``'ub'``, et ``'ul'``. La valeur de *sampling_rate* sera soit la " +"vraie valeur, soit, si elle est inconnue ou compliquée à obtenir, ``0``. De " +"même, *channels* vaut soit le nombre de cannaux soit ``0`` s'il ne peut pas " +"être déterminé ou si la valeur est compliquée à décoder. La valeur de " +"*frames* sera soit le nombre de frames soit ``-1``. Le dernier élément du " +"tuple, *bits_per_sample* sera soit la taille d'un échantillon en bits, soit " +"``'A'`` pour *A-LAW* ou ``'U'`` pour *u-LAW*." #: ../Doc/library/sndhdr.rst:35 msgid "" @@ -48,10 +62,13 @@ msgid "" "`whathdr`. If it succeeds, returns a namedtuple as described above, " "otherwise ``None`` is returned." msgstr "" +"Détermine le type de données audio stockée dans le fichier *filename* en " +"utilisant :func:`whathdr`. Si elle y parvient, le *namedtuple* décrit plus " +"haut est renvoyé, sinon, ``None``." #: ../Doc/library/sndhdr.rst:39 ../Doc/library/sndhdr.rst:49 msgid "Result changed from a tuple to a namedtuple." -msgstr "" +msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." #: ../Doc/library/sndhdr.rst:45 msgid "" @@ -59,3 +76,7 @@ msgid "" "header. The name of the file is given by *filename*. This function returns " "a namedtuple as described above on success, or ``None``." msgstr "" +"Détermine le type de données audio contenue dans un fichier, en se basant " +"sur ses entêtes. Le nom du fichier est donné par *filename*. Cette fonction " +"renvoie un *namedtuple* tel que décrit plus haut, si elle y parvient, sinon " +"``None``." diff --git a/library/socket.po b/library/socket.po index e2f6df08..6f5bad92 100644 --- a/library/socket.po +++ b/library/socket.po @@ -268,7 +268,7 @@ msgstr "" #: ../Doc/library/socket.rst:171 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/socket.rst:175 msgid "A deprecated alias of :exc:`OSError`." diff --git a/library/sqlite3.po b/library/sqlite3.po index 170dd466..d00d9739 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -779,7 +779,7 @@ msgstr "" #: ../Doc/library/sqlite3.rst:725 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/sqlite3.rst:729 msgid "A subclass of :exc:`Exception`." @@ -1139,7 +1139,7 @@ msgstr "" #: ../Doc/library/sqlite3.rst:990 msgid "Multithreading" -msgstr "Multi threads" +msgstr "Fils d'exécution" #: ../Doc/library/sqlite3.rst:992 msgid "" diff --git a/library/statistics.po b/library/statistics.po index 8d607bd9..851571ba 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -472,7 +472,7 @@ msgstr "" #: ../Doc/library/statistics.rst:409 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/statistics.rst:411 msgid "A single exception is defined:" diff --git a/library/stdtypes.po b/library/stdtypes.po index 34442990..5ed9791c 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -42,7 +42,7 @@ msgid "" "rearrange their members in place, and don't return a specific item, never " "return the collection instance itself but ``None``." msgstr "" -"Certaines classes de collection sont mutables. Les méthodes qui ajoutent, " +"Certaines classes de collection sont muables. Les méthodes qui ajoutent, " "retirent, ou réorganisent leurs éléments sur place, et qui ne renvoient pas " "un élément spécifique, ne renvoient jamais l'instance de la collection elle-" "même, mais ``None``." @@ -208,7 +208,7 @@ msgstr "\\(3)" #: ../Doc/library/stdtypes.rst:1092 ../Doc/library/stdtypes.rst:2193 #: ../Doc/library/stdtypes.rst:3294 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/stdtypes.rst:110 msgid "" @@ -1087,7 +1087,7 @@ msgstr "" "Notez que l'exposant est écrit en décimal plutôt qu'en hexadécimal, et qu'il " "donne la puissance de 2 par lequel multiplier le coefficient. Par exemple, " "la chaîne hexadécimale ``0x3.a7p10`` représente le nombre à virgule " -"flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" +"flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" #: ../Doc/library/stdtypes.rst:617 msgid "" @@ -1095,7 +1095,7 @@ msgid "" "string representing the same number::" msgstr "" "L'application de la conversion inverse à ``3740.0`` donne une chaîne " -"hexadécimale différente représentant le même nombre ::" +"hexadécimale différente représentant le même nombre ::" #: ../Doc/library/stdtypes.rst:627 msgid "Hashing of numeric types" @@ -1207,11 +1207,11 @@ msgid "" msgstr "" "Afin de clarifier les règles ci-dessus, voici quelques exemples de code " "Python, équivalent à la fonction de hachage native, pour calculer le hachage " -"d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" +"d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" #: ../Doc/library/stdtypes.rst:730 msgid "Iterator Types" -msgstr "Les types Itérateurs" +msgstr "Les types itérateurs" #: ../Doc/library/stdtypes.rst:738 msgid "" @@ -1311,7 +1311,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:791 msgid "Generator Types" -msgstr "Types Générateurs" +msgstr "Types générateurs" #: ../Doc/library/stdtypes.rst:793 msgid "" @@ -1642,7 +1642,7 @@ msgstr "" "si vous concatennez des :class:`bytes`, vous pouvez aussi utiliser :meth:" "`bytes.join` ou :class:`io.BytesIO`, ou vous pouvez faire les concaténation " "sur place avec un objet :class:`bytearray`. Les objets :class:`bytearray` " -"sont mutables et ont un mécanisme de sur-allocation efficace" +"sont muables et ont un mécanisme de sur-allocation efficace" #: ../Doc/library/stdtypes.rst:965 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" @@ -1683,7 +1683,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:987 msgid "Immutable Sequence Types" -msgstr "Types de Séquences Immuables" +msgstr "Types de séquences immuables" #: ../Doc/library/stdtypes.rst:994 msgid "" @@ -1691,8 +1691,8 @@ msgid "" "not also implemented by mutable sequence types is support for the :func:" "`hash` built-in." msgstr "" -"La seule opération que les types de séquences immutables implémentent qui " -"n'est pas implémentée par les types de séquences mutables est le support de " +"La seule opération que les types de séquences immuables implémentent qui " +"n'est pas implémentée par les types de séquences muables est le support de " "la fonction native :func:`hash`." #: ../Doc/library/stdtypes.rst:998 @@ -1701,7 +1701,7 @@ msgid "" "to be used as :class:`dict` keys and stored in :class:`set` and :class:" "`frozenset` instances." msgstr "" -"Cette implémentation permet d'utiliser des séquences immutables, comme les " +"Cette implémentation permet d'utiliser des séquences immuables, comme les " "instances de :class:`tuple`, en tant que clés de :class:`dict` et stockées " "dans les instances de :class:`set` et :class:`frozenset`." @@ -1715,7 +1715,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1009 msgid "Mutable Sequence Types" -msgstr "Types de séquences mutables" +msgstr "Types de séquences muables" #: ../Doc/library/stdtypes.rst:1016 msgid "" @@ -1724,7 +1724,7 @@ msgid "" "easier to correctly implement these operations on custom sequence types." msgstr "" "Les opérations dans le tableau ci-dessous sont définies sur les types de " -"séquences mutables. La classe de base abstraite :class:`collections.abc." +"séquences muables. La classe de base abstraite :class:`collections.abc." "MutableSequence` est prévue pour faciliter l'implémentation correcte de ces " "opérations sur les types de séquence personnalisées." @@ -1735,7 +1735,7 @@ msgid "" "restrictions imposed by *s* (for example, :class:`bytearray` only accepts " "integers that meet the value restriction ``0 <= x <= 255``)." msgstr "" -"Dans le tableau *s* est une instance d'un type de séquence mutable, *t* est " +"Dans le tableau *s* est une instance d'un type de séquence muable, *t* est " "un objet itérable et *x* est un objet arbitraire qui répond à toutes les " "restrictions de type et de valeur imposées par *s* (par exemple, :class:" "`bytearray` accepte uniquement des nombres entiers qui répondent à la " @@ -1903,7 +1903,7 @@ msgid "" "as :class:`dict` and :class:`set`)" msgstr "" ":meth:`clear` et :meth:`!copy` sont inclues pour la compatibilité avec les " -"interfaces des conteneurs mutables qui ne supportent pas les opérations de " +"interfaces des conteneurs muables qui ne supportent pas les opérations de " "découpage (comme :class:`dict` et :class:`set`)" #: ../Doc/library/stdtypes.rst:1114 @@ -1925,7 +1925,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1127 msgid "Lists" -msgstr "Les listes" +msgstr "Listes" #: ../Doc/library/stdtypes.rst:1131 msgid "" @@ -1933,7 +1933,7 @@ msgid "" "homogeneous items (where the precise degree of similarity will vary by " "application)." msgstr "" -"Les listes sont des séquences mutables, généralement utilisées pour stocker " +"Les listes sont des séquences muables, généralement utilisées pour stocker " "des collections d'éléments homogènes (où le degré de similitude variera " "selon l'usage)." @@ -1995,7 +1995,7 @@ msgid "" "additional method:" msgstr "" "Les listes supportent toutes les opérations des séquences :ref:`communes " -"` et :ref:`mutables `. Les listes " +"` et :ref:`muables `. Les listes " "fournissent également la méthode supplémentaire suivante :" #: ../Doc/library/stdtypes.rst:1162 @@ -2249,7 +2249,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1282 msgid "Range examples::" -msgstr "Exemples avec *range* ::" +msgstr "Exemples avec *range* ::" #: ../Doc/library/stdtypes.rst:1299 msgid "" @@ -2433,7 +2433,7 @@ msgid "" "StringIO` can be used to efficiently construct strings from multiple " "fragments." msgstr "" -"Il n'y a aucun type de chaîne mutable, mais :meth:`str.join` ou :class:`io." +"Il n'y a aucun type de chaîne muable, mais :meth:`str.join` ou :class:`io." "StringIO` peuvent être utilisées pour construire efficacement des chaînes à " "partir de plusieurs fragments." @@ -2628,7 +2628,7 @@ msgstr "" "``'strict'``, ce qui signifie que les erreurs d'encodage soulèvent une :exc:" "`UnicodeError`. Les autres valeurs possibles sont ``'ignore'``, " "``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` et tout autre " -"nom enregistré via :func:`codecs.register_error`, voir la section :ref:" +"nom enregistré *via* :func:`codecs.register_error`, voir la section :ref:" "`error-handlers`. Pour une liste des encodages possibles, voir la section :" "ref:`standard-encodings`." @@ -2698,7 +2698,7 @@ msgid "" msgstr "" "La méthode :meth:`~str.find` ne doit être utilisée que si vous avez besoin " "de connaître la position de *sub*. Pour vérifier si *sub* est une sous " -"chaine ou non, utilisez l'opérateur :keyword:`in` ::" +"chaine ou non, utilisez l'opérateur :keyword:`in` ::" #: ../Doc/library/stdtypes.rst:1585 msgid "" @@ -2947,7 +2947,7 @@ msgstr "" "*chars* est une chaîne spécifiant le jeu de caractères à supprimer. En cas " "d'omission ou ``None``, la valeur par défaut de *chars* permet de supprimer " "des espaces. L'argument *chars* n'est pas un préfixe, toutes les " -"combinaisons de ses valeurs sont supprimées ::" +"combinaisons de ses valeurs sont supprimées ::" #: ../Doc/library/stdtypes.rst:1750 msgid "" @@ -2966,7 +2966,7 @@ msgid "" msgstr "" "Si un seul argument est fourni, ce soit être un dictionnaire faisant " "correspondre des points de code Unicode (nombres entiers) ou des caractères " -"(chaînes de longueur 1) à des points de code Unicode" +"(chaînes de longueur 1) à des points de code Unicode." #: ../Doc/library/stdtypes.rst:1757 msgid "" @@ -3171,7 +3171,7 @@ msgstr "``\\r``" #: ../Doc/library/stdtypes.rst:1885 msgid "Carriage Return" -msgstr "Retour Chariot" +msgstr "Retour chariot" #: ../Doc/library/stdtypes.rst:1887 msgid "``\\r\\n``" @@ -3179,7 +3179,7 @@ msgstr "``\\r\\n``" #: ../Doc/library/stdtypes.rst:1887 msgid "Carriage Return + Line Feed" -msgstr "Retour Chariot + Saut de Ligne" +msgstr "Retour chariot + saut de ligne" #: ../Doc/library/stdtypes.rst:1889 msgid "``\\v`` or ``\\x0b``" @@ -3187,7 +3187,7 @@ msgstr "``\\v`` or ``\\x0b``" #: ../Doc/library/stdtypes.rst:1889 msgid "Line Tabulation" -msgstr "Tabulation Verticale" +msgstr "Tabulation verticale" #: ../Doc/library/stdtypes.rst:1891 msgid "``\\f`` or ``\\x0c``" @@ -3195,7 +3195,7 @@ msgstr "``\\f`` or ``\\x0c``" #: ../Doc/library/stdtypes.rst:1891 msgid "Form Feed" -msgstr "Saut de Page" +msgstr "Saut de page" #: ../Doc/library/stdtypes.rst:1893 msgid "``\\x1c``" @@ -3203,7 +3203,7 @@ msgstr "``\\x1c``" #: ../Doc/library/stdtypes.rst:1893 msgid "File Separator" -msgstr "Séparateur de Fichiers" +msgstr "Séparateur de fichiers" #: ../Doc/library/stdtypes.rst:1895 msgid "``\\x1d``" @@ -3227,7 +3227,7 @@ msgstr "``\\x85``" #: ../Doc/library/stdtypes.rst:1899 msgid "Next Line (C1 Control Code)" -msgstr "Ligne Suivante (code de contrôle C1)" +msgstr "Ligne suivante (code de contrôle C1)" #: ../Doc/library/stdtypes.rst:1901 msgid "``\\u2028``" @@ -3235,7 +3235,7 @@ msgstr "``\\u2028``" #: ../Doc/library/stdtypes.rst:1901 msgid "Line Separator" -msgstr "Séparateur de Ligne" +msgstr "Séparateur de ligne" #: ../Doc/library/stdtypes.rst:1903 msgid "``\\u2029``" @@ -3243,7 +3243,7 @@ msgstr "``\\u2029``" #: ../Doc/library/stdtypes.rst:1903 msgid "Paragraph Separator" -msgstr "Séparateur de Paragraphe" +msgstr "Séparateur de paragraphe" #: ../Doc/library/stdtypes.rst:1908 msgid "``\\v`` and ``\\f`` added to list of line boundaries." @@ -3412,7 +3412,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:2054 msgid "``printf``-style String Formatting" -msgstr "Formattage de chaines à la ``printf``" +msgstr "Formatage de chaines à la ``printf``" #: ../Doc/library/stdtypes.rst:2068 msgid "" @@ -4098,9 +4098,9 @@ msgid "" "mutable>` sequence operations in addition to the common bytes and bytearray " "operations described in :ref:`bytes-methods`." msgstr "" -"Comme les *bytearray* sont mutables, ils prennent en charge les opérations " -"de séquence :ref:`mutables ` en plus des opérations " -"communes de *bytes* et *bytearray* décrites dans :ref:`bytes-methods`." +"Comme les *bytearray* sont muables, ils prennent en charge les opérations de " +"séquence :ref:`muables ` en plus des opérations communes " +"de *bytes* et *bytearray* décrites dans :ref:`bytes-methods`." #: ../Doc/library/stdtypes.rst:2371 msgid "Also see the :ref:`bytearray ` built-in." @@ -4188,7 +4188,7 @@ msgid "" msgstr "" "Les méthodes sur les *bytes* et les *bytearray* n'acceptent pas les chaînes " "comme arguments, tout comme les méthodes sur les chaînes n'acceptent pas les " -"*bytes* comme arguments. Par exemple, vous devez écrire ::" +"*bytes* comme arguments. Par exemple, vous devez écrire ::" #: ../Doc/library/stdtypes.rst:2433 msgid "and::" @@ -4319,7 +4319,7 @@ msgid "" msgstr "" "La méthode :meth:`~bytes.find` ne doit être utilisée que si vous avez besoin " "de connaître la position de *sub*. Pour vérifier si *sub* est présent ou " -"non, utilisez l'opérateur :keyword:`in` ::" +"non, utilisez l'opérateur :keyword:`in` ::" #: ../Doc/library/stdtypes.rst:2522 msgid "" @@ -4540,7 +4540,7 @@ msgstr "" "utilisée avec des caractères ASCII. En cas d’omission ou ``None``, la valeur " "par défaut de *chars* permet de supprimer des espaces ASCII. L’argument " "*chars* n’est pas un préfixe, toutes les combinaisons de ses valeurs sont " -"supprimées ::" +"supprimées ::" #: ../Doc/library/stdtypes.rst:2700 ../Doc/library/stdtypes.rst:2749 #: ../Doc/library/stdtypes.rst:2819 @@ -4990,11 +4990,11 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3325 msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." -msgstr "``b'%s'`` est déprécié, mais ne sera pas retiré des version 3.x." +msgstr "``b'%s'`` est obsolète, mais ne sera pas retiré des version 3.x." #: ../Doc/library/stdtypes.rst:3328 msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." -msgstr "``b'%r'`` est déprécié mais ne sera pas retiré dans Python 3.x." +msgstr "``b'%r'`` est obsolète mais ne sera pas retiré dans Python 3.x." #: ../Doc/library/stdtypes.rst:3338 msgid ":pep:`461`." @@ -5059,7 +5059,7 @@ msgid "" "dimensional slicing will result in a subview::" msgstr "" "Une :class:`memoryview` autorise le découpage et l'indicage de ses données. " -"Découper sur une dimension donnera une sous-vue::" +"Découper sur une dimension donnera une sous-vue ::" #: ../Doc/library/stdtypes.rst:3382 msgid "" @@ -5082,7 +5082,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3391 msgid "Here is an example with a non-byte format::" -msgstr "Voici un exemple avec un autre format que *byte*::" +msgstr "Voici un exemple avec un autre format que *byte* ::" #: ../Doc/library/stdtypes.rst:3403 msgid "" @@ -5091,7 +5091,7 @@ msgid "" msgstr "" "Si l'objet sous-jacent est accessible en écriture, la *memoryview* " "autorisera les assignations de tranches à une dimension. Redimensionner " -"n'est cependant pas autorisé::" +"n'est cependant pas autorisé ::" #: ../Doc/library/stdtypes.rst:3424 msgid "" @@ -5101,7 +5101,7 @@ msgid "" msgstr "" "Les *memoryviews* à une dimension de types hachables (lecture seule) avec " "les formats 'B', 'b', ou 'c' sont aussi hachables. La fonction de hachage " -"est définie tel que ``hash(m) == hash(m.tobytes())``::" +"est définie tel que ``hash(m) == hash(m.tobytes())`` ::" #: ../Doc/library/stdtypes.rst:3436 msgid "" @@ -5146,7 +5146,7 @@ msgid "" "`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" msgstr "" "Pour le sous-ensemble des formats de :mod:`struct` supportés par :meth:" -"`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" +"`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" #: ../Doc/library/stdtypes.rst:3474 msgid "" @@ -5343,7 +5343,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3732 msgid "The size in bytes of each element of the memoryview::" -msgstr "La taille en octets de chaque élément d'une *memoryview*::" +msgstr "La taille en octets de chaque élément d'une *memoryview* ::" #: ../Doc/library/stdtypes.rst:3745 msgid "" @@ -5436,9 +5436,9 @@ msgid "" "of another set." msgstr "" "Il existe actuellement deux types natifs pour les ensembles, :class:`set` " -"et :class:`fronzenset`. Le type :class:`set` est mutable --- son contenu " -"peut changer en utilisant des méthodes comme :meth:`~set.add` et :meth:`~set." -"remove`. Puisqu'il est mutable, il n'a pas de valeur de hachage et ne peut " +"et :class:`fronzenset`. Le type :class:`set` est muable --- son contenu peut " +"changer en utilisant des méthodes comme :meth:`~set.add` et :meth:`~set." +"remove`. Puisqu'il est muable, il n'a pas de valeur de hachage et ne peut " "donc pas être utilisé ni comme clef de dictionnaire ni comme élément d'un " "autre ensemble. Le type :class:`frozenset` est immuable et :term:`hashable` " "--- son contenu ne peut être modifié après sa création, il peut ainsi être " @@ -5727,10 +5727,10 @@ msgid "" "module.)" msgstr "" "Un objet :term:`mapping` fait correspondre des valeurs :term:`hashable` à " -"des objets arbitraires. Les *mappings* sont des objets mutables. Il " -"n'existe pour le moment qu'un type de *mapping* standard, le :dfn:" -"`dictionary`. (Pour les autres conteneurs, voir les types natifs :class:" -"`list`, :class:`set`, and :class:`tuple`, et le module :mod:`collections`.)" +"des objets arbitraires. Les *mappings* sont des objets muables. Il n'existe " +"pour le moment qu'un type de *mapping* standard, le :dfn:`dictionary`. " +"(Pour les autres conteneurs, voir les types natifs :class:`list`, :class:" +"`set`, and :class:`tuple`, et le module :mod:`collections`.)" #: ../Doc/library/stdtypes.rst:4003 msgid "" @@ -5745,11 +5745,11 @@ msgid "" msgstr "" "Les clefs d'un dictionnaire sont *presque* des données arbitraires. Les " "valeurs qui ne sont pas :term:`hashable`, c'est-à-dire qui contiennent les " -"listes, des dictionnaires ou autre type mutable (qui sont comparés par " -"valeur plutôt que par leur identité) ne peuvent pas être utilisées comme " -"clef de dictionnaire. Les types numériques utilisés comme clef obéissent aux " -"règles classiques en ce qui concerne les comparaisons : si deux nombres sont " -"égaux (comme ``1`` et ``1.0``) ils peuvent tous les deux être utilisés pour " +"listes, des dictionnaires ou autre type muable (qui sont comparés par valeur " +"plutôt que par leur identité) ne peuvent pas être utilisées comme clef de " +"dictionnaire. Les types numériques utilisés comme clef obéissent aux règles " +"classiques en ce qui concerne les comparaisons : si deux nombres sont égaux " +"(comme ``1`` et ``1.0``) ils peuvent tous les deux être utilisés pour " "obtenir la même entrée d'un dictionnaire. (Notez cependant que puisque les " "ordinateurs stockent les nombres à virgule flottante sous forme " "d'approximations, il est généralement imprudent de les utiliser comme clefs " @@ -5861,7 +5861,7 @@ msgstr "" "autre opération ni méthode n'appellent :meth:`__missing__`. If :meth:" "`__missing__` n'est pas définie, une exception :exc:`KeyError` est levée. :" "meth:`__missing__` doit être une méthode; ça ne peut être une variable " -"d'instance." +"d'instance ::" #: ../Doc/library/stdtypes.rst:4085 msgid "" @@ -6120,7 +6120,7 @@ msgstr "" "par *items()* ne sont généralement pas traitées comme des ensembles, car " "leurs valeurs ne sont généralement pas uniques.) Pour les vues semblables " "aux ensembles, toutes les opérations définies dans la classe de base " -"abstraite :class:`collections.abc.Set` sont disponnibles (comme ``==``, " +"abstraite :class:`collections.abc.Set` sont disponibles (comme ``==``, " "``<``, ou ``^``)." #: ../Doc/library/stdtypes.rst:4232 @@ -6129,7 +6129,7 @@ msgstr "Exemple d'utilisation de vue de dictionnaire : ::" #: ../Doc/library/stdtypes.rst:4267 msgid "Context Manager Types" -msgstr "Le type Gestionnaire de Contexte" +msgstr "Le type gestionnaire de contexte" #: ../Doc/library/stdtypes.rst:4274 msgid "" @@ -6153,7 +6153,7 @@ msgid "" msgstr "" "Entre dans le contexte à l'exécution, soit se renvoyant lui-même, soit en " "renvoyant un autre objet en lien avec ce contexte. La valeur renvoyée par " -"cette méthode est liée à l'indentifiant donné au :keyword:`as` de " +"cette méthode est liée à l'identifiant donné au :keyword:`as` de " "l'instruction :keyword:`with` utilisant ce gestionnaire de contexte." #: ../Doc/library/stdtypes.rst:4287 @@ -6235,11 +6235,11 @@ msgid "" "management protocol. See the :mod:`contextlib` module for some examples." msgstr "" "Python définit plusieurs gestionnaires de contexte pour faciliter la " -"synchronisation des threads, la fermeture des fichiers ou d'autres objets, " -"et la configuration du contexte arithmétique décimal. Ces types spécifiques " -"ne sont pas traités différement, ils respectement simplement le protocole de " -"gestion du contexte. Voir les examples dans la documentation du module :mod:" -"`contextlib`." +"synchronisation des fils d'exécution, la fermeture des fichiers ou d'autres " +"objets, et la configuration du contexte arithmétique décimal. Ces types " +"spécifiques ne sont pas traités différement, ils respectement simplement le " +"protocole de gestion du contexte. Voir les examples dans la documentation du " +"module :mod:`contextlib`." #: ../Doc/library/stdtypes.rst:4325 msgid "" @@ -6335,7 +6335,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4376 msgid "Classes and Class Instances" -msgstr "Les Classes et Instances de Classes" +msgstr "Les classes et instances de classes" #: ../Doc/library/stdtypes.rst:4378 msgid "See :ref:`objects` and :ref:`class` for these." @@ -6422,7 +6422,7 @@ msgstr "" "attributs à des objets *bound method* est interdit. Toute tentative " "d'affecter un attribut sur un objet *bound method* lèvera une :exc:" "`AttributeError`. Pour affecter l'attribut, vous devrez explicitement " -"l'affecter à sa fonction sous-jascente::" +"l'affecter à sa fonction sous-jascente ::" #: ../Doc/library/stdtypes.rst:4437 ../Doc/library/stdtypes.rst:4465 msgid "See :ref:`types` for more information." @@ -6430,7 +6430,7 @@ msgstr "Voir :ref:`types` pour plus d'information." #: ../Doc/library/stdtypes.rst:4445 msgid "Code Objects" -msgstr "Objets Code" +msgstr "Objets code" #: ../Doc/library/stdtypes.rst:4451 msgid "" @@ -6459,7 +6459,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4471 msgid "Type Objects" -msgstr "Objets Type" +msgstr "Objets type" #: ../Doc/library/stdtypes.rst:4477 msgid "" @@ -6497,7 +6497,7 @@ msgstr "C'est écrit ``None``." #: ../Doc/library/stdtypes.rst:4500 msgid "The Ellipsis Object" -msgstr "L'objet Points de Suspension" +msgstr "L'objet points de suspension" #: ../Doc/library/stdtypes.rst:4502 msgid "" @@ -6655,7 +6655,7 @@ msgid "" "Reference Manual (:ref:`customization`)." msgstr "" "Plus d'informations sur ces méthodes spéciales peuvent être trouvées dans le " -"*Python Reference Manual* (:ref:`customization`)" +"*Python Reference Manual* (:ref:`customization`)." #: ../Doc/library/stdtypes.rst:4621 msgid "" diff --git a/library/string.po b/library/string.po index 3662ad66..c0e92182 100644 --- a/library/string.po +++ b/library/string.po @@ -146,7 +146,7 @@ msgid "" "deprecated." msgstr "" "Passer la chaîne de format comme argument mot-clef *format_string* est " -"déprécié." +"obsolète." #: ../Doc/library/string.rst:104 msgid "" @@ -756,7 +756,7 @@ msgstr "" #: ../Doc/library/string.rst:402 ../Doc/library/string.rst:429 #: ../Doc/library/string.rst:490 msgid "None" -msgstr "*None*" +msgstr "None" #: ../Doc/library/string.rst:402 msgid "The same as ``'s'``." @@ -1086,7 +1086,7 @@ msgstr "Utiliser un formatage propre au type : ::" #: ../Doc/library/string.rst:609 msgid "Nesting arguments and more complex examples::" -msgstr " Arguments imbriqués et des exemples plus complexes : ::" +msgstr "Arguments imbriqués et des exemples plus complexes : ::" #: ../Doc/library/string.rst:643 msgid "Template strings" @@ -1332,7 +1332,7 @@ msgid "" "trailing whitespace are removed, otherwise *sep* is used to split and join " "the words." msgstr "" -" Divise l'argument en mots en utilisant :meth:`str.split`, capitalise chaque " +"Divise l'argument en mots en utilisant :meth:`str.split`, capitalise chaque " "mot en utilisant :meth:`str.capitalize` et assemble les mots capitalisés en " "utilisant :meth:`str.join`. Si le second argument optionnel *sep* est absent " "ou vaut ``None``, les séquences de caractères blancs sont remplacées par un " diff --git a/library/struct.po b/library/struct.po index 46cc52ae..86f4b53f 100644 --- a/library/struct.po +++ b/library/struct.po @@ -257,7 +257,7 @@ msgstr "" #: ../Doc/library/struct.rst:160 ../Doc/library/struct.rst:233 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/struct.rst:162 msgid "" diff --git a/library/subprocess.po b/library/subprocess.po index fde4b5a6..0fab99cf 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -687,9 +687,9 @@ msgid "" "call into." msgstr "" "Le paramètre *preexec_fn* n'est pas sain à utiliser en présence d'autres " -"*threads* dans votre application. Le processus fils pourrait être bloqué " -"(*deadlock*) avant qu'*exec* ne soit appelée. Si vous devez utiliser ce " -"paramètre, gardez son utilisation triviale ! Minimisez le nombre de " +"fils d'exécution dans votre application. Le processus fils pourrait être " +"bloqué (*deadlock*) avant qu'*exec* ne soit appelée. Si vous devez utiliser " +"ce paramètre, gardez son utilisation triviale ! Minimisez le nombre de " "bibliothèques que vous y appelez." #: ../Doc/library/subprocess.rst:430 @@ -840,7 +840,7 @@ msgstr "Ajout du support des gestionnaires de contexte." #: ../Doc/library/subprocess.rst:507 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/subprocess.rst:509 msgid "" @@ -1538,7 +1538,7 @@ msgstr "Remplacer :func:`os.system`" #: ../Doc/library/subprocess.rst:999 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/subprocess.rst:1001 msgid "Calling the program through the shell is usually not required." diff --git a/library/sunau.po b/library/sunau.po index 8b4eb0eb..33ae399b 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -43,7 +43,7 @@ msgstr "" #: ../Doc/library/sunau.rst:21 msgid "Contents" -msgstr "" +msgstr "Sommaire" #: ../Doc/library/sunau.rst:23 msgid "magic word" diff --git a/library/superseded.po b/library/superseded.po index da1243f4..68a5664c 100644 --- a/library/superseded.po +++ b/library/superseded.po @@ -25,5 +25,5 @@ msgid "" "The modules described in this chapter are deprecated and only kept for " "backwards compatibility. They have been superseded by other modules." msgstr "" -"Les modules documentés ici sont dépréciés et ne sont gardés que pour la " +"Les modules documentés ici sont obsolètes et ne sont gardés que pour la " "rétro-compatibilité. Ils ont été remplacés par d'autres modules." diff --git a/library/symbol.po b/library/symbol.po index 4ee4dbcb..d4046cca 100644 --- a/library/symbol.po +++ b/library/symbol.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/symbol.rst:2 msgid ":mod:`symbol` --- Constants used with Python parse trees" -msgstr "" +msgstr ":mod:`symbol` --- Constantes utilisées dans les Arbres Syntaxiques" #: ../Doc/library/symbol.rst:9 msgid "**Source code:** :source:`Lib/symbol.py`" -msgstr "**Code source :** :source:`Lib/symbol.py`" +msgstr "**Code source :** :source:`Lib/symbol.py`" #: ../Doc/library/symbol.rst:13 msgid "" @@ -33,10 +33,16 @@ msgid "" "grammar. The specific numeric values which the names map to may change " "between Python versions." msgstr "" +"Ce module fournit des constantes représentant les valeurs numériques des " +"nœuds internes du parseur. Contrairement à la plupart des constantes en " +"Python, celles-ci utilisent des noms en minuscules. Référez-vous au fichier :" +"file:`Grammar/Grammar` dans la distribution de Python pour les définitions " +"de ces noms dans le contexte de la grammaire du langage. La valeur numérique " +"correpondant au nom peut changer d'une version de Python à l'autre." #: ../Doc/library/symbol.rst:20 msgid "This module also provides one additional data object:" -msgstr "" +msgstr "Ce module fournit aussi ces objets :" #: ../Doc/library/symbol.rst:25 msgid "" @@ -44,3 +50,6 @@ msgid "" "module back to name strings, allowing more human-readable representation of " "parse trees to be generated." msgstr "" +"Dictionnaire faisant correpondre les valeurs numériques des constantes " +"définies dans ce module à leurs noms, permettant de générer une " +"représentation plus humaine des arbres syntaxiques." diff --git a/library/sys.po b/library/sys.po index f841b10c..98c8294f 100644 --- a/library/sys.po +++ b/library/sys.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" -msgstr ":mod:`sys` --- Paraètres et fonctions propres à des systèmes" +msgstr ":mod:`sys` --- Paramètres et fonctions propres à des systèmes" #: ../Doc/library/sys.rst:9 msgid "" @@ -28,7 +28,7 @@ msgid "" msgstr "" "Ce module fournit un accès à certaines variables utilisées et maintenues par " "l'interpréteur, et à des fonctions interagissant fortement avec ce dernier. " -"Ce module est toujours disponnible." +"Ce module est toujours disponible." #: ../Doc/library/sys.rst:16 msgid "" @@ -119,7 +119,7 @@ msgid "" msgstr "" "Un *tuple* de chaînes de caractères donnant les noms de tous les modules " "compilés dans l'interpréteur Python. (Cette information n'est pas " -"disponnible autremment --- ```modules.keys()`` liste seulement les modules " +"disponible autremment --- ```modules.keys()`` liste seulement les modules " "importés.)" #: ../Doc/library/sys.rst:77 @@ -162,10 +162,10 @@ msgid "" "Note that functions in the :mod:`traceback` module can build the call stack " "given such a frame." msgstr "" -"Renvoie un dictionnaire faisant correspondre chaque identifiant de *thread* " -"à la *stack frame* actuellement active pour ces *threads* au moment où la " -"fonction est appelée. Notez que les fonctions du module :mod:`traceback` " -"peuvent construire une *call stack* à partir d'une telle *frame*." +"Renvoie un dictionnaire faisant correspondre chaque identifiant de fil " +"d'exécution à la *stack frame* actuellement active pour ces fils d'exécution " +"au moment où la fonction est appelée. Notez que les fonctions du module :mod:" +"`traceback` peuvent construire une *call stack* à partir d'une telle *frame*." #: ../Doc/library/sys.rst:103 msgid "" @@ -175,11 +175,12 @@ msgid "" "deadlocked thread may bear no relationship to that thread's current activity " "by the time calling code examines the frame." msgstr "" -"N'ayant pas besoin de la coopération des *threads* bloqués, cette fonction " -"est très utile pour déboguer un *deadlock*. Aussi, les *call stack* de ces " -"threads ne changeront pas tant qu'ils seront bloqués. La *frame* renvoyée " -"pour un *thread* non bloqué peut ne plus être liée à l'activitée courante du " -"*thread* au moment où le code appelant examine la frame.\n" +"N'ayant pas besoin de la coopération des fils d'exécution bloqués, cette " +"fonction est très utile pour déboguer un *deadlock*. Aussi, les *call stack* " +"de ces fils d'exécution ne changeront pas tant qu'ils seront bloqués. La " +"*frame* renvoyée pour un fil d'exécution non bloqué peut ne plus être liée à " +"l'activitée courante du fil d'exécution au moment où le code appelant " +"examine la frame." #: ../Doc/library/sys.rst:114 msgid "" @@ -207,7 +208,9 @@ msgstr "" #: ../Doc/library/sys.rst:130 msgid "Integer specifying the handle of the Python DLL. Availability: Windows." -msgstr "Nombre entier spécifiant le descripteur de la DLL Python sur Windows," +msgstr "" +"Nombre entier spécifiant le descripteur de la DLL Python. Disponnibilité : " +"Windows." #: ../Doc/library/sys.rst:135 msgid "" @@ -238,7 +241,7 @@ msgstr "" #: ../Doc/library/sys.rst:145 msgid "Pseudo-code::" -msgstr "Pseudo-code::" +msgstr "Pseudo-code ::" #: ../Doc/library/sys.rst:165 msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." @@ -311,13 +314,13 @@ msgid "" msgstr "" "Cette fonction renvoie un *tuple* de trois valeurs qui donnent des " "informations sur l'exception actuellement traitée. L'information renvoyée " -"est spécifique à la fois au *thread* courant et à la *stack frame* courante. " -"Si la *stack frame* counrante ne traite pas d'exception, l'information est " -"extraite de la *stack frame* parente, puis celle appelante, et ainsi de " -"suite jusqu'à trouver une *stack frame* traitant une exception. Ici, " -"\"traiter une exception\" signifie \"exécute une clause *except*\". Pour " -"chaque *stack frame*, seule l'information à propos d'une exception " -"actuellemnt traitée est accessible." +"est spécifique à la fois au fil d'exécution courant et à la *stack frame* " +"courante. Si la *stack frame* counrante ne traite pas d'exception, " +"l'information est extraite de la *stack frame* parente, puis celle " +"appelante, et ainsi de suite jusqu'à trouver une *stack frame* traitant une " +"exception. Ici, \"traiter une exception\" signifie \"exécute une clause " +"*except*\". Pour chaque *stack frame*, seule l'information à propos d'une " +"exception actuellemnt traitée est accessible." #: ../Doc/library/sys.rst:212 msgid "" @@ -368,7 +371,7 @@ msgid "" msgstr "" "Si un :ref:`environment virtuel ` est actif, cette valeur sera " "modifiée par ``site.py`` pour pointer vers l'environnement virtuel. La " -"valeur d'origine sera toujours disponnible via :data:`base_exec_prefix`." +"valeur d'origine sera toujours disponible via :data:`base_exec_prefix`." #: ../Doc/library/sys.rst:242 msgid "" @@ -418,8 +421,8 @@ msgid "" "intercepted." msgstr "" "Puisque la fonction :func:`exit` ne fait \"que\" lever une exception, elle " -"ne fera quiter le processus que si elle est appelée depuis le *thread* " -"principal, et que l'exception n'est pas interceptée." +"ne fera quiter le processus que si elle est appelée depuis le fil " +"d'exécution principal, et que l'exception n'est pas interceptée." #: ../Doc/library/sys.rst:275 msgid "" @@ -737,7 +740,7 @@ msgstr "" "L'attribut :attr:`sys.float_info.dig` nécessite plus d'explications : Si " "``s`` est une chaîne représentant un nombre décimal avec au plus :attr:`sys." "float_info.dig` chiffres significatifs, alors, convertir ``s`` en un nombre " -"à virgule flottante puis à nouveau en chaîne redonnera la même valeure." +"à virgule flottante puis à nouveau en chaîne redonnera la même valeure ::" #: ../Doc/library/sys.rst:367 msgid "" @@ -906,7 +909,7 @@ msgid "" "garbage collector." msgstr "" ":func:`getsizeof` appelle la méthode ``__sizeof__`` de l'objet, et s'il est " -"géré par lui, ajoute le surcût du ramasse-miettes." +"géré par lui, ajoute le surcoût du ramasse-miettes." #: ../Doc/library/sys.rst:478 msgid "" @@ -968,7 +971,7 @@ msgstr "" "La fonction :func:`gettrace` ne sert que pour implémenter des débuggeers, " "des profilers, outils d'analyse de couverture, etc…. Son comportement dépend " "de l'implémentation et non du langage, elle n'est donc pas forcément " -"disponnible dans toutes les implémentations de Python." +"disponible dans toutes les implémentations de Python." #: ../Doc/library/sys.rst:530 msgid "" @@ -1214,8 +1217,7 @@ msgid "" msgstr "" "Un objet contenant des informations sur l'implémentation de la version " "actuelle de l'interpréteur Python. Les attributs suivants existent " -"obligatoirement sur toutes les implémentations Python.\n" -"\n" +"obligatoirement sur toutes les implémentations Python." #: ../Doc/library/sys.rst:654 msgid "" @@ -1741,12 +1743,13 @@ msgid "" msgstr "" "Défini l'\"intervalle de vérification\" de l'interpréteur. Ce nombre entier " "détermine la fréquence à laquelle l'interpréteur effectue des tâches " -"périodiques tels que la commutation de threads et la gestion de signaux. La " -"valeur par défaut est ``100``, ce qui signifie que le contrôle est effectué " -"toutes les 100 instructions virtuelles Python. L'augmenter peut améliorer " -"les performances des programmes utilisant des threads. Le paramétrer à une " -"valeur inférieure ou égale à zéro permet d'effectuer ces tâches à chaque " -"instruction virtuelle, maximisant ainsi la réactivité mais aussi son surcoût." +"périodiques tels que la commutation de fil d'exécution et la gestion de " +"signaux. La valeur par défaut est ``100``, ce qui signifie que le contrôle " +"est effectué toutes les 100 instructions virtuelles Python. L'augmenter peut " +"améliorer les performances des programmes utilisant des fils d'exécution. " +"Le paramétrer à une valeur inférieure ou égale à zéro permet d'effectuer ces " +"tâches à chaque instruction virtuelle, maximisant ainsi la réactivité mais " +"aussi son surcoût." #: ../Doc/library/sys.rst:946 msgid "" @@ -1755,8 +1758,8 @@ msgid "" "`setswitchinterval` instead." msgstr "" "Cette fonction n'a plus aucun effet : La logique interne de commutation de " -"threads et de gestion des tâches asynchrones ayant été réécrite. Utilisez :" -"func:`setswitchinterval` à la place." +"fils d'exécution et de gestion des tâches asynchrones ayant été réécrite. " +"Utilisez :func:`setswitchinterval` à la place." #: ../Doc/library/sys.rst:954 msgid "" @@ -1853,13 +1856,13 @@ msgid "" "the operating system's decision. The interpreter doesn't have its own " "scheduler." msgstr "" -"Configure l'intervalle de bascule de thread de l'interpréteur (en secondes). " -"Ce nombre à virgule flottante détermine la durée idéale allouée aux threads " -"en cour d'exécution (durée appelée *timeslices*). Notez que la durée " -"observée peut être plus grande, typiquement si des fonctions ou méthodes " -"prennant beaucoup de temps sont utilisées. Aussi, le choix du *thread* " -"prennant la main à la fin de l'intervalle revient au système d'exploitation. " -"L'interpréteur n'a pas son propre ordonnanceur." +"Configure l'intervalle de bascule des fils d'exécution de l'interpréteur (en " +"secondes). Ce nombre à virgule flottante détermine la durée idéale allouée " +"aux fils d'exécution en cour d'exécution (durée appelée *timeslices*). Notez " +"que la durée observée peut être plus grande, typiquement si des fonctions ou " +"méthodes prennant beaucoup de temps sont utilisées. Aussi, le choix du fil " +"d'exécution prennant la main à la fin de l'intervalle revient au système " +"d'exploitation. L'interpréteur n'a pas son propre ordonnanceur." #: ../Doc/library/sys.rst:1019 msgid "" @@ -1869,10 +1872,10 @@ msgid "" "`settrace` for each thread being debugged." msgstr "" "Définit la fonction de traçage du système, qui vous permet d'implémenter un " -"débugger de code source Python en Python. Cette fonction est locale au " -"*thread* courant. Pour qu'un débugger puisse gérer plusieurs *threads*, il " -"doit enregistrer sa fonction en appelant :func:`settrace` pour chaque thread " -"qu'il souhaite surveiller." +"débugger de code source Python en Python. Cette fonction est locale au fil " +"d'exécution courant. Pour qu'un débugger puisse gérer plusieurs fils " +"d'exécution, il doit enregistrer sa fonction en appelant :func:`settrace` " +"pour chaque fil d'exécution qu'il souhaite surveiller." #: ../Doc/library/sys.rst:1024 msgid "" @@ -2043,7 +2046,7 @@ msgid "" "func:`types.coroutine` or :func:`asyncio.coroutine` will not be intercepted)." msgstr "" "Permet d'intercepter la création de :term:`coroutine` (uniquement celles " -"créés via :keyword:`aync def`, les générateurs décorés par :func:`types." +"créés via :keyword:`async def`, les générateurs décorés par :func:`types." "coroutine` ou :func:`asyncio.coroutine` ne seront pas interceptés)." #: ../Doc/library/sys.rst:1104 @@ -2214,7 +2217,7 @@ msgid "" "implementation." msgstr "" "Une :term:`struct sequence` contenant des informations sur l'implémentation " -"des *threads*." +"des fils d'exécution." #: ../Doc/library/sys.rst:1209 msgid ":const:`name`" @@ -2222,19 +2225,19 @@ msgstr ":const:`name`" #: ../Doc/library/sys.rst:1209 msgid "Name of the thread implementation:" -msgstr "Nom de l'implémentation des *threads*:" +msgstr "Nom de l'implémentation des fils d'exécution :" #: ../Doc/library/sys.rst:1211 msgid "``'nt'``: Windows threads" -msgstr "``'nt'``: *Threads* Windows" +msgstr "``'nt'``: Fils d'exécution Windows" #: ../Doc/library/sys.rst:1212 msgid "``'pthread'``: POSIX threads" -msgstr "``'pthread'``: *Threads* POSIX" +msgstr "``'pthread'``: Fils d'exécution POSIX" #: ../Doc/library/sys.rst:1213 msgid "``'solaris'``: Solaris threads" -msgstr "``'solaris'``: *Threads* Solaris" +msgstr "``'solaris'``: Fils d'exécution Solaris" #: ../Doc/library/sys.rst:1215 msgid ":const:`lock`" @@ -2266,8 +2269,8 @@ msgid "" "Name and version of the thread library. It is a string, or ``None`` if these " "informations are unknown." msgstr "" -"Nom et version de l'implémentation des *threads*, c'est une chaîne, ou " -"``None`` si ces informations sont inconnues." +"Nom et version de l'implémentation des fils d'exécution, c'est une chaîne, " +"ou ``None`` si ces informations sont inconnues." #: ../Doc/library/sys.rst:1231 msgid "" diff --git a/library/text.po b/library/text.po index 285dc9b4..d0530da0 100644 --- a/library/text.po +++ b/library/text.po @@ -18,13 +18,16 @@ msgstr "" #: ../Doc/library/text.rst:6 msgid "Text Processing Services" -msgstr "" +msgstr "Services de Manipulation de Texte" #: ../Doc/library/text.rst:8 msgid "" "The modules described in this chapter provide a wide range of string " "manipulation operations and other text processing services." msgstr "" +"Les modules décrits dans ce chapitre fournissent un large ensemble " +"d'opérations de manipulation sur les chaînes de caractères et le texte en " +"général." #: ../Doc/library/text.rst:11 msgid "" @@ -32,3 +35,6 @@ msgid "" "highly relevant to text processing. In addition, see the documentation for " "Python's built-in string type in :ref:`textseq`." msgstr "" +"Le module :mod:`codecs` documenté dans :ref:`binaryservices` est aussi très " +"pertinent pour la manipulation de texte. Consultez aussi la documentation du " +"type *str* natif Python dans :ref:`textseq`." diff --git a/library/time.po b/library/time.po index d601f1f6..7206b222 100644 --- a/library/time.po +++ b/library/time.po @@ -665,7 +665,7 @@ msgstr "Un caractère ``'%'`` littéral." #: ../Doc/library/time.rst:458 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/time.rst:461 msgid "" diff --git a/library/tk.po b/library/tk.po index 42c141d8..f3dd497a 100644 --- a/library/tk.po +++ b/library/tk.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/tk.rst:5 msgid "Graphical User Interfaces with Tk" -msgstr "" +msgstr "Interfaces Utilisateur Graphiques avec Tk" #: ../Doc/library/tk.rst:13 msgid "" @@ -27,6 +27,10 @@ msgid "" "programmers using the :mod:`tkinter` package, and its extension, the :mod:" "`tkinter.tix` and the :mod:`tkinter.ttk` modules." msgstr "" +"Tk/Tcl fait depuis lontemps partie intégrante de Python. Il fournit un jeu " +"d'outils robustes et indépendants de la plateforme pour gérer des fenêtres. " +"Disponible aux développeurs via le paquet :mod:`tkinter` et ses extensions, " +"les modules :mod:`tkinter.tix` et :mod:`tkinter.ttk`." #: ../Doc/library/tk.rst:18 msgid "" @@ -37,6 +41,13 @@ msgid "" "classes. In addition, the internal module :mod:`_tkinter` provides a " "threadsafe mechanism which allows Python and Tcl to interact." msgstr "" +"Le paquet :mod:`tkinter` est une fine couche orientée objet au dessus de Tcl/" +"Tk. Pour utiliser le module :mod:`tkinter`, vous n'avez pas à écrire de code " +"Tcl, mais vous devrez consulter la documentation de Tk, et parfois la " +"documentation de Tcl. Le module :mod:`tkinter` est un ensemble de surcouches " +"implémentant les *widgets* Tk en classes Python. De plus, le module interne :" +"mod:`_tkinter` fournit un méchanisme robuste permettant à des fils " +"d'exécution Python et Tcl d'interagir." #: ../Doc/library/tk.rst:25 msgid "" @@ -48,3 +59,11 @@ msgid "" "GUI libraries that you could be interested in. For more information about " "alternatives, see the :ref:`other-gui-packages` section." msgstr "" +"Les avantages de :mod:`tkinter` sont sa rapidité, et qu'il est généralement " +"fourni nativement avec Python. Bien que sa documentation soit mauvaise, " +"d'autres ressources existent : des références, tutoriaux, livres, … Le " +"module :mod:`tkinter` est aussi célèbre pour son aspect vieillot, cependant " +"il à été grandement amélioré depuis Tk 8.5. Néanmoins, il existe bien " +"d'autres bibliothèques d'interfaces graphiques qui pourraient vous " +"intéresser. Pour plus d'informations sur les alternatives, consultez le " +"chapitre :ref:`other-gui-packages`." diff --git a/library/tkinter.po b/library/tkinter.po index c7737b49..23785d37 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -375,7 +375,7 @@ msgstr "" #: ../Doc/library/tkinter.rst:231 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/tkinter.rst:233 msgid "" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index 12032b96..c9f78918 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/tkinter.scrolledtext.rst:2 msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" -msgstr "" +msgstr ":mod:`tkinter.scrolledtext` --- Gadget texte avec barre de défilement" #: ../Doc/library/tkinter.scrolledtext.rst:10 msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/tkinter/scrolledtext.py`" #: ../Doc/library/tkinter.scrolledtext.rst:14 msgid "" @@ -32,6 +32,12 @@ msgid "" "is a lot easier than setting up a text widget and scroll bar directly. The " "constructor is the same as that of the :class:`tkinter.Text` class." msgstr "" +"Le module :mod:`tkinter.scrolledtext` fournit une classe, de même nom, " +"implémentant un simple gadget texte avec une barre de défilement verticale, " +"configuré \"pour faire ce qu'on attend de lui\". Utiliser :class:" +"`ScrolledText` est beaucoup plus simple que configurer un gadget texte et " +"une barre de défilement. Le constructeur est le même que celui de la classe :" +"class:`tkinter.Text`." #: ../Doc/library/tkinter.scrolledtext.rst:20 msgid "" @@ -41,17 +47,26 @@ msgid "" "`ScrolledText` widget to be used directly to achieve most normal geometry " "management behavior." msgstr "" +"Le gadget texte et la barre de défilement sont regroupés dans une :class:" +"`Frame`, et les méthodes gestionnaires de géométrie :class:`Grid` et :class:" +"`Pack` sont récupérées de l'objet :class:`Frame`. L'objet :class:" +"`ScrolledText` a donc tous les attributs classiques pour la gestion de la " +"géométrie." #: ../Doc/library/tkinter.scrolledtext.rst:25 msgid "" "Should more specific control be necessary, the following attributes are " "available:" msgstr "" +"Si un contrôle plus fin est nécessaire, les attributs suivants sont " +"disponibles :" #: ../Doc/library/tkinter.scrolledtext.rst:31 msgid "The frame which surrounds the text and scroll bar widgets." msgstr "" +"Le cadre (objet *Frame*) qui englobe le gadget texte et le gadget de la " +"barre de défilement." #: ../Doc/library/tkinter.scrolledtext.rst:36 msgid "The scroll bar widget." -msgstr "" +msgstr "Le gadget de la barre de défilement." diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index df307044..680ab845 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -1280,7 +1280,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:831 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/tkinter.ttk.rst:833 msgid "" diff --git a/library/token.po b/library/token.po index cdf86af4..04656e16 100644 --- a/library/token.po +++ b/library/token.po @@ -45,6 +45,9 @@ msgid "" "module back to name strings, allowing more human-readable representation of " "parse trees to be generated." msgstr "" +"Dictionnaire faisant correpondre les valeurs numériques des constantes " +"définies dans ce module à leurs noms, permettant de générer une " +"représentation plus humaine des arbres syntaxiques." #: ../Doc/library/token.rst:32 msgid "Return true for terminal token values." diff --git a/library/tokenize.po b/library/tokenize.po index cbdd5127..e0671515 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/tokenize.rst:2 msgid ":mod:`tokenize` --- Tokenizer for Python source" -msgstr "" +msgstr ":mod:`tokenize` --- Analyseur lexical de Python" #: ../Doc/library/tokenize.rst:10 msgid "**Source code:** :source:`Lib/tokenize.py`" -msgstr "**Code source :** :source:`Lib/tokenize.py`" +msgstr "**Code source :** :source:`Lib/tokenize.py`" #: ../Doc/library/tokenize.rst:14 msgid "" @@ -31,6 +31,10 @@ msgid "" "tokens as well, making it useful for implementing \"pretty-printers,\" " "including colorizers for on-screen displays." msgstr "" +"Le module :mod:`tokenize` fournit un analyseur lexical pour Python, " +"implementé en Python. L'analyseur de ce module renvoie les commentaire sous " +"forme de *token*, se qui le rend intéressant pour implementer des *pretty-" +"printers*, typiquement pour faire de la coloration syntaxique." #: ../Doc/library/tokenize.rst:19 msgid "" @@ -42,11 +46,11 @@ msgstr "" #: ../Doc/library/tokenize.rst:25 msgid "Tokenizing Input" -msgstr "" +msgstr "Analyse Lexicale" #: ../Doc/library/tokenize.rst:27 msgid "The primary entry point is a :term:`generator`:" -msgstr "" +msgstr "Le point d'entrée principal est un :term:`générateur ` :" #: ../Doc/library/tokenize.rst:31 msgid "" @@ -55,6 +59,10 @@ msgid "" "IOBase.readline` method of file objects. Each call to the function should " "return one line of input as bytes." msgstr "" +"Le générateur :func:`.tokenize` prend un argument *readline* qui doit être " +"un objet appelable exposant la meme interface que la méthode :meth:`io." +"IOBase.readline` des objets fichiers. Chaque appel a la fonction doit " +"renvoyer une ligne sous forme de *bytes*." #: ../Doc/library/tokenize.rst:36 msgid "" @@ -67,6 +75,14 @@ msgid "" "returned as a :term:`named tuple` with the field names: ``type string start " "end line``." msgstr "" +"Le générateur fournit des 5-uplets contenants : le type du *token*, sa " +"chaîne, un 2-uplet d'entiers ``(srow, scol)`` indiquant la ligne et la " +"colonne où le *token* commence, un 2-uplet d'entiers ``(erow, ecol)`` " +"indiquant la ligne et la colonne où il se termine, puis la ligne dans " +"laquelle il a été trouvé. La ligne donnée (le dernier élément du *tuple*) " +"est la ligne \"logique\", les *continuation lines* étant incluses. Le " +"*tuple* est renvoyé sous forme de :term:`named tuple` dont les noms sont : " +"``type string start end line``." #: ../Doc/library/tokenize.rst:45 msgid "" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index e2eccd7f..2f16a954 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -666,4 +666,4 @@ msgstr "Exemples ::" #: ../Doc/library/tracemalloc.rst:635 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" diff --git a/library/tty.po b/library/tty.po index 7ad20815..407a33fd 100644 --- a/library/tty.po +++ b/library/tty.po @@ -18,26 +18,29 @@ msgstr "" #: ../Doc/library/tty.rst:2 msgid ":mod:`tty` --- Terminal control functions" -msgstr "" +msgstr ":mod:`tty` --- Fonctions de gestion du terminal" #: ../Doc/library/tty.rst:11 msgid "**Source code:** :source:`Lib/tty.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/tty.py`" #: ../Doc/library/tty.rst:15 msgid "" "The :mod:`tty` module defines functions for putting the tty into cbreak and " "raw modes." msgstr "" +"Le module :mod:`tty` expose des fonctions permettant de mettre le *tty* en " +"mode *cbreak* ou *raw*." #: ../Doc/library/tty.rst:18 msgid "" "Because it requires the :mod:`termios` module, it will work only on Unix." msgstr "" +"Puisqu'il a besoin du module :mod:`termios`, il ne fonctionnera que sur Unix." #: ../Doc/library/tty.rst:20 msgid "The :mod:`tty` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`tty` définit les fonctions suivantes :" #: ../Doc/library/tty.rst:25 msgid "" @@ -45,6 +48,8 @@ msgid "" "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." "tcsetattr`." msgstr "" +"Définit le mode du descripteur de fichier *fd* à *row*. Par défaut, *when* " +"vaut :const:`termios.TCSAFLUSH`, et est passé à :func:`termios.tcsetattr`." #: ../Doc/library/tty.rst:32 msgid "" @@ -52,11 +57,14 @@ msgid "" "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." "tcsetattr`." msgstr "" +"Définit le mode du descripteur de fichier *fd* à *cbreak*. *when* vaut :" +"const:`termios.TCSAFLUSH` par défaut, et est passé à :func:`termios." +"tcsetattr`." #: ../Doc/library/tty.rst:39 msgid "Module :mod:`termios`" -msgstr "" +msgstr "Module :mod:`termios`" #: ../Doc/library/tty.rst:40 msgid "Low-level terminal control interface." -msgstr "" +msgstr "Interface bas niveau de gestion du terminal." diff --git a/library/types.po b/library/types.po index f81b37e3..c0e2afcd 100644 --- a/library/types.po +++ b/library/types.po @@ -99,11 +99,12 @@ msgstr "" #: ../Doc/library/types.rst:63 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr "" +msgstr ":pep:`3115` - Méta-classes dans Python 3000" #: ../Doc/library/types.rst:64 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" +"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" #: ../Doc/library/types.rst:68 msgid "Standard Interpreter Types" diff --git a/library/undoc.po b/library/undoc.po index aa06a751..1848c671 100644 --- a/library/undoc.po +++ b/library/undoc.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/undoc.rst:5 msgid "Undocumented Modules" -msgstr "" +msgstr "Modules non Documentés" #: ../Doc/library/undoc.rst:7 msgid "" @@ -26,6 +26,9 @@ msgid "" "should be documented. Feel free to contribute documentation for them! " "(Send via email to docs@python.org.)" msgstr "" +"Voici un rapide survol des modules actuellement non documentés, mais qui " +"devraient l'être. N'hésitez pas à contribuer à leur documentation ! (En " +"anglais, par email, à docs@python.org.)" #: ../Doc/library/undoc.rst:11 msgid "" @@ -33,20 +36,25 @@ msgid "" "Fredrik Lundh; the specific contents of this chapter have been substantially " "revised." msgstr "" +"L'idée de lister les modules à documenter vient d'un message de Fredrik " +"Lundh. Depuis, le contenu de ce chapitre à pu être mis à jour." #: ../Doc/library/undoc.rst:17 msgid "Platform specific modules" -msgstr "" +msgstr "Modules spécifiques à une plateforme" #: ../Doc/library/undoc.rst:19 msgid "" "These modules are used to implement the :mod:`os.path` module, and are not " "documented beyond this mention. There's little need to document these." msgstr "" +"Ces modules sont utilisés pour implémenter le module :mod:`os.path`, et " +"n'ont pas plus de documentation. Le besoin de les documenter ne se fait pas " +"réelement sentir." #: ../Doc/library/undoc.rst:23 msgid ":mod:`ntpath`" -msgstr "" +msgstr ":mod:`ntpath`" #: ../Doc/library/undoc.rst:23 msgid "" @@ -55,8 +63,8 @@ msgstr "" #: ../Doc/library/undoc.rst:25 msgid ":mod:`posixpath`" -msgstr "" +msgstr ":mod:`posixpath`" #: ../Doc/library/undoc.rst:26 msgid "--- Implementation of :mod:`os.path` on POSIX." -msgstr "" +msgstr "--- Implementation du module :mod:`os.path` pour les systèmes POSIX." diff --git a/library/urllib.error.po b/library/urllib.error.po index 811750db..cae3a324 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -19,10 +19,11 @@ msgstr "" #: ../Doc/library/urllib.error.rst:2 msgid ":mod:`urllib.error` --- Exception classes raised by urllib.request" msgstr "" +":mod:`urllib.error` --- Classes d'exceptions levées par *urllib.request*" #: ../Doc/library/urllib.error.rst:10 msgid "**Source code:** :source:`Lib/urllib/error.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/urllib/error.py`" #: ../Doc/library/urllib.error.rst:14 msgid "" @@ -30,29 +31,40 @@ msgid "" "raised by :mod:`urllib.request`. The base exception class is :exc:" "`URLError`." msgstr "" +"Le module :mod:`urllib.error` définit les classes des exceptions levées par :" +"mod:`urllib.request`. La classe de base de ces exceptions est :exc:" +"`URLError`." #: ../Doc/library/urllib.error.rst:17 msgid "" "The following exceptions are raised by :mod:`urllib.error` as appropriate:" msgstr "" +"Les exceptions suivantes sont levées par :mod:`urllib.error` aux cas " +"appropriés :" #: ../Doc/library/urllib.error.rst:21 msgid "" "The handlers raise this exception (or derived exceptions) when they run into " "a problem. It is a subclass of :exc:`OSError`." msgstr "" +"Les gestionnaires lèvent cette exception (ou des exceptions dérivées) quand " +"ils rencontrent un problème. Elle est une sous-classe de :exc:`OSError`." #: ../Doc/library/urllib.error.rst:26 msgid "" "The reason for this error. It can be a message string or another exception " "instance." msgstr "" +"La raison de cette erreur. Il peut s'agir d'un message textuel ou d'une " +"autre instance d'exception." #: ../Doc/library/urllib.error.rst:29 msgid "" ":exc:`URLError` has been made a subclass of :exc:`OSError` instead of :exc:" "`IOError`." msgstr "" +":exc:`URLError` est maintenant une sous-classe de :exc:`OSError` plutôt que :" +"exc:`IOError`." #: ../Doc/library/urllib.error.rst:36 msgid "" @@ -61,6 +73,11 @@ msgid "" "(the same thing that :func:`~urllib.request.urlopen` returns). This is " "useful when handling exotic HTTP errors, such as requests for authentication." msgstr "" +"Bien qu'étant une exception (une sous-classe de :exc:`URLError`), une :exc:" +"`HTTPError` peut aussi fonctionner comme une valeur de retour normale et " +"fichier-compatible (la même chose que renvoyé par :func:`~urllib.request." +"urlopen`). Cela est utile pour gérer les erreurs HTTP exotiques, comme les " +"requêtes d'authentification." #: ../Doc/library/urllib.error.rst:44 msgid "" @@ -73,12 +90,16 @@ msgstr "" #: ../Doc/library/urllib.error.rst:51 msgid "This is usually a string explaining the reason for this error." msgstr "" +"Il s'agit habituellement d'une chaîne de caractères expliquant la raison de " +"l'erreur." #: ../Doc/library/urllib.error.rst:55 msgid "" "The HTTP response headers for the HTTP request that caused the :exc:" "`HTTPError`." msgstr "" +"Les en-têtes de la réponse HTTP correspondant à la requête HTTP qui a causé " +"la :exc:`HTTPError`." #: ../Doc/library/urllib.error.rst:62 msgid "" @@ -87,3 +108,7 @@ msgid "" "expected amount (given by the *Content-Length* header). The :attr:`content` " "attribute stores the downloaded (and supposedly truncated) data." msgstr "" +"Cette exception est levée quand la fonction :func:`~urllib.request." +"urlretrieve` détecte que le montant des données téléchargées est inférieur " +"au montant attendu (donné par l'en-tête *Content-Length*). L'attribut :attr:" +"`content` stocke les données téléchargées (et supposément tronquées)." diff --git a/library/urllib.po b/library/urllib.po index 2bbe63b3..6c9df9c7 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -18,30 +18,34 @@ msgstr "" #: ../Doc/library/urllib.rst:2 msgid ":mod:`urllib` --- URL handling modules" -msgstr "" +msgstr ":mod:`urllib` --- Modules de gestion des URLs" #: ../Doc/library/urllib.rst:6 msgid "**Source code:** :source:`Lib/urllib/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/urllib/`" #: ../Doc/library/urllib.rst:10 msgid "" "``urllib`` is a package that collects several modules for working with URLs:" msgstr "" +"``urllib`` est un paquet qui collecte plusieurs modules travaillant avec les " +"URLs :" #: ../Doc/library/urllib.rst:12 msgid ":mod:`urllib.request` for opening and reading URLs" -msgstr "" +msgstr ":mod:`urllib.request` pour ouvrir et lire des URLs ;" #: ../Doc/library/urllib.rst:13 msgid "" ":mod:`urllib.error` containing the exceptions raised by :mod:`urllib.request`" msgstr "" +":mod:`urllib.error` contenant les exceptions levées par :mod:`urllib." +"request` ;" #: ../Doc/library/urllib.rst:14 msgid ":mod:`urllib.parse` for parsing URLs" -msgstr "" +msgstr ":mod:`urllib.parse` pour analyser les URLs ;" #: ../Doc/library/urllib.rst:15 msgid ":mod:`urllib.robotparser` for parsing ``robots.txt`` files" -msgstr "" +msgstr ":mod:`urllib.robotparser` pour analyser les fichiers ``robots.txt``." diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 9e96b81b..7aca4608 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" -msgstr "" +msgstr ":mod:`urllib.robotparser` --- Analyseur de fichiers *robots.txt*" #: ../Doc/library/urllib.robotparser.rst:10 msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/urllib/robotparser.py`" #: ../Doc/library/urllib.robotparser.rst:20 msgid "" @@ -32,30 +32,42 @@ msgid "" "on the structure of :file:`robots.txt` files, see http://www.robotstxt.org/" "orig.html." msgstr "" +"Ce module fournit une simple classe, :class:`RobotFileParser`, qui permet de " +"savoir si un *user-agent* particulier peut accéder à une URL du site web qui " +"a publié ce fichier :file:`robots.txt`. Pour plus de détails sur la " +"structure des fichiers :file:`robots.txt`, voir http://www.robotstxt.org/" +"orig.html." #: ../Doc/library/urllib.robotparser.rst:28 msgid "" "This class provides methods to read, parse and answer questions about the :" "file:`robots.txt` file at *url*." msgstr "" +"Cette classe fournit des méthodes pour lire, analyser et répondre aux " +"questions à propos du fichier :file:`robots.txt` disponible à l'adresse " +"*url*." #: ../Doc/library/urllib.robotparser.rst:33 msgid "Sets the URL referring to a :file:`robots.txt` file." -msgstr "" +msgstr "Modifie l'URL référençant le fichier :file:`robots.txt`." #: ../Doc/library/urllib.robotparser.rst:37 msgid "Reads the :file:`robots.txt` URL and feeds it to the parser." msgstr "" +"Lit le fichier :file:`robots.txt` depuis son URL et envoie le contenu à " +"l'analyseur." #: ../Doc/library/urllib.robotparser.rst:41 msgid "Parses the lines argument." -msgstr "" +msgstr "Analyse les lignes données en argument." #: ../Doc/library/urllib.robotparser.rst:45 msgid "" "Returns ``True`` if the *useragent* is allowed to fetch the *url* according " "to the rules contained in the parsed :file:`robots.txt` file." msgstr "" +"Renvoie ``True`` si *useragent* est autorisé à accéder à *url* selon les " +"règles contenues dans le fichier :file:`robots.txt` analysé." #: ../Doc/library/urllib.robotparser.rst:51 msgid "" @@ -63,11 +75,16 @@ msgid "" "for long-running web spiders that need to check for new ``robots.txt`` files " "periodically." msgstr "" +"Renvoie le temps auquel le fichier ``robots.txt`` a été téléchargé pour la " +"dernière fois. Cela est utile pour des *web spiders* de longue durée qui " +"doivent vérifier périodiquement si le fichier est mis à jour." #: ../Doc/library/urllib.robotparser.rst:57 msgid "" "Sets the time the ``robots.txt`` file was last fetched to the current time." msgstr "" +"Indique que le fichier ``robots.txt`` a été téléchargé pour la dernière fois " +"au temps courant." #: ../Doc/library/urllib.robotparser.rst:61 msgid "" diff --git a/library/uu.po b/library/uu.po index a71630c4..db0aad3a 100644 --- a/library/uu.po +++ b/library/uu.po @@ -22,7 +22,7 @@ msgstr ":mod:`uu` --- Encode et decode les fichiers uuencode" #: ../Doc/library/uu.rst:9 msgid "**Source code:** :source:`Lib/uu.py`" -msgstr "**Code source :** :source:`Lib/uu.py`" +msgstr "**Code source :** :source:`Lib/uu.py`" #: ../Doc/library/uu.rst:13 msgid "" @@ -42,9 +42,9 @@ msgstr "" "versions de Python, une chaîne de caractère contenant un chemin est aussi " "acceptée, et le fichier correspondant sera ouvert en lecture et écriture; le " "chemin ``'-'`` est considéré comme l'entrée ou la sortie standard. Cependant " -"cette interface est dépréciée; il est mieux que l'appelant ouvre le fichier " -"soi-même, en s'assurant que, lorsque c'est nécessaire, le mode d'ouverture " -"soit ``'rb'`` ou ``'wb'`` sur Windows." +"cette interface est obsolète; il vaut mieux que l'appelant ouvre le fichier " +"lui-même, en s'assurant si nécessaire que le mode d'ouverture soit ``'rb'`` " +"ou ``'wb'`` sur Windows." #: ../Doc/library/uu.rst:26 msgid "" @@ -76,6 +76,11 @@ msgid "" "*mode* are taken from the uuencode header. However, if the file specified " "in the header already exists, a :exc:`uu.Error` is raised." msgstr "" +"Décode le fichier *in_file*, et écrit le résultat dans *out_file*. Si " +"*out_file* est un chemin, *mode* est utilisé pour les permissions du fichier " +"lors de sa création. Les valeurs par défaut pour *out_file* et *mode* sont " +"récupérées des entêtes *uuencode*. Cependant, si le fichier spécifié par les " +"entêtes existe, une exception :exc:`uu.Error` est levée." #: ../Doc/library/uu.rst:47 msgid "" @@ -83,6 +88,9 @@ msgid "" "produced by an incorrect uuencoder and Python could recover from that " "error. Setting *quiet* to a true value silences this warning." msgstr "" +"La fonction :func:`decode` peut écrire une alerte sur la sortie d'erreur si " +"l'entrée contient des erreurs mais que Python à pu s'en sortir. Mettre " +"*quiet* à *True* empêche l'écriture de cette alerte." #: ../Doc/library/uu.rst:54 msgid "" @@ -90,6 +98,9 @@ msgid "" "various situations, such as described above, but also including a badly " "formatted header, or truncated input file." msgstr "" +"Classe fille d':exc:`Exception`, elle peut être levée par :func:`uu.decode` " +"dans différentes situations, tel que décrit plus haut, mais aussi en cas " +"d'entête mal formatée ou d'entrée tronquée." #: ../Doc/library/uu.rst:61 msgid "Module :mod:`binascii`" diff --git a/library/webbrowser.po b/library/webbrowser.po index cf8451ee..9cb9d0e4 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -338,7 +338,7 @@ msgstr ":class:`Chromium('chromium-browser')`" #: ../Doc/library/webbrowser.rst:152 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/webbrowser.rst:155 msgid "" diff --git a/library/windows.po b/library/windows.po index 9ca6fad0..fc659b09 100644 --- a/library/windows.po +++ b/library/windows.po @@ -18,10 +18,12 @@ msgstr "" #: ../Doc/library/windows.rst:5 msgid "MS Windows Specific Services" -msgstr "" +msgstr "Services spécifiques à MS Windows" #: ../Doc/library/windows.rst:7 msgid "" "This chapter describes modules that are only available on MS Windows " "platforms." msgstr "" +"Ce chapitre documente les modules qui ne sont disponibles que sous MS " +"Windows." diff --git a/library/xdrlib.po b/library/xdrlib.po index ed5346d6..f116068c 100644 --- a/library/xdrlib.po +++ b/library/xdrlib.po @@ -281,7 +281,7 @@ msgstr "" #: ../Doc/library/xdrlib.rst:255 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/xdrlib.rst:257 msgid "Exceptions in this module are coded as class instances:" diff --git a/library/xml.dom.po b/library/xml.dom.po index 1343c410..e6757a6f 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -823,6 +823,12 @@ msgid "" "for the document, the document's :attr:`doctype` attribute will be set to " "``None`` instead of an instance of this interface." msgstr "" +"Les objets de type :class:`DocumentType` fournissent des informations sur " +"les notations et les entités déclarées par un document (incluant les données " +"externes si le parseur les utilise et peut les fournir). Le :class:" +"`DocumentType` d'un :class:`Document` est accessible via l'attribut :attr:" +"`doctype`. Si le document ne déclare pas de ``DOCTYPE``, l'attribut :attr:" +"`doctype` vaudra ``None`` plutôt qu'une instance de cette interface." #: ../Doc/library/xml.dom.rst:453 msgid "" @@ -1304,7 +1310,7 @@ msgstr "" #: ../Doc/library/xml.dom.rst:809 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/xml.dom.rst:811 msgid "" @@ -1351,7 +1357,7 @@ msgstr "" "Levée quand un intervalle spécifique de texte ne rentre pas dans une chaîne. " "Cette exception n'est pas réputée être utilisée par les implémentations DOM " "de Python mais elle peur être levée par des implémentations de DOM qui ne " -"sont pas écrite en Python. " +"sont pas écrite en Python." #: ../Doc/library/xml.dom.rst:838 msgid "" @@ -1712,6 +1718,15 @@ msgid "" "Attributes that are declared ``readonly`` may not restrict write access in " "all DOM implementations." msgstr "" +"Cependant, l'API DOM de Python *impose* que les accès par attributs " +"classiques fonctionnent. Par conséquent, les substituts générés par le " +"compilateur IDL de Python ne fonctionneront probablement pas, et des objets " +"façade pourraient être nécessaires côté client si les objets DOM sont " +"manipulés via CORBA. Bien qu'utiliser un client DOM CORBA nécessite une " +"bonne réflexion, les dévelopeurs habitués et expérimentés à l'utilisation de " +"CORBA ne considèrent pas que c'est un problème. Les attributs déclarés " +"``readonly`` pourraient ne pas voir leur accès en écriture restreint dans " +"toutes les implémentations du DOM." #: ../Doc/library/xml.dom.rst:1024 msgid "" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index d269293b..7e1099b5 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -1085,7 +1085,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:1175 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/library/xml.etree.elementtree.rst:1179 msgid "" diff --git a/library/xml.po b/library/xml.po index 60334f21..97567ec5 100644 --- a/library/xml.po +++ b/library/xml.po @@ -116,7 +116,7 @@ msgid "" "various modules are vulnerable to them." msgstr "" "Le tableau suivant donne une vue d'ensemble des attaques connues et indique " -"si les différents modules y sont vulnérables" +"si les différents modules y sont vulnérables." #: ../Doc/library/xml.rst:64 msgid "kind" @@ -174,7 +174,7 @@ msgstr "Sûr (3)" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:102 msgid "`DTD`_ retrieval" -msgstr "Récupération de `DTD`_ " +msgstr "Récupération de `DTD`_" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:70 msgid "Safe" @@ -287,7 +287,7 @@ msgstr "" #: ../Doc/library/xml.rst:117 msgid "The :mod:`defusedxml` and :mod:`defusedexpat` Packages" -msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat` " +msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat`" #: ../Doc/library/xml.rst:119 msgid "" diff --git a/library/xml.sax.po b/library/xml.sax.po index 7d668ef8..90d34f10 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/library/xml.sax.rst:2 msgid ":mod:`xml.sax` --- Support for SAX2 parsers" -msgstr "" +msgstr ":mod:`xml.sax` --- Prise en charge des parseurs SAX2" #: ../Doc/library/xml.sax.rst:11 msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/xml/sax/__init__.py`" #: ../Doc/library/xml.sax.rst:15 msgid "" @@ -31,6 +31,10 @@ msgid "" "the SAX exceptions and the convenience functions which will be most used by " "users of the SAX API." msgstr "" +"Le paquet :mod:`xml.sax` fournit des modules qui implementent l'interface " +"*Simple API for XML (SAX)* pour Python. Le paquet en lui même fournit les " +"exceptions SAX et les fonctions les plus utiles qui seront le plus utilisées " +"par les utilisateurs de SAX API." #: ../Doc/library/xml.sax.rst:23 msgid "" @@ -38,10 +42,13 @@ msgid "" "data. If you need to parse untrusted or unauthenticated data see :ref:`xml-" "vulnerabilities`." msgstr "" +"Le module :mod:`xml.sax` n'est pas sécurisé contre les données construites " +"de façon malveillante. Si vous avez besoin d'analyser des données non " +"sécurisées ou non authentifiées, voir :ref:`xml-vulnerabilities`." #: ../Doc/library/xml.sax.rst:28 msgid "The convenience functions are:" -msgstr "" +msgstr "Les fonctions les plus utiles sont:" #: ../Doc/library/xml.sax.rst:33 msgid "" @@ -51,6 +58,11 @@ msgid "" "`create_parser`. Modules listed in *parser_list* will be used before " "modules in the default list of parsers." msgstr "" +"Crée et renvoie un objet SAX :class:`~xml.sax.xmlreader.XMLReader`. Le " +"premier parseur trouvé sera utilisé. Si *parser_list* est fourni, il doit " +"être une séquence de chaînes qui nomme des modules qui ont une fonction " +"nommée :func:`create_parser`. Les modules listés dans *parser_list* seront " +"utilisés avant les modules dans la liste par défaut des parseurs." #: ../Doc/library/xml.sax.rst:42 msgid "" @@ -62,6 +74,13 @@ msgid "" "errors. There is no return value; all work must be done by the *handler* " "passed in." msgstr "" +"Crée un parseur SAX et l'utilise pour analyser un document. Le document " +"transmis comme *filename_or_stream*, peut être un nom de fichier ou un objet " +"fichier. Le paramètre *handler* doit être une instance SAX :class:`~handler." +"ContentHandler`. Si un *error_handler* est donné, il doit être un SAX :class:" +"`~handler.ErrorHandler` ; si omis, :exc:`SAXParseException` sera levé sur " +"toutes les erreurs. Il n'y a pas de valeur de retour, tout le travail doit " +"être fait par le *handler* transmis." #: ../Doc/library/xml.sax.rst:53 msgid "" @@ -69,10 +88,13 @@ msgid "" "parameter. *string* must be a :class:`str` instance or a :term:`bytes-like " "object`." msgstr "" +"Similaire à :func:`parse`, mais qui analyse à partir d'un buffer *string* " +"reçu en tant que paramètre. *string* doit être une instance :class:`str` ou " +"un objet :term:`bytes-like object`." #: ../Doc/library/xml.sax.rst:57 msgid "Added support of :class:`str` instances." -msgstr "" +msgstr "Ajout du support des instances :class:`str`." #: ../Doc/library/xml.sax.rst:60 msgid "" @@ -87,6 +109,18 @@ msgid "" "During parsing, methods on the handler objects are called based on " "structural and syntactic events from the input data." msgstr "" +"Une application SAX typique utilise trois types d'objets: les *readers*, les " +"*handlers* et les sources d'entrée. \"Reader\" dans ce contexte est un " +"autre terme pour le parseur, c'est-à-dire un morceau de code qui lit les " +"octets ou les caractères de la source d'entrée et qui produit une séquence " +"d'événements. Les événements sont ensuite distribués aux objets du " +"*handler*, c'est-à-dire que le lecteur appelle une méthode sur le *handler*. " +"L'application doit donc obtenir un objet *reader*, créer ou ouvrir les " +"sources d'entrée, créer les *handlers* et connecter ces objets tous " +"ensemble. La dernière étape de la préparation, le *reader* est appelé à " +"analyser l'entrée. Pendant l'analyse, les méthodes sur les objets du " +"*handler* sont appelées en fonction d'événements structurels et syntaxiques " +"à partir des données d'entrée." #: ../Doc/library/xml.sax.rst:71 msgid "" @@ -103,12 +137,27 @@ msgid "" "the handler classes are also available from :mod:`xml.sax`. These " "interfaces are described below." msgstr "" +"Pour ces objets, seules les interfaces sont pertinentes; elles ne sont pas " +"normalement instanciées par l'application elle-même. Puisque Python n'a pas " +"de notion explicite d'interface, elles sont formellement introduites en tant " +"que classes, mais les applications peuvent utiliser des implémentations qui " +"n'héritent pas des classes fournies. Les interfaces :class:`~xml.sax." +"xmlreader.InputSource`, :class:`~xml.sax.xmlreader.Locator`, :class:`~xml." +"sax.xmlreader.Attributes`, :class:`~xml.sax.xmlreader.AttributesNS`, et :" +"class:`~xml.sax.xmlreader.XMLReader` sont définies dans le module :mod:`xml." +"sax.xmlreader`. Les interfaces du *handler* sont définies dans :mod:`xml.sax." +"handler`. Pour plus de commodité, :class:`xml.sax.xmlreader.InputSource` " +"(qui est souvent instancié directement) et les classes du *handler* sont " +"également disponibles à partir de :mod:`xml.sax`. Ces interfaces sont " +"décrites ci-dessous." #: ../Doc/library/xml.sax.rst:84 msgid "" "In addition to these classes, :mod:`xml.sax` provides the following " "exception classes." msgstr "" +"En plus de ces classes, :mod:`xml.sax` fournit les classes d'exceptions " +"suivantes." #: ../Doc/library/xml.sax.rst:90 msgid "" @@ -120,6 +169,14 @@ msgid "" "required to actually raise the exception --- it is also useful as a " "container for information." msgstr "" +"Encapsule une erreur ou un avertissement XML. Cette classe peut contenir une " +"erreur de base ou une information d'avertissement soit du parseur XML ou de " +"l'application: elle peut être sous-classée pour fournir des fonctionnalités " +"supplémentaires ou pour ajouter une localisation. Noter que même si les " +"*handlers* définis dans l'interface :class:`~xml.sax.handler.ErrorHandler` " +"reçoivent des instances de cette exception, ce n'est pas nécessaire de lever " +"l'exception --- il est également utile en tant que conteneur pour " +"l'information." #: ../Doc/library/xml.sax.rst:98 msgid "" @@ -128,10 +185,14 @@ msgid "" "an exception that was caught by the parsing code and is being passed along " "as information." msgstr "" +"Quand instancié, *msg* devrait être une description lisible par l'homme de " +"l'erreur. Le paramètre optionnel *exception*, s'il est donné, devrait être " +"``None`` ou une exception qui a été interceptée par le code d'analyse et qui " +"est transmise comme information." #: ../Doc/library/xml.sax.rst:102 msgid "This is the base class for the other SAX exception classes." -msgstr "" +msgstr "Ceci est la classe de base pour les autres classes d'exception SAX." #: ../Doc/library/xml.sax.rst:107 msgid "" @@ -141,6 +202,11 @@ msgid "" "class supports the SAX :class:`~xml.sax.xmlreader.Locator` interface as well " "as the :class:`SAXException` interface." msgstr "" +"Sous-classe de :exc:`SAXException` élevée sur les erreurs d'analyse. Les " +"instances de cette classe sont passées aux méthodes de l'interface SAX :" +"class:`~xml.sax.handler.ErrorHandler` pour fournir des informations sur " +"l'erreur d'analyse. Cette classe supporte aussi l'interface SAX :class:`~xml." +"sax.xmlreader.Locator` comme l'interface :class:`SAXException`." #: ../Doc/library/xml.sax.rst:117 msgid "" @@ -148,6 +214,10 @@ msgid "" "XMLReader` is confronted with an unrecognized feature or property. SAX " "applications and extensions may use this class for similar purposes." msgstr "" +"Sous-classe de :exc:`SAXException` levée quand un SAX :class:`~xml.sax." +"xmlreader. XMLReader` est confronté à une caractéristique ou à une propriété " +"non reconnue. Les applications et les extensions SAX peuvent utiliser cette " +"classe à des fins similaires." #: ../Doc/library/xml.sax.rst:125 msgid "" @@ -156,10 +226,15 @@ msgid "" "property to a value that the implementation does not support. SAX " "applications and extensions may use this class for similar purposes." msgstr "" +"Sous-classe de :exc:`SAXException` levée quand un SAX :class:`~xml.sax." +"xmlreader.XMLReader` est demandé pour activer une fonctionnalité qui n'est " +"pas supportée, ou pour définir une propriété à une valeur que " +"l'implémentation ne prend pas en charge. Les applications et les extensions " +"SAX peuvent utiliser cette classe à des fins similaires." #: ../Doc/library/xml.sax.rst:137 msgid "`SAX: The Simple API for XML `_" -msgstr "" +msgstr "`SAX: L'API simple pour XML `_" #: ../Doc/library/xml.sax.rst:135 msgid "" @@ -167,44 +242,49 @@ msgid "" "a Java implementation and online documentation. Links to implementations " "and historical information are also available." msgstr "" +"Ce site est le point focal pour la définition de l'API SAX. Il offre une " +"implémentation Java et une documentation en ligne. Des liens pour " +"l'implémentation et des informations historiques sont également disponibles." #: ../Doc/library/xml.sax.rst:140 msgid "Module :mod:`xml.sax.handler`" -msgstr "" +msgstr "Module :mod:`xml.sax.handler`" #: ../Doc/library/xml.sax.rst:140 msgid "Definitions of the interfaces for application-provided objects." -msgstr "" +msgstr "Définitions des interfaces pour les objets fournis par l'application." #: ../Doc/library/xml.sax.rst:143 msgid "Module :mod:`xml.sax.saxutils`" -msgstr "" +msgstr "Module :mod:`xml.sax.saxutils`" #: ../Doc/library/xml.sax.rst:143 msgid "Convenience functions for use in SAX applications." -msgstr "" +msgstr "Fonctions pratiques pour une utilisation dans les applications SAX." #: ../Doc/library/xml.sax.rst:145 msgid "Module :mod:`xml.sax.xmlreader`" -msgstr "" +msgstr "Module :mod:`xml.sax.xmlreader`" #: ../Doc/library/xml.sax.rst:146 msgid "Definitions of the interfaces for parser-provided objects." -msgstr "" +msgstr "Définitions des interfaces pour les objets fournis par le parseur." #: ../Doc/library/xml.sax.rst:152 msgid "SAXException Objects" -msgstr "" +msgstr "Les objets SAXException" #: ../Doc/library/xml.sax.rst:154 msgid "" "The :class:`SAXException` exception class supports the following methods:" msgstr "" +"La classe d'exception :class:`SAXException` supporte les méthodes suivantes:" #: ../Doc/library/xml.sax.rst:159 msgid "Return a human-readable message describing the error condition." msgstr "" +"Renvoyer un message lisible par l'homme décrivant la condition d'erreur." #: ../Doc/library/xml.sax.rst:164 msgid "Return an encapsulated exception object, or ``None``." -msgstr "" +msgstr "Renvoie un objet d'exception encapsulé, ou``None``." diff --git a/library/xmlrpc.po b/library/xmlrpc.po index 7256a93a..d982c7ef 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/xmlrpc.rst:2 msgid ":mod:`xmlrpc` --- XMLRPC server and client modules" -msgstr "" +msgstr ":mod:`xmlrpc` --- Modules Serveur et Client XMLRPC" #: ../Doc/library/xmlrpc.rst:4 msgid "" @@ -26,12 +26,18 @@ msgid "" "transport. With it, a client can call methods with parameters on a remote " "server (the server is named by a URI) and get back structured data." msgstr "" +"XML-RPC est une méthode pour appeler des procédures distantes utilisant XML " +"via HTTP. XML-RPC permet à un client d'appeler des fonctions avec leurs " +"arguments sur un serveur distant (désigné par une URI), et recevoir en " +"retour des données structurées." #: ../Doc/library/xmlrpc.rst:8 msgid "" "``xmlrpc`` is a package that collects server and client modules implementing " "XML-RPC. The modules are:" msgstr "" +"``xmlrpc`` est un paquet rassemblant un client et un serveur XML-RPC. Ces " +"modules sont :" #: ../Doc/library/xmlrpc.rst:11 msgid ":mod:`xmlrpc.client`" diff --git a/license.po b/license.po index cf5db69e..2ed3bb1a 100644 --- a/license.po +++ b/license.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/license.rst:7 msgid "History and License" -msgstr "Histoire et Licence" +msgstr "Histoire et licence" #: ../Doc/license.rst:11 msgid "History of the software" @@ -277,7 +277,7 @@ msgstr "" #: ../Doc/license.rst:269 msgid "Mersenne Twister" -msgstr "Mersenne Twister" +msgstr "Mersenne twister" #: ../Doc/license.rst:271 msgid "" @@ -287,7 +287,7 @@ msgid "" msgstr "" "Le module :mod:`_random` inclu du code construit à partir d'un " "téléchargement depuis http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/" -"emt19937ar.html. Voici mot pour mot les commentaires du code original::" +"emt19937ar.html. Voici mot pour mot les commentaires du code original ::" #: ../Doc/license.rst:318 msgid "Sockets" @@ -309,7 +309,7 @@ msgstr "Virgule flottante et contrôle d'exception" #: ../Doc/license.rst:355 msgid "The source for the :mod:`fpectl` module includes the following notice::" -msgstr "Le code source pour le module :mod:`fpectl` inclu la note suivante::" +msgstr "Le code source pour le module :mod:`fpectl` inclu la note suivante ::" #: ../Doc/license.rst:395 msgid "Asynchronous socket services" @@ -345,7 +345,7 @@ msgstr "Les fonctions UUencode et UUdecode" #: ../Doc/license.rst:485 msgid "The :mod:`uu` module contains the following notice::" -msgstr "Le module :mod:`uu` contient la note suivante:" +msgstr "Le module :mod:`uu` contient la note suivante ::" #: ../Doc/license.rst:513 msgid "XML Remote Procedure Calls" @@ -354,7 +354,7 @@ msgstr "" #: ../Doc/license.rst:515 msgid "The :mod:`xmlrpc.client` module contains the following notice::" -msgstr "Le module :mod:`xmlrpc.client` contient la note suivante::" +msgstr "Le module :mod:`xmlrpc.client` contient la note suivante ::" #: ../Doc/license.rst:546 msgid "test_epoll" @@ -424,7 +424,7 @@ msgstr "" "est disponible via le système d'exploitation. Aussi les outils " "d'installation sur Windows et Mac OS X peuvent inclure une copie des " "bibliothèques d'OpenSSL, donc on colle une copie de la licence d'OpenSSL " -"ici::" +"ici ::" #: ../Doc/license.rst:798 msgid "expat" @@ -436,7 +436,7 @@ msgid "" "sources unless the build is configured ``--with-system-expat``::" msgstr "" "Le module :mod:`pyexpat` est compilé avec une copie des sources d'*expat*, " -"sauf si la compilation est configurée avec ``--with-system-expat``::" +"sauf si la compilation est configurée avec ``--with-system-expat`` ::" #: ../Doc/license.rst:827 msgid "libffi" @@ -449,7 +449,7 @@ msgid "" msgstr "" "Le module :mod:`_ctypes` est compilé en utilisant une copie des sources de " "la *libffi*, sauf si la compilation est configurée avec ``--with-system-" -"libffi``::" +"libffi`` ::" #: ../Doc/license.rst:856 msgid "zlib" @@ -463,7 +463,7 @@ msgid "" msgstr "" "Le module :mod:`zlib` est compilé en utilisant une copie du code source de " "*zlib* si la version de *zlib* trouvée sur le système est trop vieille pour " -"être utilisée::" +"être utilisée ::" #: ../Doc/license.rst:887 msgid "cfuhash" @@ -475,7 +475,7 @@ msgid "" "on the cfuhash project::" msgstr "" "L'implémentation des dictionnaires, utilisée par le module :mod:" -"`tracemalloc` est basée sur le projet *cfuhash*::" +"`tracemalloc` est basée sur le projet *cfuhash* ::" #: ../Doc/license.rst:928 msgid "libmpdec" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index b776d804..46e78cc0 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:5 msgid "Compound statements" -msgstr "" +msgstr "Instructions composées" #: ../Doc/reference/compound_stmts.rst:9 msgid "" @@ -27,6 +27,11 @@ msgid "" "compound statements span multiple lines, although in simple incarnations a " "whole compound statement may be contained in one line." msgstr "" +"Les instructions composées contiennent d'autres (groupes d’) instructions ; " +"elles affectent ou contrôlent l'exécution de ces autres instructions d'une " +"manière ou d'une autre. En général, une instruction composée couvre " +"plusieurs lignes bien que, dans sa forme la plus simple, une instruction " +"composée peut tenir sur une seule ligne." #: ../Doc/reference/compound_stmts.rst:14 msgid "" @@ -37,6 +42,13 @@ msgid "" "code around a block of code. Function and class definitions are also " "syntactically compound statements." msgstr "" +"Les instructions :keyword:`if`, :keyword:`while` et :keyword:`for` " +"implémentent les constructions classiques de contrôle de flux. :keyword:" +"`try` spécifie des gestionnaires d'exception et du code de nettoyage pour un " +"groupe d'instructions, tandis que l'instruction :keyword:`with` permet " +"l'exécution de code d'initialisation et de finalisation autour d'un bloc de " +"code. Les définitions de fonctions et de classes sont également, au sens " +"syntaxique, des instructions composées." #: ../Doc/reference/compound_stmts.rst:25 msgid "" @@ -52,6 +64,19 @@ msgid "" "clear to which :keyword:`if` clause a following :keyword:`else` clause would " "belong::" msgstr "" +"Une instruction composée comporte une ou plusieurs \"clauses\". Une clause " +"se compose d'un en-tête et d'une \"suite\". Les en-têtes des clauses d'une " +"instruction composée particulière sont toutes placées au même niveau " +"d'indentation. Chaque en-tête de clause commence par un mot-clé spécifique " +"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " +"d'instructions contrôlées par une clause ; une suite se compose, après les " +"deux points de l'en-tête, soit d'une ou plusieurs instructions simples " +"séparées par des points-virgules si elles sont sur la même ligne que l'en-" +"tête, soit d'une ou plusieurs instructions en retrait sur les lignes " +"suivantes. Seule cette dernière forme d'une suite peut contenir des " +"instructions composées ; ce qui suit n'est pas licite, principalement parce " +"qu'il ne serait pas clair de savoir à quelle clause :keyword:`if` se " +"rapporterait une clause :keyword:`else` placée en fin de ligne :" #: ../Doc/reference/compound_stmts.rst:38 msgid "" @@ -59,10 +84,13 @@ msgid "" "so that in the following example, either all or none of the :func:`print` " "calls are executed::" msgstr "" +"Notez également que le point-virgule se lie plus étroitement que le deux-" +"points dans ce contexte, de sorte que dans l'exemple suivant, soit tous les " +"appels :func:`print` sont exécutés, soit aucun ne l'est :" #: ../Doc/reference/compound_stmts.rst:44 msgid "Summarizing:" -msgstr "" +msgstr "En résumé :" #: ../Doc/reference/compound_stmts.rst:66 msgid "" @@ -72,12 +100,21 @@ msgid "" "'dangling :keyword:`else`' problem is solved in Python by requiring nested :" "keyword:`if` statements to be indented)." msgstr "" +"Notez que ces instructions se terminent toujours par un lexème ``NEWLINE`` " +"suivi éventuellement d'un ``DEDENT``. Notez également que les clauses " +"facultatives qui suivent commencent toujours par un mot-clé qui ne peut pas " +"commencer une instruction. Ainsi, il n'y a pas d'ambiguïté (le problème du :" +"keyword:`else` dont on ne sait pas à quel ``if`` il est relié est résolu en " +"Python en exigeant que des instructions :keyword:`if` imbriquées soient " +"indentées les unes par rapport aux autres)." #: ../Doc/reference/compound_stmts.rst:72 msgid "" "The formatting of the grammar rules in the following sections places each " "clause on a separate line for clarity." msgstr "" +"L'agencement des règles de grammaire dans les sections qui suivent place " +"chaque clause sur une ligne séparée pour plus de clarté." #: ../Doc/reference/compound_stmts.rst:81 msgid "The :keyword:`if` statement" @@ -86,6 +123,8 @@ msgstr "L'instruction :keyword:`if`" #: ../Doc/reference/compound_stmts.rst:90 msgid "The :keyword:`if` statement is used for conditional execution:" msgstr "" +"L'instruction :keyword:`if` est utilisée pour exécuter des instructions en " +"fonction d'une condition :" #: ../Doc/reference/compound_stmts.rst:97 msgid "" @@ -96,6 +135,12 @@ msgid "" "expressions are false, the suite of the :keyword:`else` clause, if present, " "is executed." msgstr "" +"Elle sélectionne exactement une des suites en évaluant les expressions une " +"par une jusqu'à ce qu'une soit vraie (voir la section :ref:`booleans` pour " +"la définition de vrai et faux) ; ensuite cette suite est exécutée (et aucune " +"autre partie de l'instruction :keyword:`if` n'est exécutée ou évaluée). Si " +"toutes les expressions sont fausses, la suite de la clause :keyword:`else`, " +"si elle existe, est exécutée." #: ../Doc/reference/compound_stmts.rst:107 msgid "The :keyword:`while` statement" @@ -106,6 +151,8 @@ msgid "" "The :keyword:`while` statement is used for repeated execution as long as an " "expression is true:" msgstr "" +"L'instruction :keyword:`while` est utilisée pour exécuter des instructions " +"de manière répétée tant qu'une expression est vraie :" #: ../Doc/reference/compound_stmts.rst:122 msgid "" @@ -114,6 +161,10 @@ msgid "" "the suite of the :keyword:`else` clause, if present, is executed and the " "loop terminates." msgstr "" +"Python évalue l'expression de manière répétée et, tant qu'elle est vraie, " +"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " +"même lors du premier test), la suite de la clause :keyword:`else`, si elle " +"existe, est exécutée et la boucle se termine." #: ../Doc/reference/compound_stmts.rst:131 msgid "" @@ -122,6 +173,10 @@ msgid "" "statement executed in the first suite skips the rest of the suite and goes " "back to testing the expression." msgstr "" +"Une instruction :keyword:`break` exécutée dans la première suite termine la " +"boucle sans exécuter la suite de la clause :keyword:`else`. Une instruction :" +"keyword:`continue` exécutée dans la première suite saute le reste de la " +"suite et retourne au test de l'expression." #: ../Doc/reference/compound_stmts.rst:140 msgid "The :keyword:`for` statement" @@ -132,6 +187,9 @@ msgid "" "The :keyword:`for` statement is used to iterate over the elements of a " "sequence (such as a string, tuple or list) or other iterable object:" msgstr "" +"L'instruction :keyword:`for` est utilisée pour itérer sur les éléments d'une " +"séquence (par exemple une chaîne, un tuple ou une liste) ou un autre objet " +"itérable :" #: ../Doc/reference/compound_stmts.rst:160 msgid "" @@ -145,6 +203,17 @@ msgid "" "exception), the suite in the :keyword:`else` clause, if present, is " "executed, and the loop terminates." msgstr "" +"La liste des expressions (*expression_list* dans la grammaire ci-dessus) est " +"évaluée une seule fois ; elle doit produire un objet itérable. Un itérateur " +"est créé pour le résultat de cette liste d'expression. La suite est ensuite " +"exécutée une fois pour chaque élément fourni par l'itérateur, dans l'ordre " +"renvoyé par l'itérateur. Chaque élément est assigné, à tour de rôle, à la " +"liste cible (*target_list* dans la grammaire ci-dessus) en utilisant les " +"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " +"exécutée. Lorsque les éléments sont épuisés (ce qui est immédiat lorsque la " +"séquence est vide ou si un itérateur lève une exception :exc:" +"`StopIteration`), la suite de la clause :keyword:`else`, si elle existe, est " +"exécutée et la boucle se termine." #: ../Doc/reference/compound_stmts.rst:173 msgid "" @@ -154,6 +223,11 @@ msgid "" "continues with the next item, or with the :keyword:`else` clause if there is " "no next item." msgstr "" +"Une instruction :keyword:`break` exécutée dans la première suite termine la " +"boucle sans exécuter la suite de la clause :keyword:`else`. Une instruction :" +"keyword:`continue` exécutée dans la première suite saute le reste de la " +"suite et continue avec l'élément suivant, ou avec la clause :keyword:`else` " +"s'il n'y a pas d'élément suivant." #: ../Doc/reference/compound_stmts.rst:179 msgid "" @@ -161,6 +235,9 @@ msgid "" "overwrites all previous assignments to those variables including those made " "in the suite of the for-loop::" msgstr "" +"La boucle ``for`` effectue des affectations aux variables de la liste cible, " +"ce qui écrase toutes les affectations antérieures de ces variables, y " +"compris celles effectuées dans la suite de la boucle ``for`` ::" #: ../Doc/reference/compound_stmts.rst:193 msgid "" @@ -170,6 +247,12 @@ msgid "" "integers suitable to emulate the effect of Pascal's ``for i := a to b do``; " "e.g., ``list(range(3))`` returns the list ``[0, 1, 2]``." msgstr "" +"Les noms dans la liste cible ne sont pas supprimés lorsque la boucle est " +"terminée mais, si la séquence est vide, ils n'auront pas du tout été " +"assignés par la boucle. Petite astuce : la fonction intégrée :func:`range` " +"renvoie un itérateur sur des entiers approprié pour émuler la boucle " +"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " +"``list(range(3))`` renvoie la liste ``[0, 1, 2]``." #: ../Doc/reference/compound_stmts.rst:205 msgid "" @@ -185,6 +268,18 @@ msgid "" "This can lead to nasty bugs that can be avoided by making a temporary copy " "using a slice of the whole sequence, e.g., ::" msgstr "" +"Il y a une subtilité lorsque la séquence est modifiée par la boucle (cela ne " +"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " +"Un compteur interne est utilisé pour savoir quel est l'élément suivant, et " +"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " +"longueur de la séquence, la boucle se termine. Cela signifie que si la suite " +"supprime l'élément courant (ou un élément précédent) de la séquence, " +"l'élément suivant est sauté (puisqu'il reçoit l'indice de l'élément courant " +"qui a déjà été traité). De même, si la suite insère un élément avant " +"l'élément courant, l'élément courant est traité une deuxième fois à la " +"prochaine itération. Ceci peut conduire à de méchants bugs, que vous pouvez " +"éviter en effectuant une copie temporaire d'une tranche ou de la séquence " +"complète, par exemple ::" #: ../Doc/reference/compound_stmts.rst:226 msgid "The :keyword:`try` statement" @@ -195,6 +290,8 @@ msgid "" "The :keyword:`try` statement specifies exception handlers and/or cleanup " "code for a group of statements:" msgstr "" +"L'instruction :keyword:`try` spécifie les gestionnaires d'exception ou le " +"code de nettoyage pour un groupe d'instructions :" #: ../Doc/reference/compound_stmts.rst:247 msgid "" @@ -210,12 +307,28 @@ msgid "" "or a base class of the exception object or a tuple containing an item " "compatible with the exception." msgstr "" +"La ou les clauses :keyword:`except` spécifient un ou plusieurs gestionnaires " +"d'exceptions. Si aucune exception ne se produit dans la clause :keyword:" +"`try`, aucun gestionnaire d'exception n'est exécuté. Lorsqu'une exception se " +"produit dans la suite de :keyword:`try`, Python recherche un gestionnaire " +"d'exception. Cette recherche inspecte les clauses ``except``, l'une après " +"l'autre, jusqu'à trouver une correspondance. Une clause ``except`` vide " +"(c'est-à-dire sans expression), si elle est présente, doit être la " +"dernière ; elle correspond à toute exception. Pour une clause ``except`` " +"avec une expression, cette expression est évaluée et la clause correspond si " +"l'objet résultant est \"compatible\" avec l'exception. Un objet est réputé " +"compatible avec une exception s'il est la classe ou une classe de base de " +"l'objet exception ou si c'est un tuple contenant un élément qui est " +"compatible avec l'exception." #: ../Doc/reference/compound_stmts.rst:258 msgid "" "If no except clause matches the exception, the search for an exception " "handler continues in the surrounding code and on the invocation stack. [#]_" msgstr "" +"Si aucune clause ``except`` ne correspond à l'exception, la recherche d'un " +"gestionnaire d'exception se poursuit dans le code englobant et dans la pile " +"d'appels [#]_." #: ../Doc/reference/compound_stmts.rst:261 msgid "" @@ -225,6 +338,11 @@ msgid "" "(it is treated as if the entire :keyword:`try` statement raised the " "exception)." msgstr "" +"Si l'évaluation d'une expression dans l'en-tête d'une clause ``except`` lève " +"une exception, la recherche initiale d'un gestionnaire est annulée et une " +"recherche commence pour la nouvelle exception dans le code englobant et dans " +"la pile d'appels (c'est traité comme si l'instruction :keyword:`try` avait " +"levé l'exception)." #: ../Doc/reference/compound_stmts.rst:266 msgid "" @@ -237,16 +355,27 @@ msgid "" "the try clause of the inner handler, the outer handler will not handle the " "exception.)" msgstr "" +"Lorsqu'une clause d'exception correspond, l'exception est assignée à la " +"cible spécifiée après le mot-clé :keyword:`as` dans cette clause ``except``, " +"si cette cible existe, et la suite de clause ``except`` est exécutée. " +"Toutes les clauses ``except`` doivent avoir un bloc exécutable. Lorsque la " +"fin de ce bloc est atteinte, l'exécution continue normalement après " +"l'ensemble de l'instruction ``try`` (cela signifie que si deux gestionnaires " +"imbriqués existent pour la même exception, et que l'exception se produit " +"dans la clause ``try`` du gestionnaire interne, le gestionnaire externe ne " +"gère pas l'exception)." #: ../Doc/reference/compound_stmts.rst:274 msgid "" "When an exception has been assigned using ``as target``, it is cleared at " "the end of the except clause. This is as if ::" msgstr "" +"Lorsqu'une exception a été assignée en utilisant ``as cible``, elle est " +"effacée à la fin de la clause ``except``. C'est comme si ::" #: ../Doc/reference/compound_stmts.rst:280 msgid "was translated to ::" -msgstr "" +msgstr "avait été traduit en ::" #: ../Doc/reference/compound_stmts.rst:288 msgid "" @@ -256,6 +385,12 @@ msgid "" "frame, keeping all locals in that frame alive until the next garbage " "collection occurs." msgstr "" +"Cela veut dire que l'exception doit être assignée à un nom différent pour " +"pouvoir s'y référer après la clause ``except``. Les exceptions sont effacées " +"parce qu'avec la trace de la pile d'appels qui leur est attachée, elles " +"créent un cycle dans les pointeurs de références (avec le cadre de la pile), " +"ce qui conduit à conserver tous les noms locaux de ce cadre en mémoire " +"jusqu'au passage du ramasse-miettes." #: ../Doc/reference/compound_stmts.rst:297 msgid "" @@ -267,6 +402,14 @@ msgid "" "occurred. :func:`sys.exc_info` values are restored to their previous values " "(before the call) when returning from a function that handled an exception." msgstr "" +"Avant l'exécution de la suite d'une clause ``except``, les détails de " +"l'exception sont stockés dans le module :mod:`sys` et sont accessibles " +"*via* :func:`sys.exc_info`. :func:`sys.exc_info` renvoie un 3-uplet composé " +"de la classe de l'exception, de l'instance d'exception et d'un objet trace " +"(voir la section :ref:`types`) identifiant le point du programme où " +"l'exception est survenue. Les valeurs de :func:`sys.exc_info` sont remises à " +"leurs anciennes valeurs (celles d'avant l'appel) au retour d'une fonction " +"qui a géré une exception." #: ../Doc/reference/compound_stmts.rst:311 msgid "" @@ -274,6 +417,10 @@ msgid "" "off the end of the :keyword:`try` clause. [#]_ Exceptions in the :keyword:" "`else` clause are not handled by the preceding :keyword:`except` clauses." msgstr "" +"La clause optionnelle :keyword:`else` n'est exécutée que si l'exécution " +"atteint la fin de la clause :keyword:`try` [#]_. Les exceptions dans la " +"clause :keyword:`else` ne sont pas gérées par les clauses :keyword:`except` " +"qui la précèdent." #: ../Doc/reference/compound_stmts.rst:317 msgid "" @@ -287,12 +434,24 @@ msgid "" "new exception. If the :keyword:`finally` clause executes a :keyword:`return` " "or :keyword:`break` statement, the saved exception is discarded::" msgstr "" +"Si :keyword:`finally` est présente, elle spécifie un gestionnaire de " +"\"nettoyage\". La clause :keyword:`try` est exécutée, y compris les clauses :" +"keyword:`except` et :keyword:`else`. Si une exception se produit dans l'une " +"des clauses et n'est pas traitée, l'exception est temporairement " +"sauvegardée. La clause :keyword:`finally` est exécutée. S'il y a une " +"exception sauvegardée, elle est re-levée à la fin de la clause :keyword:" +"`finally`. Si la clause :keyword:`finally` lève une autre exception, " +"l'exception sauvegardée est définie comme le contexte de la nouvelle " +"exception. Si la clause :keyword:`finally` exécute une instruction :keyword:" +"`return` ou :keyword:`break`, l'exception sauvegardée est jetée ::" #: ../Doc/reference/compound_stmts.rst:336 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`finally` clause." msgstr "" +"L'information relative à l'exception n'est pas disponible pour le programme " +"pendant l'exécution de la clause :keyword:`finally`." #: ../Doc/reference/compound_stmts.rst:344 msgid "" @@ -303,6 +462,13 @@ msgid "" "`finally` clause. (The reason is a problem with the current implementation " "--- this restriction may be lifted in the future)." msgstr "" +"Lorsqu'une instruction :keyword:`return`, :keyword:`break` ou :keyword:" +"`continue` est exécutée dans la suite d'une instruction :keyword:`try` d'une " +"construction :keyword:`try`...\\ :keyword:`finally`, la clause :keyword:" +"`finally` est aussi exécutée à la sortie. Une instruction :keyword:" +"`continue` est illégale dans une clause :keyword:`finally` (la raison est " +"que l'implémentation actuelle pose problème --- il est possible que cette " +"restriction soit levée dans le futur)." #: ../Doc/reference/compound_stmts.rst:351 msgid "" @@ -311,6 +477,10 @@ msgid "" "keyword:`return` statement executed in the :keyword:`finally` clause will " "always be the last one executed::" msgstr "" +"La valeur de retour d'une fonction est déterminée par la dernière " +"instruction :keyword:`return` exécutée. Puisque la clause :keyword:" +"`finally` s'exécute toujours, une instruction :keyword:`return` exécutée " +"dans le :keyword:`finally` sera toujours la dernière clause exécutée ::" #: ../Doc/reference/compound_stmts.rst:365 msgid "" @@ -318,6 +488,10 @@ msgid "" "`exceptions`, and information on using the :keyword:`raise` statement to " "generate exceptions may be found in section :ref:`raise`." msgstr "" +"Vous trouvez des informations supplémentaires relatives aux exceptions dans " +"la section :ref:`exceptions` et, dans la section :ref:`raise`, des " +"informations relatives à l'utilisation de l'instruction :keyword:`raise` " +"pour produire des exceptions." #: ../Doc/reference/compound_stmts.rst:374 msgid "The :keyword:`with` statement" @@ -330,32 +504,46 @@ msgid "" "This allows common :keyword:`try`...\\ :keyword:`except`...\\ :keyword:" "`finally` usage patterns to be encapsulated for convenient reuse." msgstr "" +"L'instruction :keyword:`with` est utilisée pour encapsuler l'exécution d'un " +"bloc avec des méthodes définies par un gestionnaire de contexte (voir la " +"section :ref:`context-managers`). Cela permet d'utiliser de manière simple " +"le patron de conception classique :keyword:`try`....\\ :keyword:`except`..." +"\\ \\ :keyword:`finally`." #: ../Doc/reference/compound_stmts.rst:389 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" +"L'exécution de l'instruction :keyword:`with` avec un seul \"élément" +"\" (*item* dans la grammaire) se déroule comme suit :" #: ../Doc/reference/compound_stmts.rst:391 msgid "" "The context expression (the expression given in the :token:`with_item`) is " "evaluated to obtain a context manager." msgstr "" +"L'expression de contexte (l'expression donnée dans le :token:`with_item`) " +"est évaluée pour obtenir un gestionnaire de contexte." #: ../Doc/reference/compound_stmts.rst:394 msgid "The context manager's :meth:`__exit__` is loaded for later use." msgstr "" +"La méthode :meth:`__exit__` du gestionnaire de contexte est chargée pour une " +"utilisation ultérieure." #: ../Doc/reference/compound_stmts.rst:396 msgid "The context manager's :meth:`__enter__` method is invoked." -msgstr "" +msgstr "La méthode :meth:`__enter__` du gestionnaire de contexte est invoquée." #: ../Doc/reference/compound_stmts.rst:398 msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`__enter__` is assigned to it." msgstr "" +"Si une cible (*target* dans la grammaire ci-dessus) a été incluse dans " +"l'instruction :keyword:`with`, la valeur de retour de :meth:`__enter__` lui " +"est assignée." #: ../Doc/reference/compound_stmts.rst:403 msgid "" @@ -365,10 +553,15 @@ msgid "" "it will be treated the same as an error occurring within the suite would be. " "See step 6 below." msgstr "" +"L'instruction :keyword:`with` garantit que si la méthode :meth:`__enter__` " +"se termine sans erreur, alors la méthode :meth:`__exit__` est toujours " +"appelée. Ainsi, si une erreur se produit pendant l'assignation à la liste " +"cible, elle est traitée de la même façon qu'une erreur se produisant dans la " +"suite. Voir l'étape 6 ci-dessous." #: ../Doc/reference/compound_stmts.rst:409 msgid "The suite is executed." -msgstr "" +msgstr "La suite est exécutée." #: ../Doc/reference/compound_stmts.rst:411 msgid "" @@ -377,6 +570,10 @@ msgid "" "arguments to :meth:`__exit__`. Otherwise, three :const:`None` arguments are " "supplied." msgstr "" +"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si " +"une exception a causé la sortie de la suite, son type, sa valeur et sa pile " +"d'appels sont passés en arguments à :meth:`__exit__`. Sinon, trois " +"arguments :const:`None` sont fournis." #: ../Doc/reference/compound_stmts.rst:416 msgid "" @@ -385,6 +582,11 @@ msgid "" "value was true, the exception is suppressed, and execution continues with " "the statement following the :keyword:`with` statement." msgstr "" +"Si l'on est sorti de la suite en raison d'une exception et que la valeur de " +"retour de la méthode :meth:`__exit__` était fausse, l'exception est re-" +"levée. Si la valeur de retour était vraie, l'exception est supprimée et " +"l'exécution continue avec l'instruction qui suit l'instruction :keyword:" +"`with`." #: ../Doc/reference/compound_stmts.rst:421 msgid "" @@ -392,12 +594,17 @@ msgid "" "value from :meth:`__exit__` is ignored, and execution proceeds at the normal " "location for the kind of exit that was taken." msgstr "" +"Si l'on est sorti de la suite pour une raison autre qu'une exception, la " +"valeur de retour de :meth:`__exit__` est ignorée et l'exécution se poursuit " +"à l'endroit normal pour le type de sortie prise." #: ../Doc/reference/compound_stmts.rst:425 msgid "" "With more than one item, the context managers are processed as if multiple :" "keyword:`with` statements were nested::" msgstr "" +"Avec plus d'un élément, les gestionnaires de contexte sont traités comme si " +"plusieurs instructions :keyword:`with` étaient imbriquées ::" #: ../Doc/reference/compound_stmts.rst:431 #: ../Doc/reference/compound_stmts.rst:621 @@ -406,7 +613,7 @@ msgstr "est équivalente à : ::" #: ../Doc/reference/compound_stmts.rst:437 msgid "Support for multiple context expressions." -msgstr "" +msgstr "Prise en charge de multiples expressions de contexte." #: ../Doc/reference/compound_stmts.rst:443 msgid ":pep:`343` - The \"with\" statement" @@ -417,16 +624,20 @@ msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." #: ../Doc/reference/compound_stmts.rst:454 msgid "Function definitions" -msgstr "" +msgstr "Définition de fonctions" #: ../Doc/reference/compound_stmts.rst:466 msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" msgstr "" +"Une définition de fonction définit un objet fonction allogène (voir la " +"section :ref:`types`) :" #: ../Doc/reference/compound_stmts.rst:483 msgid "" @@ -436,12 +647,20 @@ msgid "" "a reference to the current global namespace as the global namespace to be " "used when the function is called." msgstr "" +"Une définition de fonction est une instruction qui est exécutée. Son " +"exécution lie le nom de la fonction, dans l'espace de noms local courant, à " +"un objet fonction (un objet qui encapsule le code exécutable de la " +"fonction). Cet objet fonction contient une référence à l'espace des noms " +"globaux courant comme espace des noms globaux à utiliser lorsque la fonction " +"est appelée." #: ../Doc/reference/compound_stmts.rst:489 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" +"La définition de la fonction n'exécute pas le corps de la fonction ; elle " +"n'est exécutée que lorsque la fonction est appelée [#]_." #: ../Doc/reference/compound_stmts.rst:495 msgid "" @@ -453,17 +672,26 @@ msgid "" "function object. Multiple decorators are applied in nested fashion. For " "example, the following code ::" msgstr "" +"Une définition de fonction peut être encapsulée dans une ou plusieurs " +"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " +"fonction est définie, dans la portée qui contient la définition de " +"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " +"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " +"fonction en lieu et place de l'objet fonction. Lorsqu'il y a plusieurs " +"décorateurs, ils sont appliqués par imbrication ; par exemple, le code " +"suivant ::" #: ../Doc/reference/compound_stmts.rst:506 #: ../Doc/reference/compound_stmts.rst:643 msgid "is roughly equivalent to ::" -msgstr "" +msgstr "est à peu près équivalent à ::" #: ../Doc/reference/compound_stmts.rst:511 msgid "" "except that the original function is not temporarily bound to the name " "``func``." msgstr "" +"sauf que la fonction originale n'est pas temporairement liée au nom ``func``." #: ../Doc/reference/compound_stmts.rst:517 msgid "" @@ -475,6 +703,14 @@ msgid "" "up until the \"``*``\" must also have a default value --- this is a " "syntactic restriction that is not expressed by the grammar." msgstr "" +"Lorsqu'un ou plusieurs :term:`paramètres ` sont de la forme " +"*parameter* ``=`` *expression*, on dit que la fonction a des \"valeurs de " +"paramètres par défaut\". Pour un paramètre avec une valeur par défaut, l’:" +"term:`argument` correspondant peut être omis lors de l'appel, la valeur par " +"défaut du paramètre est alors utilisée. Si un paramètre a une valeur par " +"défaut, tous les paramètres suivants jusqu'à \"``*``\" doivent aussi avoir " +"une valeur par défaut --- ceci est une restriction syntaxique qui n'est pas " +"exprimée dans la grammaire." #: ../Doc/reference/compound_stmts.rst:525 msgid "" @@ -488,6 +724,16 @@ msgid "" "what was intended. A way around this is to use ``None`` as the default, and " "explicitly test for it in the body of the function, e.g.::" msgstr "" +"**Les valeurs par défaut des paramètres sont évaluées de la gauche vers la " +"droite quand la définition de la fonction est exécutée**. Cela signifie que " +"l'expression est évaluée une fois, lorsque la fonction est définie, et que " +"c'est la même valeur \"pré-calculée\" qui est utilisée à chaque appel. C'est " +"particulièrement important à comprendre lorsqu'un paramètre par défaut est " +"un objet mutable, tel qu'une liste ou un dictionnaire : si la fonction " +"modifie l'objet (par exemple en ajoutant un élément à une liste), la valeur " +"par défaut est modifiée. En général, ce n'est pas l'effet voulu. Une façon " +"d'éviter cet écueil est d'utiliser ``None`` par défaut et de tester " +"explicitement la valeur dans le corps de la fonction. Par exemple ::" #: ../Doc/reference/compound_stmts.rst:545 msgid "" @@ -516,6 +762,18 @@ msgid "" "values are available as values of a dictionary keyed by the parameters' " "names in the :attr:`__annotations__` attribute of the function object." msgstr "" +"Les paramètres peuvent avoir des annotations sous la forme \"``: expression``" +"\" après le nom du paramètre. Tout paramètre peut avoir une annotation, " +"même ceux de la forme ``*identificateur`` ou ``**identificateur``. Les " +"fonctions peuvent avoir une annotation pour la valeur de retour, sous la " +"forme \"``-> expression``\" après la liste des paramètres. Ces annotations " +"peuvent être toute expression Python valide et sont évaluées lorsque la " +"définition de fonction est exécutée. Les annotations peuvent être évaluées " +"dans un ordre différent de celui où elles apparaissent dans le code source. " +"La présence d'annotations ne modifie la sémantique d'une fonction. Les " +"valeurs des annotations sont accessibles comme valeurs d'un dictionnaire " +"dont les clés sont les noms des paramètres et défini comme attribut :attr:" +"`__annotations__` de l'objet fonction." #: ../Doc/reference/compound_stmts.rst:570 msgid "" @@ -528,6 +786,15 @@ msgid "" "keyword:`def`\" form is actually more powerful since it allows the execution " "of multiple statements and annotations." msgstr "" +"Il est aussi possible de créer des fonctions anonymes (fonctions non liées à " +"un nom), pour une utilisation immédiate dans des expressions. Utilisez alors " +"des expressions lambda, décrites dans la section :ref:`lambda`. Notez qu'une " +"expression lambda est simplement un raccourci pour définir une fonction " +"simple ; une fonction définie par une instruction \":keyword:`def`\" peut " +"être passée (en argument) ou assignée à un autre nom, tout comme une " +"fonction définie par une expression lambda. La forme \":keyword:`def`\" est " +"en fait plus puissante puisqu'elle permet l'exécution de plusieurs " +"instructions et les annotations." #: ../Doc/reference/compound_stmts.rst:578 msgid "" @@ -537,22 +804,30 @@ msgid "" "function can access the local variables of the function containing the def. " "See section :ref:`naming` for details." msgstr "" +"**Note pour les programmeurs :** les fonctions sont des objets de première " +"classe. Une instruction \"``def``\" exécutée à l'intérieur d'une définition " +"de fonction définit une fonction locale qui peut être renvoyée ou passée en " +"tant qu'argument. Les variables libres utilisées dans la fonction imbriquée " +"ont accès aux variables locales de la fonction contenant le \"``def``\". " +"Voir la section :ref:`naming` pour plus de détails." #: ../Doc/reference/compound_stmts.rst:586 msgid ":pep:`3107` - Function Annotations" -msgstr "" +msgstr ":pep:`3107` -- Annotations de fonctions" #: ../Doc/reference/compound_stmts.rst:587 msgid "The original specification for function annotations." -msgstr "" +msgstr "La spécification originale pour les annotations de fonctions." #: ../Doc/reference/compound_stmts.rst:593 msgid "Class definitions" -msgstr "" +msgstr "Définition de classes" #: ../Doc/reference/compound_stmts.rst:605 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" +"Une définition de classe définit un objet classe (voir la section :ref:" +"`types`) :" #: ../Doc/reference/compound_stmts.rst:612 msgid "" @@ -562,6 +837,13 @@ msgid "" "allows subclassing. Classes without an inheritance list inherit, by " "default, from the base class :class:`object`; hence, ::" msgstr "" +"Une définition de classe est une instruction qui est exécutée. La liste " +"d'héritage (*inheritance* entre crochets dans la grammaire ci-dessus) donne " +"habituellement une liste de classes de base (voir :ref:`metaclasses` pour " +"des utilisations plus avancées). Donc chaque élément de la liste doit " +"pouvoir être évalué comme un objet classe qui autorise les sous-classes. " +"Les classes sans liste d'héritage héritent, par défaut, de la classe de " +"base :class:`object` ; d'où ::" #: ../Doc/reference/compound_stmts.rst:626 msgid "" @@ -574,22 +856,38 @@ msgid "" "attribute dictionary. The class name is bound to this class object in the " "original local namespace." msgstr "" +"La suite de la classe est ensuite exécutée dans un nouveau cadre d'exécution " +"(voir :ref:`naming`), en utilisant un espace de noms local nouvellement créé " +"et l'espace de noms global d'origine (habituellement, la suite contient " +"principalement des définitions de fonctions). Lorsque la suite de la classe " +"termine son exécution, son cadre d'exécution est abandonné mais son espace " +"des noms locaux est sauvegardé [#]_. Un objet classe est alors créé en " +"utilisant la liste d'héritage pour les classes de base et l'espace de noms " +"sauvegardé comme dictionnaire des attributs. Le nom de classe est lié à " +"l'objet classe dans l'espace de noms local original." #: ../Doc/reference/compound_stmts.rst:635 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." msgstr "" +"La création de classes peut être fortement personnalisée en utilisant les :" +"ref:`métaclasses `." #: ../Doc/reference/compound_stmts.rst:637 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" +"Les classes peuvent aussi être décorées : comme pour les décorateurs de " +"fonctions ::" #: ../Doc/reference/compound_stmts.rst:648 msgid "" "The evaluation rules for the decorator expressions are the same as for " "function decorators. The result is then bound to the class name." msgstr "" +"Les règles d'évaluation pour les expressions de décorateurs sont les mêmes " +"que pour les décorateurs de fonctions. Le résultat est alors lié au nom de " +"la classe." #: ../Doc/reference/compound_stmts.rst:651 msgid "" @@ -603,10 +901,22 @@ msgid "" "` can be used to create instance variables with different " "implementation details." msgstr "" +"**Note pour les programmeurs :** les variables définies dans la définition " +"de classe sont des attributs de classe ; elles sont partagées par les " +"instances. Les attributs d'instance peuvent être définis dans une méthode en " +"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " +"accessibles par la notation \"``self.name``\", et un attribut d'instance " +"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " +"Les attributs de classe peuvent être utilisés comme valeurs par défaut pour " +"les attributs d'instances, mais l'utilisation de valeurs mutables peut " +"conduire à des résultats inattendus. Les :ref:`descripteurs ` " +"peuvent être utilisés pour créer des variables d'instances avec des détails " +"d'implémentation différents." #: ../Doc/reference/compound_stmts.rst:663 msgid ":pep:`3115` - Metaclasses in Python 3 :pep:`3129` - Class Decorators" msgstr "" +":pep:`3115` -- Métaclasses en Python 3 :pep:`3129` -- Décorateurs de classes" #: ../Doc/reference/compound_stmts.rst:668 msgid "Coroutines" @@ -614,7 +924,7 @@ msgstr "Coroutines" #: ../Doc/reference/compound_stmts.rst:676 msgid "Coroutine function definition" -msgstr "" +msgstr "Définition de fonctions coroutines" #: ../Doc/reference/compound_stmts.rst:685 msgid "" @@ -624,12 +934,20 @@ msgid "" "expressions, :keyword:`async for` and :keyword:`async with` can only be used " "in coroutine bodies." msgstr "" +"L'exécution de coroutines Python peut être suspendue et reprise à plusieurs " +"endroits (voir :term:`coroutine`). Dans le corps d'une coroutine, tout " +"identificateur ``await`` ou ``async`` devient un mots-clé réservé ; les " +"expressions :keyword:`await`, :keyword:`async for` et :keyword:`async with` " +"ne peuvent être utilisées que dans les corps de coroutines." #: ../Doc/reference/compound_stmts.rst:691 msgid "" "Functions defined with ``async def`` syntax are always coroutine functions, " "even if they do not contain ``await`` or ``async`` keywords." msgstr "" +"Les fonctions définies avec la syntaxe ``async def`` sont toujours des " +"fonctions coroutines, même si elles ne contiennent aucun mot-clé ``await`` " +"ou ``async``." #: ../Doc/reference/compound_stmts.rst:694 msgid "" @@ -639,11 +957,11 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:697 msgid "An example of a coroutine function::" -msgstr "" +msgstr "Un exemple de fonction coroutine ::" #: ../Doc/reference/compound_stmts.rst:708 msgid "The :keyword:`async for` statement" -msgstr "" +msgstr "L'instruction :keyword:`async for`" #: ../Doc/reference/compound_stmts.rst:713 msgid "" @@ -651,56 +969,71 @@ msgid "" "*iter* implementation, and :term:`asynchronous iterator` can call " "asynchronous code in its *next* method." msgstr "" +"Un :term:`itérable asynchrone ` est capable d'appeler " +"du code asynchrone dans l'implémentation de sa méthode *iter* ; un :term:" +"`itérateur asynchrone ` peut appeler du code " +"asynchrone dans sa méthode *next*." #: ../Doc/reference/compound_stmts.rst:717 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterators." msgstr "" +"L'instruction ``async for`` permet d'itérer facilement sur des itérateurs " +"asynchrones." #: ../Doc/reference/compound_stmts.rst:720 #: ../Doc/reference/compound_stmts.rst:760 msgid "The following code::" -msgstr "" +msgstr "Le code suivant ::" #: ../Doc/reference/compound_stmts.rst:727 #: ../Doc/reference/compound_stmts.rst:765 msgid "Is semantically equivalent to::" -msgstr "" +msgstr "est sémantiquement équivalent à ::" #: ../Doc/reference/compound_stmts.rst:742 msgid "See also :meth:`__aiter__` and :meth:`__anext__` for details." msgstr "" +"Voir aussi :meth:`__aiter__` et :meth:`__anext__` pour plus de détails." #: ../Doc/reference/compound_stmts.rst:744 msgid "" "It is a :exc:`SyntaxError` to use ``async for`` statement outside of an :" "keyword:`async def` function." msgstr "" +"C'est une :exc:`SyntaxError` d'utiliser une instruction ``async for`` en " +"dehors d'une fonction :keyword:`async def`." #: ../Doc/reference/compound_stmts.rst:752 msgid "The :keyword:`async with` statement" -msgstr "" +msgstr "L'instruction :keyword:`async with`" #: ../Doc/reference/compound_stmts.rst:757 msgid "" "An :term:`asynchronous context manager` is a :term:`context manager` that is " "able to suspend execution in its *enter* and *exit* methods." msgstr "" +"Un :term:`gestionnaire de contexte asynchrone ` est un :term:`gestionnaire de contexte ` qui est " +"capable de suspendre l'exécution dans ses méthodes *enter* et *exit*." #: ../Doc/reference/compound_stmts.rst:781 msgid "See also :meth:`__aenter__` and :meth:`__aexit__` for details." msgstr "" +"Voir aussi :meth:`__aenter__` et :meth:`__aexit__` pour plus de détails." #: ../Doc/reference/compound_stmts.rst:783 msgid "" "It is a :exc:`SyntaxError` to use ``async with`` statement outside of an :" "keyword:`async def` function." msgstr "" +"C'est une :exc:`SyntaxError` d'utiliser l'instruction ``async with`` en " +"dehors d'une fonction :keyword:`async def`." #: ../Doc/reference/compound_stmts.rst:788 msgid ":pep:`492` - Coroutines with async and await syntax" -msgstr "" +msgstr ":pep:`492` -- Coroutines avec les syntaxes *async* et *await*" #: ../Doc/reference/compound_stmts.rst:792 msgid "Footnotes" @@ -712,6 +1045,10 @@ msgid "" "keyword:`finally` clause which happens to raise another exception. That new " "exception causes the old one to be lost." msgstr "" +"L'exception est propagée à la pile d'appels à moins qu'il n'y ait une " +"clause :keyword:`finally` qui lève une autre exception, ce qui entraîne la " +"perte de l'ancienne exception. Cette nouvelle exception entraîne la perte " +"pure et simple de l'ancienne." #: ../Doc/reference/compound_stmts.rst:797 msgid "" @@ -719,6 +1056,9 @@ msgid "" "or the execution of a :keyword:`return`, :keyword:`continue`, or :keyword:" "`break` statement." msgstr "" +"Actuellement, l'exécution \"atteint la fin\" sauf dans le cas d'une " +"exception, de l'exécution de l'instruction :keyword:`return`, :keyword:" +"`continue` ou :keyword:`break`." #: ../Doc/reference/compound_stmts.rst:801 msgid "" @@ -726,6 +1066,9 @@ msgid "" "transformed into the function's ``__doc__`` attribute and therefore the " "function's :term:`docstring`." msgstr "" +"Une chaîne littérale apparaissant comme première instruction dans le corps " +"de la fonction est transformée en attribut ``__doc__`` de la fonction et " +"donc en :term:`docstring` de la fonction." #: ../Doc/reference/compound_stmts.rst:805 msgid "" @@ -733,3 +1076,6 @@ msgid "" "transformed into the namespace's ``__doc__`` item and therefore the class's :" "term:`docstring`." msgstr "" +"Une chaîne littérale apparaissant comme première instruction dans le corps " +"de la classe est transformée en élément ``__doc__`` de l'espace de noms et " +"donc en :term:`docstring` de la classe." diff --git a/reference/datamodel.po b/reference/datamodel.po index de559b11..c8ccd429 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" -msgstr "" +msgstr "Modèle de données" #: ../Doc/reference/datamodel.rst:12 msgid "Objects, values and types" -msgstr "" +msgstr "Objets, valeurs et types" #: ../Doc/reference/datamodel.rst:18 msgid "" @@ -31,6 +31,11 @@ msgid "" "sense, and in conformance to Von Neumann's model of a \"stored program " "computer,\" code is also represented by objects.)" msgstr "" +"En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " +"les données d'un programme Python sont représentées par des objets ou par " +"des relations entre les objets (dans un certain sens, et en conformité avec " +"le modèle de Von Neumann \"d'ordinateur à programme enregistré\", le code " +"est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 msgid "" @@ -40,10 +45,15 @@ msgid "" "two objects; the :func:`id` function returns an integer representing its " "identity." msgstr "" +"Chaque objet possède un identifiant, un type et une valeur. *L'identifiant* " +"d'un objet ne change jamais après sa création ; vous pouvez vous le " +"représenter comme l'adresse de l'objet en mémoire. L'opérateur ':keyword:" +"`is`' compare les identifiants de deux objets ; la fonction :func:`id` " +"renvoie un entier représentant cet identifiant." #: ../Doc/reference/datamodel.rst:42 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." -msgstr "" +msgstr "en CPython, ``id(x)`` est l'adresse mémoire où est stocké ``x``." #: ../Doc/reference/datamodel.rst:44 msgid "" @@ -53,6 +63,11 @@ msgid "" "an object itself). Like its identity, an object's :dfn:`type` is also " "unchangeable. [#]_" msgstr "" +"Le type de l'objet détermine les opérations que l'on peut appliquer à " +"l'objet (par exemple, \"a-t-il une longueur ?\") et définit aussi les " +"valeurs possibles pour les objets de ce type. La fonction :func:`type` " +"renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " +"le :dfn:`type` d'un objet ne peut pas être modifié [#]_." #: ../Doc/reference/datamodel.rst:50 msgid "" @@ -67,6 +82,18 @@ msgid "" "instance, numbers, strings and tuples are immutable, while dictionaries and " "lists are mutable." msgstr "" +"La *valeur* de certains objets peut changer. Les objets dont la valeur peut " +"changer sont dits *muables* (*mutable* en anglais) ; les objets dont la " +"valeur est définitivement fixée à leur création sont dits *immuables* " +"(*immutable* en anglais). La valeur d'un objet conteneur immuable qui " +"contient une référence vers un objet muable peut varier lorsque la valeur de " +"l'objet muable change ; cependant, le conteneur est quand même considéré " +"comme immuable parce que l'ensemble des objets qu'il contient ne peut pas " +"être modifié. Ainsi, l'immuabilité n'est pas strictement équivalente au fait " +"d'avoir une valeur non modifiable, c'est plus subtil. La muabilité d'un " +"objet est définie par son type ; par exemple, les nombres, les chaînes de " +"caractères et les tuples sont immuables alors que les dictionnaires et les " +"listes sont muables." #: ../Doc/reference/datamodel.rst:65 msgid "" @@ -76,6 +103,12 @@ msgid "" "implementation quality how garbage collection is implemented, as long as no " "objects are collected that are still reachable." msgstr "" +"Un objet n'est jamais explicitement détruit ; cependant, lorsqu'il ne peut " +"plus être atteint, il a vocation à être supprimé par le ramasse-miettes " +"(*garbage-collector* en anglais). L'implémentation peut retarder cette " +"opération ou même ne pas la faire du tout --- la façon dont fonctionne le " +"ramasse-miette est particulière à chaque implémentation, l'important étant " +"qu'il ne supprime pas d'objet qui peut encore être atteint." #: ../Doc/reference/datamodel.rst:73 msgid "" @@ -88,6 +121,15 @@ msgid "" "on immediate finalization of objects when they become unreachable (so you " "should always close files explicitly)." msgstr "" +"CPython utilise aujourd'hui un mécanisme de compteur de références avec une " +"détection, en temps différé et optionnelle, des cycles d'objets. Ce " +"mécanisme supprime la plupart des objets dès qu'ils ne sont plus accessibles " +"mais il ne garantit pas la suppression des objets où il existe des " +"références circulaires. Consultez la documentation du module :mod:`gc` pour " +"tout ce qui concerne la suppression des cycles. D'autres implémentations " +"agissent différemment et CPython pourrait évoluer. Ne vous reposez pas sur " +"la finalisation immédiate des objets devenus inaccessibles (ainsi, vous " +"devez toujours fermer les fichiers explicitement)." #: ../Doc/reference/datamodel.rst:82 msgid "" @@ -96,6 +138,11 @@ msgid "" "catching an exception with a ':keyword:`try`...\\ :keyword:`except`' " "statement may keep objects alive." msgstr "" +"Notez que si vous utilisez les fonctionnalités de débogage ou de trace de " +"l'implémentation, il est possible que des références qui seraient " +"normalement supprimées soient toujours présentes. Notez aussi que capturer " +"une exception avec l'instruction ':keyword:`try`...\\ :keyword:`except`' " +"peut conserver des objets en vie." #: ../Doc/reference/datamodel.rst:87 msgid "" @@ -108,6 +155,14 @@ msgid "" "`finally`' statement and the ':keyword:`with`' statement provide convenient " "ways to do this." msgstr "" +"Certains objets font référence à des ressources \"externes\" telles que des " +"fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " +"moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " +"qu'il supprime tous les objets, ces objets fournissent également un moyen " +"explicite de libérer la ressource externe, généralement sous la forme d'une " +"méthode :meth:`close`. Nous incitons fortement les programmeurs à fermer " +"explicitement de tels objets. Les instructions ':keyword:`try`...\\ :keyword:" +"`finally`' et ':keyword:`with`' sont très pratiques pour cela." #: ../Doc/reference/datamodel.rst:97 msgid "" @@ -120,6 +175,16 @@ msgid "" "implied. So, if an immutable container (like a tuple) contains a reference " "to a mutable object, its value changes if that mutable object is changed." msgstr "" +"Certains objets contiennent des références à d'autres objets ; on les " +"appelle *conteneurs*. Comme exemples de conteneurs, nous pouvons citer les " +"tuples, les listes et les dictionnaires. Les références sont parties " +"intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " +"nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas des " +"identifiants des objets contenus ; cependant, lorsque nous parlons de la " +"muabilité d'un conteneur, seuls les identifiants des objets immédiatement " +"contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " +"contient une référence à un objet muable, sa valeur change si cet objet " +"muable est modifié." #: ../Doc/reference/datamodel.rst:106 msgid "" @@ -133,10 +198,20 @@ msgid "" "different, unique, newly created empty lists. (Note that ``c = d = []`` " "assigns the same object to both ``c`` and ``d``.)" msgstr "" +"Presque tous les comportements d'un objet dépendent du type de l'objet. Même " +"son identifiant est concerné dans un certain sens : pour les types " +"immuables, les opérations qui calculent de nouvelles valeurs peuvent en fait " +"renvoyer une référence à n'importe quel objet existant avec le même type et " +"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " +"Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " +"référer au même objet avec la valeur un, en fonction de l'implémentation. " +"Mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " +"référence à deux listes vides distinctes nouvellement créées. Notez que ``c " +"= d = []`` attribue le même objet à ``c`` et ``d``." #: ../Doc/reference/datamodel.rst:120 msgid "The standard type hierarchy" -msgstr "" +msgstr "Hiérarchie des types standards" #: ../Doc/reference/datamodel.rst:129 msgid "" @@ -147,6 +222,12 @@ msgid "" "integers, etc.), although such additions will often be provided via the " "standard library instead." msgstr "" +"Vous trouvez ci-dessous une liste des types natifs de Python. Des modules " +"d'extension (écrits en C, Java ou d'autres langages) peuvent définir des " +"types supplémentaires. Les futures versions de Python pourront ajouter des " +"types à cette hiérarchie (par exemple les nombres rationnels, des tableaux " +"d'entiers stockés efficacement, etc.), bien que de tels ajouts se trouvent " +"souvent plutôt dans la bibliothèque standard." #: ../Doc/reference/datamodel.rst:140 msgid "" @@ -155,10 +236,14 @@ msgid "" "and are not intended for general use. Their definition may change in the " "future." msgstr "" +"Quelques descriptions des types ci-dessous contiennent un paragraphe listant " +"des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " +"et n'ont, en général, pas vocation à être utilisés. Leur définition peut " +"changer dans le futur." #: ../Doc/reference/datamodel.rst:150 msgid "None" -msgstr "*None*" +msgstr "None" #: ../Doc/reference/datamodel.rst:147 msgid "" @@ -167,6 +252,11 @@ msgid "" "signify the absence of a value in many situations, e.g., it is returned from " "functions that don't explicitly return anything. Its truth value is false." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``None``. Il est " +"utilisé pour signifier l'absence de valeur dans de nombreux cas, par exemple " +"pour des fonctions qui ne retournent rien explicitement. Sa valeur booléenne " +"est fausse." #: ../Doc/reference/datamodel.rst:165 msgid "NotImplemented" @@ -181,14 +271,23 @@ msgid "" "will then try the reflected operation, or some other fallback, depending on " "the operator.) Its truth value is true." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``NotImplemented``. " +"Les méthodes numériques et les comparaisons riches doivent renvoyer cette " +"valeur si elles n'implémentent pas l'opération pour les opérandes fournis " +"(l'interpréteur essaie alors l'opération en permutant les opérandes ou tout " +"autre stratégie de contournement, en fonction de l'opérateur). Sa valeur " +"booléenne est vraie." #: ../Doc/reference/datamodel.rst:162 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" +"Consultez :ref:`implementing-the-arithmetic-operations` pour davantage de " +"details." #: ../Doc/reference/datamodel.rst:172 msgid "Ellipsis" -msgstr "" +msgstr "Ellipse" #: ../Doc/reference/datamodel.rst:170 msgid "" @@ -196,6 +295,9 @@ msgid "" "This object is accessed through the literal ``...`` or the built-in name " "``Ellipsis``. Its truth value is true." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le littéral ``...`` ou le nom " +"natif ``Ellipsis``. Sa valeur booléenne est vraie." #: ../Doc/reference/datamodel.rst:242 msgid ":class:`numbers.Number`" @@ -209,12 +311,20 @@ msgid "" "strongly related to mathematical numbers, but subject to the limitations of " "numerical representation in computers." msgstr "" +"Ces objets sont créés par les littéraux numériques et renvoyés en tant que " +"résultats par les opérateurs et les fonctions arithmétiques natives. Les " +"objets numériques sont immuables ; une fois créés, leur valeur ne change " +"pas. Les nombres Python sont bien sûr très fortement corrélés aux nombres " +"mathématiques mais ils sont soumis aux limitations des représentations " +"numériques par les ordinateurs." #: ../Doc/reference/datamodel.rst:183 msgid "" "Python distinguishes between integers, floating point numbers, and complex " "numbers:" msgstr "" +"Python distingue les entiers, les nombres à virgule flottante et les nombres " +"complexes :" #: ../Doc/reference/datamodel.rst:217 msgid ":class:`numbers.Integral`" @@ -225,14 +335,16 @@ msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." msgstr "" +"Ils représentent des éléments de l'ensemble mathématique des entiers " +"(positifs ou négatifs)." #: ../Doc/reference/datamodel.rst:192 msgid "There are two types of integers:" -msgstr "" +msgstr "Il existe deux types d'entiers :" #: ../Doc/reference/datamodel.rst:194 msgid "Integers (:class:`int`)" -msgstr "" +msgstr "Entiers (:class:`int`)" #: ../Doc/reference/datamodel.rst:196 msgid "" @@ -242,10 +354,16 @@ msgid "" "variant of 2's complement which gives the illusion of an infinite string of " "sign bits extending to the left." msgstr "" +"Ils représentent les nombres, sans limite de taille, sous réserve de pouvoir " +"être stockés en mémoire (virtuelle). Afin de pouvoir effectuer des décalages " +"et appliquer des masques, on considère qu'ils ont une représentation " +"binaire. Les nombres négatifs sont représentés comme une variante du " +"complément à 2, qui donne l'illusion d'une chaîne infinie de bits de signe " +"s'étendant vers la gauche." #: ../Doc/reference/datamodel.rst:212 msgid "Booleans (:class:`bool`)" -msgstr "" +msgstr "Booléens (:class:`bool`)" #: ../Doc/reference/datamodel.rst:208 msgid "" @@ -256,6 +374,12 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" +"Ils représentent les valeurs \"faux\" et \"vrai\". Deux objets, ``False`` et " +"``True``, sont les seuls objets booléens. Le type booléen est un sous-type " +"du type entier et les valeurs booléennes se comportent comme les valeurs 0 " +"(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " +"L'exception concerne la conversion en chaîne de caractères où ``\"False\"`` " +"et ``\"True\"`` sont renvoyées." #: ../Doc/reference/datamodel.rst:216 msgid "" @@ -263,10 +387,13 @@ msgid "" "meaningful interpretation of shift and mask operations involving negative " "integers." msgstr "" +"Les règles pour la représentation des entiers ont pour objet de donner " +"l'interprétation la plus naturelle pour les opérations de décalage et " +"masquage qui impliquent des entiers négatifs." #: ../Doc/reference/datamodel.rst:232 msgid ":class:`numbers.Real` (:class:`float`)" -msgstr "" +msgstr ":class:`numbers.Real` (:class:`float`)" #: ../Doc/reference/datamodel.rst:226 msgid "" @@ -278,10 +405,19 @@ msgid "" "dwarfed by the overhead of using objects in Python, so there is no reason to " "complicate the language with two kinds of floating point numbers." msgstr "" +"Ils représentent les nombres à virgule flottante en double précision, tels " +"que manipulés directement par la machine. Vous dépendez donc de " +"l'architecture machine sous-jacente (et de l'implémentation C ou Java) pour " +"les intervalles gérés et le traitement des débordements. Python ne gère pas " +"les nombres à virgule flottante en précision simple ; les gains en puissance " +"de calcul et mémoire, qui sont généralement la raison de l'utilisation des " +"nombres en simple précision, sont annihilés par le fait que Python encapsule " +"de toute façon ces nombres dans des objets. Il n'y a donc aucune raison de " +"compliquer le langage avec deux types de nombres à virgule flottante." #: ../Doc/reference/datamodel.rst:242 msgid ":class:`numbers.Complex` (:class:`complex`)" -msgstr "" +msgstr ":class:`numbers.Complex` (:class:`complex`)" #: ../Doc/reference/datamodel.rst:239 msgid "" @@ -290,10 +426,16 @@ msgid "" "numbers. The real and imaginary parts of a complex number ``z`` can be " "retrieved through the read-only attributes ``z.real`` and ``z.imag``." msgstr "" +"Ils représentent les nombres complexes, sous la forme d'un couple de nombres " +"à virgule flottante en double précision, tels que manipulés directement par " +"la machine. Les mêmes restrictions s'appliquent que pour les nombres à " +"virgule flottante. La partie réelle et la partie imaginaire d'un nombre " +"complexe ``z`` peuvent être demandées par les attributs en lecture seule ``z." +"real`` et ``z.imag``." #: ../Doc/reference/datamodel.rst:359 msgid "Sequences" -msgstr "" +msgstr "Séquences" #: ../Doc/reference/datamodel.rst:252 msgid "" @@ -302,6 +444,11 @@ msgid "" "When the length of a sequence is *n*, the index set contains the numbers 0, " "1, ..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``." msgstr "" +"Ils représentent des ensembles de taille finie indicés par des entiers " +"positifs ou nuls. La fonction native :func:`len` renvoie le nombre " +"d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " +"l'ensemble des indices contient les entiers 0, 1 ..., *n*-1. On accède à " +"l'élément d'indice *i* de la séquence *a* par ``a[i]``." #: ../Doc/reference/datamodel.rst:259 msgid "" @@ -310,6 +457,11 @@ msgid "" "a sequence of the same type. This implies that the index set is renumbered " "so that it starts at 0." msgstr "" +"Les séquences peuvent aussi être découpées en tranches (*slicing* en " +"anglais) : ``a[i:j]`` sélectionne tous les éléments d'indice *k* tel que *i* " +"``<=`` *k* ``<`` *j*. Quand on l'utilise dans une expression, la tranche est " +"du même type que la séquence. Ceci veut dire que l'ensemble des indices de " +"la tranche est renuméroté de manière à partir de 0." #: ../Doc/reference/datamodel.rst:264 msgid "" @@ -317,14 +469,18 @@ msgid "" "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" +"Quelques séquences gèrent le \"découpage étendu\" (*extended slicing* en " +"anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " +"éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " +"*i* ``<=`` *x* ``<`` *j*." #: ../Doc/reference/datamodel.rst:268 msgid "Sequences are distinguished according to their mutability:" -msgstr "" +msgstr "Les séquences se différencient en fonction de leur muabilité :" #: ../Doc/reference/datamodel.rst:325 msgid "Immutable sequences" -msgstr "" +msgstr "Séquences immuables" #: ../Doc/reference/datamodel.rst:275 msgid "" @@ -333,14 +489,19 @@ msgid "" "be mutable and may be changed; however, the collection of objects directly " "referenced by an immutable object cannot change.)" msgstr "" +"Un objet de type de séquence immuable ne peut pas être modifié une fois " +"qu'il a été créé. Si l'objet contient des références à d'autres objets, ces " +"autres objets peuvent être muables et peuvent être modifiés ; cependant, les " +"objets directement référencés par un objet immuable ne peuvent pas être " +"modifiés." #: ../Doc/reference/datamodel.rst:280 msgid "The following types are immutable sequences:" -msgstr "" +msgstr "Les types suivants sont des séquences immuables :" #: ../Doc/reference/datamodel.rst:303 msgid "Strings" -msgstr "Les chaînes de caractères" +msgstr "Chaînes de caractères" #: ../Doc/reference/datamodel.rst:293 msgid "" @@ -355,6 +516,18 @@ msgid "" "`bytes` using the given text encoding, and :meth:`bytes.decode` can be used " "to achieve the opposite." msgstr "" +"Une chaîne de caractères (*string* en anglais) est une séquence de valeurs " +"qui représentent des caractères Unicode. Tout caractère dont le code est " +"dans l'intervalle ``U+0000 - U+10FFFF`` peut être représenté dans une " +"chaîne. Python ne possède pas de type :c:type:`char` ; à la place, chaque " +"caractère Unicode dans la chaîne est représenté par un objet chaîne de " +"longueur ``1``. La fonction native :func:`ord` convertit un caractère " +"Unicode de la représentation en chaîne vers un entier dans l'intervalle ``0 " +"- 10FFFF`` ; la fonction :func:`chr` convertit un entier de l'intervalle ``0 " +"- 10FFFF`` vers l'objet chaîne de longueur ``1`` correspondant. :meth:`str." +"encode` peut être utilisée pour convertir un objet :class:`str` vers :class:" +"`bytes` selon l'encodage spécifié et :meth:`bytes.decode` effectue " +"l'opération inverse." #: ../Doc/reference/datamodel.rst:316 msgid "Tuples" @@ -369,6 +542,13 @@ msgid "" "usable for grouping of expressions). An empty tuple can be formed by an " "empty pair of parentheses." msgstr "" +"Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " +"deux ou plus éléments sont formés par une liste d'expressions dont les " +"éléments sont séparés par des virgules. Un tuple composé d'un seul élément " +"(un \"singleton\") est formé en suffixant une expression avec une virgule " +"(une expression en tant que telle ne crée pas un tuple car les parenthèses " +"doivent rester disponibles pour grouper les expressions). Un tuple vide peut " +"être formé à l'aide d'une paire de parenthèses vide." #: ../Doc/reference/datamodel.rst:325 msgid "Bytes" @@ -385,7 +565,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:359 msgid "Mutable sequences" -msgstr "" +msgstr "Séquences muables" #: ../Doc/reference/datamodel.rst:335 msgid "" @@ -393,14 +573,18 @@ msgid "" "and slicing notations can be used as the target of assignment and :keyword:" "`del` (delete) statements." msgstr "" +"Les séquences muables peuvent être modifiées après leur création. Les " +"notations de tranches et de sous-ensembles peuvent être utilisées en tant " +"que cibles d'une assignation ou de l'instruction :keyword:`del` " +"(suppression)." #: ../Doc/reference/datamodel.rst:339 msgid "There are currently two intrinsic mutable sequence types:" -msgstr "" +msgstr "Il existe aujourd'hui deux types intrinsèques de séquences muables :" #: ../Doc/reference/datamodel.rst:346 msgid "Lists" -msgstr "Les listes" +msgstr "Listes" #: ../Doc/reference/datamodel.rst:344 msgid "" @@ -408,10 +592,14 @@ msgid "" "placing a comma-separated list of expressions in square brackets. (Note that " "there are no special cases needed to form lists of length 0 or 1.)" msgstr "" +"N'importe quel objet Python peut être élément d'une liste. Les listes sont " +"créées en plaçant entre crochets une liste d'expressions dont les éléments " +"sont séparés par des virgules (notez que les listes de longueur 0 ou 1 ne " +"sont pas des cas particuliers)." #: ../Doc/reference/datamodel.rst:354 msgid "Byte Arrays" -msgstr "" +msgstr "Tableaux d'octets" #: ../Doc/reference/datamodel.rst:351 msgid "" @@ -426,10 +614,12 @@ msgid "" "The extension module :mod:`array` provides an additional example of a " "mutable sequence type, as does the :mod:`collections` module." msgstr "" +"Le module d'extension :mod:`array` fournit un autre exemple de type de " +"séquence muable, de même que le module :mod:`collections`." #: ../Doc/reference/datamodel.rst:393 msgid "Set types" -msgstr "" +msgstr "Ensembles" #: ../Doc/reference/datamodel.rst:366 msgid "" @@ -440,6 +630,13 @@ msgid "" "from a sequence, and computing mathematical operations such as intersection, " "union, difference, and symmetric difference." msgstr "" +"Ils représentent les ensembles d'objets, non ordonnés, finis et dont les " +"éléments sont uniques. Tels quels, ils ne peuvent pas être indicés. " +"Cependant, il est possible d'itérer dessus et la fonction native :func:`len` " +"renvoie le nombre d'éléments de l'ensemble. Les utilisations classiques des " +"ensembles sont les tests d'appartenance rapides, la suppression de doublons " +"dans une séquence et le calcul d'opérations mathématiques telles que " +"l'intersection, l'union, la différence et le complémentaire." #: ../Doc/reference/datamodel.rst:373 msgid "" @@ -448,14 +645,19 @@ msgid "" "numbers compare equal (e.g., ``1`` and ``1.0``), only one of them can be " "contained in a set." msgstr "" +"Pour les éléments des ensembles, les mêmes règles concernant l'immuabilité " +"s'appliquent que pour les clés de dictionnaires. Notez que les types " +"numériques obéissent aux règles normales pour les comparaisons numériques : " +"si deux nombres sont égaux (pour l'opération de comparaison, par exemple " +"``1`` et ``1.0``), un seul élément est conservé dans l'ensemble." #: ../Doc/reference/datamodel.rst:378 msgid "There are currently two intrinsic set types:" -msgstr "" +msgstr "Actuellement, il existe deux types d'ensembles natifs :" #: ../Doc/reference/datamodel.rst:385 msgid "Sets" -msgstr "Les ensembles" +msgstr "Ensembles" #: ../Doc/reference/datamodel.rst:383 msgid "" @@ -463,10 +665,13 @@ msgid "" "constructor and can be modified afterwards by several methods, such as :meth:" "`~set.add`." msgstr "" +"Ils représentent les ensembles muables. Un ensemble est créé par la fonction " +"native constructeur :func:`set` et peut être modifié par la suite à l'aide " +"de différentes méthodes, par exemple :meth:`~set.add`." #: ../Doc/reference/datamodel.rst:393 msgid "Frozen sets" -msgstr "" +msgstr "Ensembles gelés" #: ../Doc/reference/datamodel.rst:390 msgid "" @@ -474,10 +679,14 @@ msgid "" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " "it can be used again as an element of another set, or as a dictionary key." msgstr "" +"Ils représentent les ensembles immuables. Ils sont créés par la fonction " +"native constructeur :func:`frozenset`. Comme un ensemble gelé est immuable " +"et :term:`hachable`, il peut être utilisé comme élément d'un autre ensemble " +"ou comme clé de dictionnaire." #: ../Doc/reference/datamodel.rst:430 msgid "Mappings" -msgstr "" +msgstr "Tableaux de correspondances" #: ../Doc/reference/datamodel.rst:401 msgid "" @@ -487,10 +696,18 @@ msgid "" "assignments or :keyword:`del` statements. The built-in function :func:`len` " "returns the number of items in a mapping." msgstr "" +"Ils représentent les ensembles finis d'objets indicés par des ensembles " +"index arbitraires. La notation ``a[k]`` sélectionne l'élément indicé par " +"``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " +"des expressions, comme cible d'une assignation ou avec l'instruction :" +"keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " +"du tableau de correspondances." #: ../Doc/reference/datamodel.rst:407 msgid "There is currently a single intrinsic mapping type:" msgstr "" +"Il n'existe actuellement qu'un seul type natif pour les tableaux de " +"correspondances :" #: ../Doc/reference/datamodel.rst:430 msgid "Dictionaries" @@ -507,32 +724,49 @@ msgid "" "numbers compare equal (e.g., ``1`` and ``1.0``) then they can be used " "interchangeably to index the same dictionary entry." msgstr "" +"Ils représentent les ensembles finis d'objets indicés par des valeurs " +"presqu'arbitraires. Les seuls types de valeurs non reconnus comme clés sont " +"les valeurs contenant des listes, des dictionnaires ou les autres types " +"muables qui sont comparés par valeur plutôt que par l'identifiant de " +"l'objet. La raison de cette limitation est qu'une implémentation efficace de " +"dictionnaire requiert que l'empreinte par hachage des clés reste constante " +"dans le temps. Les types numériques obéissent aux règles normales pour les " +"comparaisons numériques : si deux nombres sont égaux pour l'opération de " +"comparaison, par exemple ``1`` et ``1.0``, alors ces deux nombres peuvent " +"être utilisés indifféremment pour désigner la même entrée du dictionnaire." #: ../Doc/reference/datamodel.rst:421 msgid "" "Dictionaries are mutable; they can be created by the ``{...}`` notation (see " "section :ref:`dict`)." msgstr "" +"Les dictionnaires sont muables : ils peuvent être créés par la notation " +"``{...}`` (reportez-vous à la section :ref:`dict`)." #: ../Doc/reference/datamodel.rst:428 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." msgstr "" +"Les modules d'extensions :mod:`dbm.ndbm` et :mod:`dbm.gnu` apportent " +"d'autres exemples de types tableaux de correspondances, de même que le " +"module :mod:`collections`." #: ../Doc/reference/datamodel.rst:667 msgid "Callable types" -msgstr "" +msgstr "Types appelables" #: ../Doc/reference/datamodel.rst:439 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" msgstr "" +"Ce sont les types sur lesquels on peut faire un appel de fonction (lisez la " +"section :ref:`calls`) :" #: ../Doc/reference/datamodel.rst:534 msgid "User-defined functions" -msgstr "" +msgstr "Fonctions allogènes" #: ../Doc/reference/datamodel.rst:448 msgid "" @@ -540,10 +774,15 @@ msgid "" "section :ref:`function`). It should be called with an argument list " "containing the same number of items as the function's formal parameter list." msgstr "" +"Un objet fonction allogène (ou fonction définie par l'utilisateur, mais ce " +"n'est pas forcément l'utilisateur courant qui a défini cette fonction) est " +"créé par la définition d'une fonction (voir la section :ref:`function`). Il " +"doit être appelé avec une liste d'arguments contenant le même nombre " +"d'éléments que la liste des paramètres formels de la fonction." #: ../Doc/reference/datamodel.rst:453 msgid "Special attributes:" -msgstr "" +msgstr "Attributs spéciaux :" #: ../Doc/reference/datamodel.rst:471 msgid "Attribute" @@ -562,6 +801,8 @@ msgid "" "The function's documentation string, or ``None`` if unavailable; not " "inherited by subclasses" msgstr "" +"Chaîne de documentation de la fonction ou ``None`` s'il n'en existe pas ; " +"n'est pas héritée par les sous-classes" #: ../Doc/reference/datamodel.rst:473 ../Doc/reference/datamodel.rst:478 #: ../Doc/reference/datamodel.rst:481 ../Doc/reference/datamodel.rst:486 @@ -569,7 +810,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:506 ../Doc/reference/datamodel.rst:514 #: ../Doc/reference/datamodel.rst:521 msgid "Writable" -msgstr "" +msgstr "Accessible en écriture" #: ../Doc/reference/datamodel.rst:478 msgid ":attr:`~definition.\\ __name__`" @@ -577,7 +818,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:478 msgid "The function's name" -msgstr "" +msgstr "Nom de la fonction" #: ../Doc/reference/datamodel.rst:481 msgid ":attr:`~definition.\\ __qualname__`" @@ -585,7 +826,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:481 msgid "The function's :term:`qualified name`" -msgstr "" +msgstr ":term:`qualified name` de la fonction" #: ../Doc/reference/datamodel.rst:486 msgid ":attr:`__module__`" @@ -596,6 +837,8 @@ msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." msgstr "" +"Nom du module où la fonction est définie ou ``None`` si ce nom n'est pas " +"disponible." #: ../Doc/reference/datamodel.rst:490 msgid ":attr:`__defaults__`" @@ -606,6 +849,8 @@ msgid "" "A tuple containing default argument values for those arguments that have " "defaults, or ``None`` if no arguments have a default value" msgstr "" +"Tuple contenant les valeurs des arguments par défaut pour ceux qui en sont " +"dotés ou ``None`` si aucun argument n'a de valeur par défaut." #: ../Doc/reference/datamodel.rst:496 msgid ":attr:`__code__`" @@ -613,7 +858,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:496 msgid "The code object representing the compiled function body." -msgstr "" +msgstr "Objet code représentant le corps de la fonction compilée." #: ../Doc/reference/datamodel.rst:499 msgid ":attr:`__globals__`" @@ -624,10 +869,13 @@ msgid "" "A reference to the dictionary that holds the function's global variables --- " "the global namespace of the module in which the function was defined." msgstr "" +"Référence pointant vers le dictionnaire contenant les variables globales de " +"la fonction -- l'espace de noms global du module dans lequel la fonction est " +"définie." #: ../Doc/reference/datamodel.rst:499 ../Doc/reference/datamodel.rst:510 msgid "Read-only" -msgstr "" +msgstr "Accessible en lecture seule" #: ../Doc/reference/datamodel.rst:506 msgid ":attr:`~object.__dict__`" @@ -635,7 +883,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:506 msgid "The namespace supporting arbitrary function attributes." -msgstr "" +msgstr "Espace de noms accueillant les attributs de la fonction." #: ../Doc/reference/datamodel.rst:510 msgid ":attr:`__closure__`" @@ -646,6 +894,8 @@ msgid "" "``None`` or a tuple of cells that contain bindings for the function's free " "variables." msgstr "" +"``None`` ou tuple de cellules qui contient un lien pour chaque variable " +"libre de la fonction." #: ../Doc/reference/datamodel.rst:514 msgid ":attr:`__annotations__`" @@ -656,6 +906,11 @@ msgid "" "A dict containing annotations of parameters. The keys of the dict are the " "parameter names, and ``'return'`` for the return annotation, if provided." msgstr "" +"Dictionnaire contenant les annotations des paramètres. Les clés du " +"dictionnaire sont les noms des paramètres et la clé ``\"return\"`` est " +"utilisée pour les annotations de la valeur renvoyée. Les entrées du " +"dictionnaire ne sont présentes que si les paramètres sont effectivement " +"annotés." #: ../Doc/reference/datamodel.rst:521 msgid ":attr:`__kwdefaults__`" @@ -664,12 +919,16 @@ msgstr "" #: ../Doc/reference/datamodel.rst:521 msgid "A dict containing defaults for keyword-only parameters." msgstr "" +"Dictionnaire contenant les valeurs par défaut pour les paramètres passés par " +"mot-clé." #: ../Doc/reference/datamodel.rst:525 msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" +"La plupart des attributs étiquetés \"Accessible en écriture\" vérifient le " +"type de la valeur qu'on leur assigne." #: ../Doc/reference/datamodel.rst:527 msgid "" @@ -680,22 +939,33 @@ msgid "" "functions. Function attributes on built-in functions may be supported in the " "future.*" msgstr "" +"Les objets fonctions acceptent également l'assignation et la lecture " +"d'attributs arbitraires. Vous pouvez utiliser cette fonctionnalité pour, par " +"exemple, associer des métadonnées aux fonctions. La notation classique par " +"point est utilisée pour définir et lire de tels attributs. *Notez que " +"l'implémentation actuelle accepte seulement les attributs de fonction sur " +"les fonctions définies par l'utilisateur. Les attributs de fonction pour les " +"fonctions natives seront peut-être acceptés dans le futur.*" #: ../Doc/reference/datamodel.rst:533 msgid "" "Additional information about a function's definition can be retrieved from " "its code object; see the description of internal types below." msgstr "" +"Vous trouvez davantage d'informations sur la définition de fonctions dans le " +"code de cet objet ; la description des types internes est donnée plus bas." #: ../Doc/reference/datamodel.rst:603 msgid "Instance methods" -msgstr "" +msgstr "Méthodes d'instances" #: ../Doc/reference/datamodel.rst:542 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." msgstr "" +"Un objet méthode d'instance combine une classe, une instance de classe et " +"tout objet appelable (normalement une fonction définie par l'utilisateur)." #: ../Doc/reference/datamodel.rst:552 msgid "" @@ -706,12 +976,20 @@ msgid "" "`__module__` is the name of the module the method was defined in, or " "``None`` if unavailable." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`__self__` est l'objet instance " +"de classe, :attr:`__func__` est l'objet fonction ; :attr:`__doc__` est la " +"documentation de la méthode (comme ``__func__.__doc__``) ; :attr:" +"`~definition.__name__` est le nom de la méthode (comme ``__func__." +"__name__``) ; :attr:`__module__` est le nom du module où la méthode est " +"définie ou ``None`` s'il n'est pas disponible." #: ../Doc/reference/datamodel.rst:558 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying function object." msgstr "" +"Les méthodes savent aussi accéder (mais pas modifier) les attributs de la " +"fonction de l'objet fonction sous-jacent." #: ../Doc/reference/datamodel.rst:561 msgid "" @@ -719,6 +997,10 @@ msgid "" "class (perhaps via an instance of that class), if that attribute is a user-" "defined function object or a class method object." msgstr "" +"Les objets méthodes définies par l'utilisateur peuvent être créés quand vous " +"récupérez un attribut de classe (par exemple *via* une instance de cette " +"classe) si cet attribut est un objet fonction définie par l'utilisateur ou " +"un objet méthode de classe." #: ../Doc/reference/datamodel.rst:565 msgid "" @@ -727,6 +1009,10 @@ msgid "" "attribute is the instance, and the method object is said to be bound. The " "new method's :attr:`__func__` attribute is the original function object." msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un objet fonction " +"définie par l'utilisateur *via* une des instances, son attribut :attr:" +"`__self__` est l'instance et l'objet méthode est réputé lié. Le nouvel " +"attribut de la méthode :attr:`__func__` est l'objet fonction original." #: ../Doc/reference/datamodel.rst:571 msgid "" @@ -735,6 +1021,11 @@ msgid "" "object, except that the :attr:`__func__` attribute of the new instance is " "not the original method object but its :attr:`__func__` attribute." msgstr "" +"Quand un objet méthode définie par l'utilisateur est créé à partir d'un " +"autre objet méthode de la classe ou de l'instance, son comportement est " +"identique à l'objet fonction sauf pour l'attribut :attr:`__func__` de la " +"nouvelle instance qui n'est pas l'objet méthode original mais son attribut :" +"attr:`__func__`." #: ../Doc/reference/datamodel.rst:577 msgid "" @@ -743,6 +1034,10 @@ msgid "" "itself, and its :attr:`__func__` attribute is the function object underlying " "the class method." msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un autre objet méthode " +"de la classe ou de l'instance, son attribut :attr:`__self__` est la classe " +"elle-même et son attribut :attr:`__func__` est l'objet fonction sous-jacent " +"la méthode de classe." #: ../Doc/reference/datamodel.rst:582 msgid "" @@ -752,6 +1047,12 @@ msgid "" "contains a definition for a function :meth:`f`, and ``x`` is an instance of :" "class:`C`, calling ``x.f(1)`` is equivalent to calling ``C.f(x, 1)``." msgstr "" +"Quand un objet méthode d'instance est appelé, la fonction sous-jacente (:" +"attr:`__func__`) est appelée et l'objet instance de la classe (:attr:" +"`__self__`) est inséré en tête de liste des arguments. Par exemple, si :" +"class:`C` est une classe qui contient la définition d'une fonction :meth:`f` " +"et que ``x`` est une instance de :class:`C`, alors appeler ``x.f(1)`` est " +"équivalent à appeler ``C.f(x, 1)``." #: ../Doc/reference/datamodel.rst:589 msgid "" @@ -760,6 +1061,10 @@ msgid "" "itself, so that calling either ``x.f(1)`` or ``C.f(1)`` is equivalent to " "calling ``f(C,1)`` where ``f`` is the underlying function." msgstr "" +"Quand un objet méthode d'instance est dérivé à partir d'un objet méthode de " +"classe, l'instance de classe stockée dans :attr:`__self__` est en fait la " +"classe elle-même. Ainsi, appeler ``x.f(1)`` ou ``C.f(1)`` est équivalent à " +"appeler ``f(C, 1)`` où ``f`` est la fonction sous-jacente." #: ../Doc/reference/datamodel.rst:594 msgid "" @@ -773,10 +1078,20 @@ msgid "" "class instance are not converted to bound methods; this *only* happens when " "the function is an attribute of the class." msgstr "" +"Notez que la transformation d'objet fonction en objet méthode d'instance se " +"produit à chaque fois que l'attribut est récupéré à partir de l'instance. " +"Dans certains cas, assigner l'attribut à une variable locale et appeler " +"cette variable locale constitue une bonne optimisation. Notez aussi que " +"cette transformation n'a lieu que pour les fonctions définies par " +"l'utilisateur : les autres objets appelables (et les objets non appelables) " +"sont récupérés sans transformation. Il est aussi important de noter que les " +"fonctions définies par l'utilisateur qui sont attributs d'une instance de " +"classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour les " +"fonctions qui sont attributs de la classe." #: ../Doc/reference/datamodel.rst:618 msgid "Generator functions" -msgstr "" +msgstr "Fonctions générateurs" #: ../Doc/reference/datamodel.rst:610 msgid "" @@ -790,10 +1105,19 @@ msgid "" "raised and the iterator will have reached the end of the set of values to be " "returned." msgstr "" +"Une fonction ou une méthode qui utilise l'instruction :keyword:`yield` (voir " +"la section :ref:`yield`) est appelée :dfn:`fonction générateur`. Une telle " +"fonction, lorsqu'elle est appelée, retourne toujours un objet itérateur qui " +"peut être utilisé pour exécuter le corps de la fonction : appeler la " +"méthode :meth:`iterator.__next__` de l'itérateur exécute la fonction jusqu'à " +"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`yield`. " +"Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " +"exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " +"l'ensemble de valeurs qu'il peut renvoyer." #: ../Doc/reference/datamodel.rst:628 msgid "Coroutine functions" -msgstr "" +msgstr "Fonctions coroutines" #: ../Doc/reference/datamodel.rst:624 msgid "" @@ -803,10 +1127,15 @@ msgid "" "as :keyword:`async with` and :keyword:`async for` statements. See also the :" "ref:`coroutine-objects` section." msgstr "" +"Une fonction ou méthode définie en utilisant :keyword:`async def` est " +"appelée :dfn:`fonction coroutine`. Une telle fonction, quand elle est " +"appelée, renvoie un objet :term:`coroutine`. Elle peut contenir des " +"expressions :keyword:`await` ou :keyword:`async with` ou des instructions :" +"keyword:`async for`. Voir également la section :ref:`coroutine-objects`." #: ../Doc/reference/datamodel.rst:643 msgid "Built-in functions" -msgstr "Fonctions Natives" +msgstr "Fonctions natives" #: ../Doc/reference/datamodel.rst:636 msgid "" @@ -819,10 +1148,19 @@ msgid "" "``None`` (but see the next item); :attr:`__module__` is the name of the " "module the function was defined in or ``None`` if unavailable." msgstr "" +"Un objet fonction native est une enveloppe autour d'une fonction C. Nous " +"pouvons citer :func:`len` et :func:`math.sin` (:mod:`math` est un module " +"standard natif) comme fonctions natives. Le nombre et le type des arguments " +"sont déterminés par la fonction C. Des attributs spéciaux en lecture seule " +"existent : :attr:`__doc__` contient la chaîne de documentation de la " +"fonction (ou ``None`` s'il n'y en a pas) ; :attr:`~definition.__name__` est " +"le nom de la fonction ; :attr:`__self__` est défini à ``None`` ; :attr:" +"`__module__` est le nom du module où la fonction est définie ou ``None`` " +"s'il n'est pas disponible." #: ../Doc/reference/datamodel.rst:655 msgid "Built-in methods" -msgstr "" +msgstr "Méthodes natives" #: ../Doc/reference/datamodel.rst:651 msgid "" @@ -832,6 +1170,11 @@ msgid "" "*alist* is a list object. In this case, the special read-only attribute :" "attr:`__self__` is set to the object denoted by *alist*." msgstr "" +"Ce sont des fonctions natives déguisées, contenant un objet passé à une " +"fonction C en tant qu'argument supplémentaire implicite. Un exemple de " +"méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " +"Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` est défini " +"à l'objet *une_liste*." #: ../Doc/reference/datamodel.rst:662 msgid "Classes" @@ -845,16 +1188,23 @@ msgid "" "`__new__` and, in the typical case, to :meth:`__init__` to initialize the " "new instance." msgstr "" +"Les classes sont des appelables. Ces objets sont normalement utilisés pour " +"créer des instances d'elles-mêmes mais des variations sont possibles pour " +"les types de classes qui surchargent :meth:`__new__`. Les arguments de " +"l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" +"`__new__` initialise une nouvelle instance." #: ../Doc/reference/datamodel.rst:667 msgid "Class Instances" -msgstr "" +msgstr "Instances de classe" #: ../Doc/reference/datamodel.rst:665 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`__call__` method in their class." msgstr "" +"Les instances d'une classe peuvent devenir des appelables si vous définissez " +"la méthode :meth:`__call__` de leur classe." #: ../Doc/reference/datamodel.rst:714 msgid "Modules" @@ -873,18 +1223,33 @@ msgid "" "object does not contain the code object used to initialize the module (since " "it isn't needed once the initialization is done)." msgstr "" +"Les modules constituent l'organisation de base du code Python et sont créés " +"par le :ref:`mécanisme d'import ` soit avec l'instruction :" +"keyword:`import` (voir :keyword:`import`), soit en appelant des fonctions " +"telles que :func:`importlib.import_module` ou la fonction native :func:" +"`__import__`. Un objet module possède un espace de noms implémenté par un " +"objet dictionnaire (c'est le dictionnaire référencé par l'attribut " +"``__globals__`` des fonctions définies dans le module). Les références à un " +"attribut sont traduites en recherches dans ce dictionnaire, par exemple ``m." +"x`` est équivalent à ``m.__dict__[\"x\"]``. Un objet module ne contient pas " +"l'objet code utilisé pour initialiser le module (puisque celui-ci n'est plus " +"nécessaire une fois l'initialisation terminée)." #: ../Doc/reference/datamodel.rst:686 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" +"L'assignation d'un attribut met à jour le dictionnaire d'espace de noms du " +"module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = 1``." #: ../Doc/reference/datamodel.rst:691 msgid "" "Special read-only attribute: :attr:`~object.__dict__` is the module's " "namespace as a dictionary object." msgstr "" +"Attribut spécial en lecture seule : :attr:`~object.__dict__` est l'objet " +"dictionnaire répertoriant l'espace de noms du module." #: ../Doc/reference/datamodel.rst:696 msgid "" @@ -893,6 +1258,11 @@ msgid "" "still has live references. To avoid this, copy the dictionary or keep the " "module around while using its dictionary directly." msgstr "" +"en raison de la manière dont CPython nettoie les dictionnaires de modules, " +"le dictionnaire du module est effacé quand le module n'est plus visible, " +"même si le dictionnaire possède encore des références actives. Pour éviter " +"ceci, copiez le dictionnaire ou gardez le module dans votre champ de " +"visibilité tant que vous souhaitez utiliser le dictionnaire directement." #: ../Doc/reference/datamodel.rst:707 msgid "" @@ -908,7 +1278,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:770 msgid "Custom classes" -msgstr "" +msgstr "Classes déclarées par le développeur" #: ../Doc/reference/datamodel.rst:717 msgid "" @@ -925,6 +1295,21 @@ msgid "" "found in the documentation accompanying the 2.3 release at https://www." "python.org/download/releases/2.3/mro/." msgstr "" +"Le type d'une classe déclarée par le développeur est créé au moment de la " +"définition de la classe (voir la section :ref:`class`). Une classe possède " +"un espace de noms implémenté sous la forme d'un objet dictionnaire. Les " +"références vers les attributs de la classe sont traduits en recherches dans " +"ce dictionnaire, par exemple ``C.x`` est traduit en ``C.__dict__[\"x\"]`` " +"(bien qu'il existe un certain nombre de fonctions automatiques qui " +"permettent de trouver des attributs par d'autres moyens). Si le nom " +"d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " +"les classes de base. Les classes de base sont trouvées en utilisant l'ordre " +"de résolution des méthodes (*method resolution order* en anglais, ou MRO) C3 " +"qui a un comportement cohérent même en présence d'héritages en \"diamant\", " +"où différentes branches d'héritages conduisent vers un ancêtre commun. Vous " +"trouverez plus de détails sur l'ordre de résolution des méthodes MRO C3 " +"utilisé par Python dans la documentation de la version 2.3 disponible sur " +"https://www.python.org/download/releases/2.3/mro/." #: ../Doc/reference/datamodel.rst:741 msgid "" @@ -942,12 +1327,16 @@ msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." msgstr "" +"Les assignations d'un attribut de classe mettent à jour le dictionnaire de " +"la classe, jamais le dictionnaire d'une classe de base." #: ../Doc/reference/datamodel.rst:756 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." msgstr "" +"Un objet classe peut être appelé (voir ci-dessus) pour produire une instance " +"de classe (voir ci-dessous)." #: ../Doc/reference/datamodel.rst:765 msgid "" @@ -961,7 +1350,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:813 msgid "Class instances" -msgstr "" +msgstr "Instances de classes" #: ../Doc/reference/datamodel.rst:779 msgid "" @@ -979,6 +1368,22 @@ msgid "" "class attribute is found, and the object's class has a :meth:`__getattr__` " "method, that is called to satisfy the lookup." msgstr "" +"Une instance de classe est créée en appelant un objet classe (voir ci-" +"dessus). Une instance de classe possède un espace de noms implémenté sous la " +"forme d'un dictionnaire qui est le premier endroit où sont recherchées les " +"références aux attributs. Quand un attribut n'est pas trouvé dans ce " +"dictionnaire et que la classe de l'instance contient un attribut avec ce " +"nom, la recherche continue avec les attributs de la classe. Si un attribut " +"de classe est trouvé et que c'est un objet fonction définie par " +"l'utilisateur, il est transformé en objet méthode d'instance dont " +"l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " +"méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " +"\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " +"récupérer les attributs d'une classe, où la récupération *via* ses instances " +"peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " +"de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " +"l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " +"pour rechercher une correspondance." #: ../Doc/reference/datamodel.rst:795 msgid "" @@ -987,22 +1392,31 @@ msgid "" "`__delattr__` method, this is called instead of updating the instance " "dictionary directly." msgstr "" +"Les assignations et suppressions d'attributs mettent à jour le dictionnaire " +"de l'instance, jamais le dictionnaire de la classe. Si la classe possède une " +"méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " +"de mettre à jour le dictionnaire de l'instance directement." #: ../Doc/reference/datamodel.rst:805 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." msgstr "" +"Les instances de classes peuvent prétendre être des nombres, des séquences " +"ou des tableaux de correspondance si elles ont des méthodes avec des noms " +"spéciaux. Voir la section :ref:`specialnames`." #: ../Doc/reference/datamodel.rst:812 msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." msgstr "" +"Attributs spéciaux : :attr:`~object.__dict__` est le dictionnaire des " +"attributs ; :attr:`~instance.__class__` est la classe de l'instance." #: ../Doc/reference/datamodel.rst:839 msgid "I/O objects (also known as file objects)" -msgstr "" +msgstr "Objets Entrées-Sorties (ou objets fichiers)" #: ../Doc/reference/datamodel.rst:829 msgid "" @@ -1012,6 +1426,11 @@ msgid "" "makefile` method of socket objects (and perhaps by other functions or " "methods provided by extension modules)." msgstr "" +"Un :term:`objet fichier` représente un fichier ouvert. Différents raccourcis " +"existent pour créer des objets fichiers : la fonction native :func:`open` et " +"aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:`~socket." +"socket.makefile` des objets sockets (et sûrement d'autres fonctions ou " +"méthodes fournies par les modules d'extensions)." #: ../Doc/reference/datamodel.rst:835 msgid "" @@ -1020,10 +1439,15 @@ msgid "" "and error streams; they are all open in text mode and therefore follow the " "interface defined by the :class:`io.TextIOBase` abstract class." msgstr "" +"Les objets ``sys.stdin``, ``sys.stdout`` et ``sys.stderr`` sont initialisés " +"à des objets fichiers correspondant à l'entrée standard, la sortie standard " +"et le flux d'erreurs de l'interpréteur ; ils sont tous ouverts en mode texte " +"et se conforment donc à l'interface définie par la classe abstraite :class:" +"`io.TextIOBase`." #: ../Doc/reference/datamodel.rst:1045 msgid "Internal types" -msgstr "" +msgstr "Types internes" #: ../Doc/reference/datamodel.rst:846 msgid "" @@ -1031,6 +1455,9 @@ msgid "" "Their definitions may change with future versions of the interpreter, but " "they are mentioned here for completeness." msgstr "" +"Quelques types utilisés en interne par l'interpréteur sont accessibles à " +"l'utilisateur. Leur définition peut changer dans les futures versions de " +"l'interpréteur mais ils sont donnés ci-dessous à fin d'exhaustivité." #: ../Doc/reference/datamodel.rst:914 msgid "Code objects" @@ -1047,6 +1474,15 @@ msgid "" "run-time). Unlike function objects, code objects are immutable and contain " "no references (directly or indirectly) to mutable objects." msgstr "" +"Un objet code représente le code Python sous sa forme compilée en :term:" +"`bytecode`. La différence entre un objet code et un objet fonction est que " +"l'objet fonction contient une référence explicite vers les globales de la " +"fonction (le module dans lequel elle est définie) alors qu'un objet code ne " +"contient aucun contexte ; par ailleurs, les valeurs par défaut des arguments " +"sont stockées dans l'objet fonction, pas dans l'objet code (parce que ce " +"sont des valeurs calculées au moment de l'exécution). Contrairement aux " +"objets fonctions, les objets codes sont immuables et ne contiennent aucune " +"référence (directe ou indirecte) à des objets muables." #: ../Doc/reference/datamodel.rst:878 msgid "" @@ -1068,6 +1504,25 @@ msgid "" "size (including local variables); :attr:`co_flags` is an integer encoding a " "number of flags for the interpreter." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`co_name` donne le nom de la " +"fonction ; :attr:`co_argcount` est le nombre d'arguments positionnels (y " +"compris les arguments avec des valeurs par défaut) ; :attr:`co_nlocals` est " +"le nombre de variables locales utilisées par la fonction (y compris les " +"arguments) ; :attr:`co_varnames` est un tuple contenant le nom des variables " +"locales (en commençant par les noms des arguments) ; :attr:`co_cellvars` est " +"un tuple contenant les noms des variables locales qui sont référencées par " +"des fonctions imbriquées ; :attr:`co_freevars` est un tuple contenant les " +"noms des variables libres ; :attr:`co_code` est une chaîne représentant la " +"séquence des instructions de *bytecode* ; :attr:`co_consts` est un tuple " +"contenant les littéraux utilisés par le *bytecode* ; :attr:`co_names` est un " +"tuple contenant les noms utilisés par le *bytecode* ; :attr:`co_filename` " +"est le nom de fichier à partir duquel le code a été compilé ; :attr:" +"`co_firstlineno` est numéro de la première ligne de la fonction ; :attr:" +"`co_lnotab` est une chaîne qui code la correspondance entre les différents " +"endroits du *bytecode* et les numéros de lignes (pour les détails, regardez " +"le code source de l'interpréteur) ; :attr:`co_stacksize` est la taille de " +"pile nécessaire (y compris pour les variables locales) ; :attr:`co_flags` " +"est un entier qui code différents drapeaux pour l'interpréteur." #: ../Doc/reference/datamodel.rst:897 msgid "" @@ -1077,6 +1532,12 @@ msgid "" "``**keywords`` syntax to accept arbitrary keyword arguments; bit ``0x20`` is " "set if the function is a generator." msgstr "" +"Les drapeaux suivants sont codés par des bits dans :attr:`co_flags` : le bit " +"``0x04`` est positionné à 1 si la fonction utilise la syntaxe ``*arguments`` " +"pour accepter un nombre arbitraire d'arguments positionnels ; le bit " +"``0x08`` est positionné à 1 si la fonction utilise la syntaxe ``**keywords`` " +"pour accepter un nombre arbitraire d'arguments nommés ; le bit ``0x20`` est " +"positionné à 1 si la fonction est un générateur." #: ../Doc/reference/datamodel.rst:903 msgid "" @@ -1086,26 +1547,37 @@ msgid "" "compiled with future division enabled; bits ``0x10`` and ``0x1000`` were " "used in earlier versions of Python." msgstr "" +"Les déclarations de fonctionnalité future ``from __future__ import " +"division`` utilisent aussi des bits dans :attr:`co_flags` pour indiquer si " +"l'objet code a été compilé avec une fonctionnalité future : le bit " +"``0x2000`` est positionné à 1 si la fonction a été compilée avec la division " +"future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " +"versions antérieures de Python." #: ../Doc/reference/datamodel.rst:909 msgid "Other bits in :attr:`co_flags` are reserved for internal use." -msgstr "" +msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." #: ../Doc/reference/datamodel.rst:913 msgid "" "If a code object represents a function, the first item in :attr:`co_consts` " "is the documentation string of the function, or ``None`` if undefined." msgstr "" +"Si l'objet code représente une fonction, le premier élément dans :attr:" +"`co_consts` est la chaîne de documentation de la fonction (ou ``None`` s'il " +"n'y en a pas)." #: ../Doc/reference/datamodel.rst:963 msgid "Frame objects" -msgstr "" +msgstr "Objets cadres" #: ../Doc/reference/datamodel.rst:921 msgid "" "Frame objects represent execution frames. They may occur in traceback " "objects (see below)." msgstr "" +"Un objet cadre représente le cadre d'exécution. Ils apparaissent dans des " +"objets traces (voir plus loin)." #: ../Doc/reference/datamodel.rst:932 msgid "" @@ -1117,6 +1589,14 @@ msgid "" "names; :attr:`f_lasti` gives the precise instruction (this is an index into " "the bytecode string of the code object)." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`f_back` pointe vers le cadre " +"précédent (l'appelant) ou ``None`` si c'est le pied de la pile d'appel ; :" +"attr:`f_code` est l'objet code en cours d'exécution dans ce cadre ; :attr:" +"`f_locals` est le dictionnaire dans lequel sont cherchées les variables " +"locales ; :attr:`f_globals` est utilisé pour les variables globales ; :attr:" +"`f_builtins` est utilisé pour les noms natifs ; :attr:`f_lasti` donne " +"l'instruction précise (c'est un indice dans la chaîne de *bytecode* de " +"l'objet code)." #: ../Doc/reference/datamodel.rst:944 msgid "" @@ -1127,10 +1607,17 @@ msgid "" "for the bottom-most frame). A debugger can implement a Jump command (aka " "Set Next Statement) by writing to f_lineno." msgstr "" +"Attributs spéciaux en lecture-écriture : :attr:`f_trace`, s'il ne vaut pas " +"``None``, est une fonction appelée au début de chaque ligne de code source " +"(c'est utilisé par le débogueur) ; :attr:`f_lineno` est le numéro de la " +"ligne courante du cadre --- écrire dedans depuis une fonction trace fait " +"sauter à la ligne demandée (seulement pour le cadre le plus bas). Un " +"débogueur peut implémenter une commande \"sauter vers\" en écrivant dans " +"f_lineno." #: ../Doc/reference/datamodel.rst:951 msgid "Frame objects support one method:" -msgstr "" +msgstr "Les objets cadres comprennent une méthode :" #: ../Doc/reference/datamodel.rst:955 msgid "" @@ -1139,14 +1626,19 @@ msgid "" "This helps break reference cycles involving frame objects (for example when " "catching an exception and storing its traceback for later use)." msgstr "" +"Cette méthode efface toutes les références aux variables locales conservées " +"dans le cadre. Par ailleurs, si le cadre est celui d'un générateur, le " +"générateur se termine. Ceci permet de casser des références cycliques qui " +"incluent des objets cadres (par exemple, lors de la capture d'une exception " +"et du stockage de la pile d'appels pour une utilisation future)." #: ../Doc/reference/datamodel.rst:961 msgid ":exc:`RuntimeError` is raised if the frame is currently executing." -msgstr "" +msgstr ":exc:`RuntimeError` est levée si le cadre est en cours d'exécution." #: ../Doc/reference/datamodel.rst:1001 msgid "Traceback objects" -msgstr "" +msgstr "Objets traces" #: ../Doc/reference/datamodel.rst:976 msgid "" @@ -1161,6 +1653,17 @@ msgid "" "stream; if the interpreter is interactive, it is also made available to the " "user as ``sys.last_traceback``." msgstr "" +"Un objet trace représente la pile d'appels d'une exception. Il est créé au " +"moment où l'exception est levée. Quand l'interpréteur recherche un " +"gestionnaire d'exception en remontant la pile d'exécution, un objet trace " +"est inséré devant l'objet trace courant à chaque nouveau niveau. Quand il " +"entre dans le gestionnaire d'exception, la pile d'appels est rendue " +"accessible au programme (voir la section :ref:`try`). Elle est accessible " +"par le troisième élément du tuple renvoyé par ``sys.exc_info()``. Quand le " +"programme ne dispose pas d'un gestionnaire adéquat, la pile d'appels est " +"écrite (joliment formatée) sur le flux d'erreurs standard ; si " +"l'interpréteur est interactif, la pile d'appels est rendue accessible à " +"l'utilisateur en tant que ``sys.last_traceback``." #: ../Doc/reference/datamodel.rst:994 msgid "" @@ -1173,16 +1676,28 @@ msgid "" "of its frame object if the exception occurred in a :keyword:`try` statement " "with no matching except clause or with a finally clause." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`tb_next` est le prochain niveau " +"dans la pile d'appels (vers le cadre où l'exception a été levée) ou ``None`` " +"s'il n'y a pas de prochain niveau ; :attr:`tb_frame` pointe vers le cadre " +"d'exécution du niveau courant ; :attr:`tb_lineno` donne le numéro de ligne " +"où l'exception a été levée ; :attr:`tb_lasti` indique l'instruction précise. " +"Le numéro de ligne et la dernière instruction dans la trace peuvent différer " +"du numéro de ligne de l'objet cadre si l'exception a eu lieu dans une " +"instruction :keyword:`try` sans qu'il n'y ait de clause :keyword:`!except` " +"adéquate ou sans clause :keyword:`!finally`." #: ../Doc/reference/datamodel.rst:1027 msgid "Slice objects" -msgstr "" +msgstr "Objets tranches" #: ../Doc/reference/datamodel.rst:1006 msgid "" "Slice objects are used to represent slices for :meth:`__getitem__` methods. " "They are also created by the built-in :func:`slice` function." msgstr "" +"Un objet tranche est utilisé pour représenter des découpes des méthodes :" +"meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" +"`slice`." #: ../Doc/reference/datamodel.rst:1014 msgid "" @@ -1190,10 +1705,14 @@ msgid "" "`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " "each is ``None`` if omitted. These attributes can have any type." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`~decoupe.start` est la borne " +"inférieure ; :attr:`~decoupe.stop` est la borne supérieure ; :attr:`~decoupe." +"step` est la valeur du pas ; chaque attribut vaut ``None`` s'il est omis. " +"Ces attributs peuvent être de n'importe quel type." #: ../Doc/reference/datamodel.rst:1018 msgid "Slice objects support one method:" -msgstr "" +msgstr "Les objets tranches comprennent une méthode :" #: ../Doc/reference/datamodel.rst:1022 msgid "" @@ -1204,10 +1723,16 @@ msgid "" "stride length of the slice. Missing or out-of-bounds indices are handled in " "a manner consistent with regular slices." msgstr "" +"Cette méthode prend un argument entier *length* et calcule les informations " +"de la tranche que l'objet découpe décrit s'il est appliqué à une séquence de " +"*length* éléments. Elle renvoie un tuple de trois entiers ; respectivement, " +"ce sont les indices de *début* et *fin* ainsi que le *pas* de découpe. Les " +"indices manquants ou en dehors sont gérés de manière cohérente avec les " +"tranches normales." #: ../Doc/reference/datamodel.rst:1037 msgid "Static method objects" -msgstr "" +msgstr "Objets méthodes statiques" #: ../Doc/reference/datamodel.rst:1030 msgid "" @@ -1220,10 +1745,19 @@ msgid "" "callable, although the objects they wrap usually are. Static method objects " "are created by the built-in :func:`staticmethod` constructor." msgstr "" +"Les objets méthodes statiques permettent la transformation des objets " +"fonctions en objets méthodes décrits au-dessus. Un objet méthode statique " +"encapsule tout autre objet, souvent un objet méthode définie par " +"l'utilisateur. Quand un objet méthode statique est récupéré depuis une " +"classe ou une instance de classe, l'objet réellement renvoyé est un objet " +"encapsulé, qui n'a pas vocation à être transformé encore une fois. Les " +"objets méthodes statiques ne sont pas appelables en tant que tels, bien que " +"les objets qu'ils encapsulent le soient souvent. Les objets méthodes " +"statiques sont créés par le constructeur natif :func:`staticmethod`." #: ../Doc/reference/datamodel.rst:1045 msgid "Class method objects" -msgstr "" +msgstr "Objets méthodes de classes" #: ../Doc/reference/datamodel.rst:1040 msgid "" @@ -1233,10 +1767,16 @@ msgid "" "retrieval is described above, under \"User-defined methods\". Class method " "objects are created by the built-in :func:`classmethod` constructor." msgstr "" +"Un objet méthode de classe, comme un objet méthode statique, encapsule un " +"autre objet afin de modifier la façon dont cet objet est récupéré depuis les " +"classes et instances de classes. Le comportement des objets méthodes de " +"classes dans le cas d'une telle récupération est décrit plus haut, dans " +"\"méthodes définies par l'utilisateur\". Les objets méthodes de classes sont " +"créés par le constructeur natif :func:`classmethod`." #: ../Doc/reference/datamodel.rst:1050 msgid "Special method names" -msgstr "" +msgstr "Méthodes spéciales" #: ../Doc/reference/datamodel.rst:1056 msgid "" @@ -1251,6 +1791,17 @@ msgid "" "appropriate method is defined (typically :exc:`AttributeError` or :exc:" "`TypeError`)." msgstr "" +"Une classe peut implémenter certaines opérations que l'on invoque par une " +"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe en " +"tranches) en définissant des méthodes aux noms particuliers. C'est " +"l'approche utilisée par Python pour la :dfn:`surcharge d'opérateur`, " +"permettant à une classe de définir son propre comportement vis-à-vis des " +"opérateurs du langage. Par exemple, si une classe définit une méthode :meth:" +"`__getitem__` et que ``x`` est une instance de cette classe, alors ``x[i]`` " +"est globalement équivalent à ``type(x).__getitem__(x, i)``. Sauf lorsque " +"c'est mentionné, toute tentative d'appliquer une opération alors que la " +"méthode appropriée n'est pas définie lève une exception (typiquement :exc:" +"`AttributeError` ou :exc:`TypeError`)." #: ../Doc/reference/datamodel.rst:1066 msgid "" @@ -1261,10 +1812,16 @@ msgid "" "sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " "the W3C's Document Object Model.)" msgstr "" +"Lorsque vous implémentez une classe qui émule un type natif, il est " +"important que cette émulation n'implémente que ce qui fait sens pour l'objet " +"qui est modélisé. Par exemple, la recherche d'éléments individuels d'une " +"séquence peut faire sens, mais pas l'extraction d'une tranche (un exemple " +"est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des " +"documents W3C)." #: ../Doc/reference/datamodel.rst:1077 msgid "Basic customization" -msgstr "" +msgstr "Personnalisation de base" #: ../Doc/reference/datamodel.rst:1083 msgid "" @@ -1275,6 +1832,13 @@ msgid "" "(the call to the class). The return value of :meth:`__new__` should be the " "new object instance (usually an instance of *cls*)." msgstr "" +"Appelée pour créer une nouvelle instance de la classe *cls*. La méthode :" +"meth:`__new__` est statique (c'est un cas particulier, vous n'avez pas " +"besoin de la déclarer comme telle) qui prend comme premier argument la " +"classe pour laquelle on veut créer une instance. Les autres arguments sont " +"ceux passés à l'expression de l'objet constructeur (l'appel à la classe). La " +"valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet " +"(classiquement une instance de *cls*)." #: ../Doc/reference/datamodel.rst:1090 msgid "" @@ -1291,12 +1855,18 @@ msgid "" "*self* is the new instance and the remaining arguments are the same as were " "passed to :meth:`__new__`." msgstr "" +"Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:" +"`__init__` de la nouvelle instance est invoquée avec " +"``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " +"arguments sont les mêmes que ceux passés à :meth:`__new__`." #: ../Doc/reference/datamodel.rst:1100 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" +"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" +"meth:`__init__` de la nouvelle instance n'est pas invoquée." #: ../Doc/reference/datamodel.rst:1103 msgid "" @@ -1305,6 +1875,10 @@ msgid "" "commonly overridden in custom metaclasses in order to customize class " "creation." msgstr "" +"L'objectif de :meth:`__new__` est principalement, pour les sous-classes de " +"types immuables (comme int, str ou tuple), d'autoriser la création sur " +"mesure des instances. Elle est aussi souvent surchargée dans les méta-" +"classes pour particulariser la création des classes." #: ../Doc/reference/datamodel.rst:1112 msgid "" @@ -1323,6 +1897,10 @@ msgid "" "it), no non-``None`` value may be returned by :meth:`__init__`; doing so " "will cause a :exc:`TypeError` to be raised at runtime." msgstr "" +"Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer " +"des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le " +"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur ``None`` ; " +"sinon une exception :exc:`TypeError` est levée à l'exécution." #: ../Doc/reference/datamodel.rst:1131 msgid "" @@ -1386,12 +1964,24 @@ msgid "" "`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " "an \"informal\" string representation of instances of that class is required." msgstr "" +"Appelée par la fonction native :func:`repr` pour calculer la représentation " +"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour que " +"celle-ci ressemble à une expression Python valide pouvant être utilisée pour " +"recréer un objet avec la même valeur (dans un environnement donné). Si ce " +"n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " +"est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " +"une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" +"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"chaîne de caractères est demandée pour une instance de cette classe." #: ../Doc/reference/datamodel.rst:1195 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous." msgstr "" +"Cette fonction est principalement utilisée à fins de débogage, il est donc " +"important que la représentation donne beaucoup d'informations et ne soit pas " +"ambigüe." #: ../Doc/reference/datamodel.rst:1206 msgid "" @@ -1400,6 +1990,10 @@ msgid "" "string representation of an object. The return value must be a :ref:`string " "` object." msgstr "" +"Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" +"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" +"\" ou joliment mise en forme de représentation de l'objet. La valeur " +"renvoyée doit être un objet :ref:`string `." #: ../Doc/reference/datamodel.rst:1211 msgid "" @@ -1407,12 +2001,17 @@ msgid "" "expectation that :meth:`__str__` return a valid Python expression: a more " "convenient or concise representation can be used." msgstr "" +"Cette méthode diffère de :meth:`object.__repr__` car il n'est pas attendu " +"que :meth:`__str__` renvoie une expression Python valide : une " +"représentation plus agréable à lire ou plus concise peut être utilisée." #: ../Doc/reference/datamodel.rst:1215 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." msgstr "" +"C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du " +"type natif :class:`object`." #: ../Doc/reference/datamodel.rst:1225 msgid "" @@ -1435,16 +2034,20 @@ msgstr "" msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" +"Lisez :ref:`formatspec` pour une description de la syntaxe standard du " +"formatage." #: ../Doc/reference/datamodel.rst:1247 msgid "The return value must be a string object." -msgstr "" +msgstr "La valeur renvoyée doit être un objet chaîne de caractères." #: ../Doc/reference/datamodel.rst:1249 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" +"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si " +"vous lui passez une chaîne non vide." #: ../Doc/reference/datamodel.rst:1265 msgid "" @@ -1454,6 +2057,11 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" +"Ce sont les méthodes dites de \"comparaisons riches\". La correspondance " +"entre les symboles opérateurs et les noms de méthodes est la suivante : " +"``xy`` appelle " +"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." #: ../Doc/reference/datamodel.rst:1271 msgid "" @@ -1465,6 +2073,14 @@ msgid "" "statement), Python will call :func:`bool` on the value to determine if the " "result is true or false." msgstr "" +"Une méthode de comparaison riche peut renvoyer le singleton " +"``NotImplemented`` si elle n'implémente pas l'opération pour une paire " +"donnée d'arguments. Par convention, ``False`` et ``True`` sont renvoyées " +"pour une comparaison qui a réussi. Cependant, ces méthodes peuvent renvoyer " +"n'importe quelle valeur donc, si l'opérateur de comparaison est utilisé dans " +"un contexte booléen (par exemple dans une condition d'une instruction " +"``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le " +"résultat est faux ou vrai." #: ../Doc/reference/datamodel.rst:1278 msgid "" @@ -1475,6 +2091,12 @@ msgid "" "ordering operations from a single root operation, see :func:`functools." "total_ordering`." msgstr "" +"Par défaut, :meth:`__ne__` délègue à :meth:`__eq__` et renvoie le résultat " +"inverse, sauf si c'est ``NotImplemented``. Il n'y a pas d'autres relations " +"implicites pour les opérateurs de comparaison. Par exemple, ``(x.__hash__``." msgstr "" +"Si une classe qui surcharge :meth:`__eq__` a besoin de conserver " +"l'implémentation de :meth:`__hash__` de la classe parente, vous devez " +"l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = " +".__hash__``." #: ../Doc/reference/datamodel.rst:1349 msgid "" @@ -1562,6 +2230,11 @@ msgid "" "`TypeError` would be incorrectly identified as hashable by an " "``isinstance(obj, collections.Hashable)`` call." msgstr "" +"Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul " +"des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de " +"la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui " +"lève explicitement :exc:`TypeError` serait incorrectement identifiée comme " +"hachable par un appel à ``isinstance(obj, collections.Hashable)``." #: ../Doc/reference/datamodel.rst:1358 msgid "" @@ -1570,6 +2243,11 @@ msgid "" "constant within an individual Python process, they are not predictable " "between repeated invocations of Python." msgstr "" +"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " +"*bytes* et objets datetime sont *salées* avec une valeur aléatoire non " +"prévisible. Bien qu'une empreinte reste constante tout au long d'un " +"processus Python, sa valeur n'est pas prévisible entre deux invocations de " +"Python." #: ../Doc/reference/datamodel.rst:1363 msgid "" @@ -1578,6 +2256,11 @@ msgid "" "insertion, O(n^2) complexity. See http://www.ocert.org/advisories/" "ocert-2011-003.html for details." msgstr "" +"C'est un comportement voulu pour se protéger contre un déni de service qui " +"utiliserait des entrées malicieusement choisies pour effectuer des " +"insertions dans le dictionnaire dans le pire cas, avec une complexité en " +"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " +"obtenir les détails (article en anglais)." #: ../Doc/reference/datamodel.rst:1368 msgid "" @@ -1585,6 +2268,10 @@ msgid "" "mappings. Python has never made guarantees about this ordering (and it " "typically varies between 32-bit and 64-bit builds)." msgstr "" +"Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur " +"les dictionnaires, les ensembles et les autres tableaux de correspondances. " +"Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, l'ordre n'est " +"pas le même entre les implémentations 32 et 64 bits)." #: ../Doc/reference/datamodel.rst:1372 msgid "See also :envvar:`PYTHONHASHSEED`." @@ -1592,7 +2279,7 @@ msgstr "Voir aussi :envvar:`PYTHONHASHSEED`." #: ../Doc/reference/datamodel.rst:1374 msgid "Hash randomization is enabled by default." -msgstr "" +msgstr "la randomisation des empreintes est activée par défaut." #: ../Doc/reference/datamodel.rst:1382 msgid "" @@ -1602,10 +2289,16 @@ msgid "" "considered true if its result is nonzero. If a class defines neither :meth:" "`__len__` nor :meth:`__bool__`, all its instances are considered true." msgstr "" +"Appelée pour implémenter les tests booléens et l'opération native " +"``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode " +"n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et " +"l'objet est considéré vrai si le résultat est non nul. Si une classe ne " +"définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont " +"considérées comme vraies." #: ../Doc/reference/datamodel.rst:1393 msgid "Customizing attribute access" -msgstr "" +msgstr "Personnalisation de l'accès aux attributs" #: ../Doc/reference/datamodel.rst:1395 msgid "" @@ -1613,6 +2306,9 @@ msgid "" "access (use of, assignment to, or deletion of ``x.name``) for class " "instances." msgstr "" +"Les méthodes suivantes peuvent être définies pour personnaliser l'accès aux " +"attributs (utilisation, assignation, suppression de ``x.name``) pour les " +"instances de classes." #: ../Doc/reference/datamodel.rst:1403 msgid "" @@ -1635,6 +2331,16 @@ msgid "" "object). See the :meth:`__getattribute__` method below for a way to " "actually get total control over attribute access." msgstr "" +"Notez que si l'attribut est trouvé par le mécanisme normal, :meth:" +"`__getattr__` n'est pas appelée (c'est une asymétrie voulue entre :meth:" +"`__getattr__` et :meth:`__setattr__`). Ce comportement est adopté à la fois " +"pour des raisons de performance et parce que, sinon, :meth:`__getattr__` " +"n'aurait aucun moyen d'accéder aux autres attributs de l'instance. Notez " +"que, au moins pour ce qui concerne les variables d'instance, vous pouvez " +"simuler un contrôle total en n'insérant aucune valeur dans le dictionnaire " +"des attributs de l'instance (mais en les insérant dans un autre objet à la " +"place). Lisez la partie relative à la méthode :meth:`__getattribute__` ci-" +"dessous pour obtenir un contrôle total effectif sur l'accès aux attributs." #: ../Doc/reference/datamodel.rst:1421 msgid "" @@ -1647,6 +2353,16 @@ msgid "" "base class method with the same name to access any attributes it needs, for " "example, ``object.__getattribute__(self, name)``." msgstr "" +"Appelée de manière inconditionnelle pour implémenter l'accès aux attributs " +"des instances de la classe. Si la classe définit également :meth:" +"`__getattr__`, cette dernière n'est pas appelée à moins que :meth:" +"`__getattribute__` ne l'appelle explicitement ou ne lève une exception :exc:" +"`AttributeError`. Cette méthode doit renvoyer la valeur (calculée) de " +"l'attribut ou lever une exception :exc:`AttributeError`. Afin d'éviter une " +"récursion infinie sur cette méthode, son implémentation doit toujours " +"appeler la méthode de la classe de base avec le même paramètre *name* pour " +"accéder à n'importe quel attribut dont elle a besoin. Par exemple, ``object." +"__getattribute__(self, name)``." #: ../Doc/reference/datamodel.rst:1432 msgid "" @@ -1654,6 +2370,9 @@ msgid "" "result of implicit invocation via language syntax or built-in functions. " "See :ref:`special-lookup`." msgstr "" +"Cette méthode peut être shuntée lorsque la recherche porte sur les méthodes " +"spéciales en tant que résultat d'une invocation implicite *via* la syntaxe " +"du langage ou les fonctions natives. Lisez :ref:`special-lookup`." #: ../Doc/reference/datamodel.rst:1439 msgid "" @@ -1661,6 +2380,10 @@ msgid "" "the normal mechanism (i.e. store the value in the instance dictionary). " "*name* is the attribute name, *value* is the value to be assigned to it." msgstr "" +"Appelée lors d'une assignation d'attribut. Elle est appelée à la place du " +"mécanisme normal (c'est-à-dire stocker la valeur dans le dictionnaire de " +"l'instance). *name* est le nom de l'attribut, *value* est la valeur à " +"assigner à cet attribut." #: ../Doc/reference/datamodel.rst:1443 msgid "" @@ -1668,6 +2391,9 @@ msgid "" "call the base class method with the same name, for example, ``object." "__setattr__(self, name, value)``." msgstr "" +"Si :meth:`__setattr__` veut assigner un attribut d'instance, elle doit " +"appeler la méthode de la classe de base avec le même nom, par exemple " +"``object.__setattr__(self, name, value)``." #: ../Doc/reference/datamodel.rst:1450 msgid "" @@ -1675,16 +2401,22 @@ msgid "" "This should only be implemented if ``del obj.name`` is meaningful for the " "object." msgstr "" +"Comme :meth:`__setattr__` mais pour supprimer un attribut au lieu de " +"l'assigner. Elle ne doit être implémentée que si ``del obj.name`` a du sens " +"pour cet objet." #: ../Doc/reference/datamodel.rst:1456 msgid "" "Called when :func:`dir` is called on the object. A sequence must be " "returned. :func:`dir` converts the returned sequence to a list and sorts it." msgstr "" +"Appelée quand :func:`dir` est appelée sur l'objet. Elle doit renvoyer une " +"séquence. :func:`dir` convertit la séquence renvoyée en liste et effectue le " +"classement." #: ../Doc/reference/datamodel.rst:1463 msgid "Implementing Descriptors" -msgstr "" +msgstr "Implémentation de descripteurs" #: ../Doc/reference/datamodel.rst:1465 msgid "" @@ -1695,6 +2427,13 @@ msgid "" "\" refers to the attribute whose name is the key of the property in the " "owner class' :attr:`~object.__dict__`." msgstr "" +"Les méthodes qui suivent s'appliquent seulement quand une instance de la " +"classe (dite classe *descripteur*) contenant la méthode apparaît dans une " +"classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " +"figurer dans le dictionnaire de la classe propriétaire ou dans le " +"dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " +"\"l'attribut\" fait référence à l'attribut dont le nom est une clé du :attr:" +"`~object.__dict__` de la classe propriétaire." #: ../Doc/reference/datamodel.rst:1475 msgid "" @@ -1705,17 +2444,27 @@ msgid "" "*owner*. This method should return the (computed) attribute value or raise " "an :exc:`AttributeError` exception." msgstr "" +"Appelée pour obtenir l'attribut de la classe propriétaire (accès à un " +"attribut de classe) ou d'une instance de cette classe (accès à un attribut " +"d'instance). *owner* est toujours la classe propriétaire alors que " +"*instance* est l'instance par laquelle on accède à l'attribut ou ``None`` " +"lorsque l'on accède par la classe *owner*. Cette méthode doit renvoyer la " +"valeur (calculée) de l'attribut ou lever une exception :exc:`AttributeError`." #: ../Doc/reference/datamodel.rst:1485 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." msgstr "" +"Appelée pour définir l'attribut d'une instance *instance* de la classe " +"propriétaire à la nouvelle valeur *value*." #: ../Doc/reference/datamodel.rst:1491 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" +"Appelée pour supprimer l'attribut de l'instance *instance* de la classe " +"propriétaire." #: ../Doc/reference/datamodel.rst:1494 msgid "" @@ -1727,10 +2476,17 @@ msgid "" "argument (for example, CPython sets this attribute for unbound methods that " "are implemented in C)." msgstr "" +"L'attribut :attr:`__objclass__` est interprété par le module :mod:`inspect` " +"comme spécifiant la classe où cet objet a été défini (le définir " +"correctement peut vous aider dans l'introspection des classes dynamiques à " +"l'exécution). Pour les appelables, cela peut indiquer qu'une instance d'un " +"certain type (ou d'une certaine sous-classe) est attendue ou requise comme " +"premier argument positionnel (par exemple, CPython définit cet attribut pour " +"les méthodes non liées qui sont implémentées en C)." #: ../Doc/reference/datamodel.rst:1505 msgid "Invoking Descriptors" -msgstr "" +msgstr "Invocation des descripteurs" #: ../Doc/reference/datamodel.rst:1507 msgid "" @@ -1739,6 +2495,12 @@ msgid "" "protocol: :meth:`__get__`, :meth:`__set__`, and :meth:`__delete__`. If any " "of those methods are defined for an object, it is said to be a descriptor." msgstr "" +"En général, un descripteur est un attribut d'objet dont le comportement est " +"\"lié\" (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"attributs ont été surchargés par des méthodes conformes au protocole des " +"descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " +"l'une de ces méthodes est définie pour un objet, il est réputé être un " +"descripteur." #: ../Doc/reference/datamodel.rst:1512 msgid "" @@ -1747,6 +2509,11 @@ msgid "" "chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " "continuing through the base classes of ``type(a)`` excluding metaclasses." msgstr "" +"Le comportement par défaut pour la gestion d'un attribut est de définir, " +"obtenir et supprimer cet attribut du dictionnaire de l'objet. Par exemple, " +"pour ``a.x`` Python commence d'abord par rechercher ``a.__dict__['x']``, " +"puis ``type(a).__dict__['x']`` ; ensuite Python continue en remontant les " +"classes de base de ``type(a)``, en excluant les méta-classes." #: ../Doc/reference/datamodel.rst:1517 msgid "" @@ -1755,46 +2522,59 @@ msgid "" "descriptor method instead. Where this occurs in the precedence chain " "depends on which descriptor methods were defined and how they were called." msgstr "" +"Cependant, si la valeur cherchée est un objet qui définit une des méthodes " +"de descripteur, alors Python modifie son comportement et invoque la méthode " +"du descripteur à la place. Le moment où cela intervient dans la recherche " +"citée ci-dessus dépend de l'endroit où a été définie la méthode de " +"descripteur et comment elle a été appelée." #: ../Doc/reference/datamodel.rst:1522 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" msgstr "" +"Le point de départ pour une invocation de descripteur est la liaison ``a." +"x``. La façon dont les arguments sont assemblés dépend de ``a`` :" #: ../Doc/reference/datamodel.rst:1527 msgid "Direct Call" -msgstr "" +msgstr "Appel direct" #: ../Doc/reference/datamodel.rst:1526 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." msgstr "" +"Le plus simple et le plus rare des appels est quand l'utilisateur code " +"directement l'appel à la méthode du descripteur : ``x.__get__(a)``." #: ../Doc/reference/datamodel.rst:1531 msgid "Instance Binding" -msgstr "" +msgstr "Liaison avec une instance" #: ../Doc/reference/datamodel.rst:1530 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." msgstr "" +"Si elle est liée à un objet instance, ``a.x`` est transformé en l'appel " +"suivant : ``type(a).__dict__['x'].__get__(a, type(a))``." #: ../Doc/reference/datamodel.rst:1535 msgid "Class Binding" -msgstr "" +msgstr "Liaison avec une classe" #: ../Doc/reference/datamodel.rst:1534 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." msgstr "" +"Si elle est liée à une classe, ``A.x`` est transformé en l'appel suivant : " +"``A.__dict__['x'].__get__(None, A)``." #: ../Doc/reference/datamodel.rst:1541 msgid "Super Binding" -msgstr "" +msgstr "Liaison super" #: ../Doc/reference/datamodel.rst:1538 msgid "" @@ -1803,6 +2583,10 @@ msgid "" "immediately preceding ``B`` and then invokes the descriptor with the call: " "``A.__dict__['m'].__get__(obj, obj.__class__)``." msgstr "" +"Si ``a`` est une instance de :class:`super`, alors ``super(B, obj).m()`` " +"recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " +"immédiatement avant ``B`` puis invoque le descripteur avec l'appel suivant : " +"``A.__dict__['m'].__get__(obj, obj.__class__)``." #: ../Doc/reference/datamodel.rst:1543 msgid "" @@ -1819,6 +2603,21 @@ msgid "" "defined always override a redefinition in an instance dictionary. In " "contrast, non-data descriptors can be overridden by instances." msgstr "" +"Pour des liaisons avec des instances, la priorité à l'invocation du " +"descripteur dépend des méthodes que le descripteur a définies. Un " +"descripteur peut définir n'importe quelle combinaison de :meth:`__get__`, :" +"meth:`__set__` et :meth:`__delete__`. S'il ne définit pas :meth:`__get__`, " +"alors accéder à l'attribut retourne l'objet descripteur lui-même sauf s'il " +"existe une valeur dans le dictionnaire de l'objet instance. Si le " +"descripteur définit :meth:`__set__` ou :meth:`__delete__`, c'est un " +"descripteur de données ; s'il ne définit aucune méthode, c'est un " +"descripteur hors-donnée. Normalement, les descripteurs de données " +"définissent à la fois :meth:`__get__` et :meth:`__set__`, alors que les " +"descripteurs hors-données définissent seulement la méthode :meth:`__get__`. " +"Les descripteurs de données qui définissent :meth:`__set__` et :meth:" +"`__get__` sont toujours prioritaires face à une redéfinition du dictionnaire " +"de l'instance. En revanche, les descripteurs hors-données peuvent être " +"shuntés par les instances." #: ../Doc/reference/datamodel.rst:1556 msgid "" @@ -1827,12 +2626,20 @@ msgid "" "and override methods. This allows individual instances to acquire behaviors " "that differ from other instances of the same class." msgstr "" +"Les méthodes Python (y compris :func:`staticmethod` et :func:`classmethod`) " +"sont implémentées comme des descripteurs hors-donnée. De la même manière, " +"les instances peuvent redéfinir et surcharger les méthodes. Ceci permet à " +"chaque instance d'avoir un comportement qui diffère des autres instances de " +"la même classe." #: ../Doc/reference/datamodel.rst:1561 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." msgstr "" +"La fonction :func:`property` est implémentée en tant que descripteur de " +"données. Ainsi, les instances ne peuvent pas surcharger le comportement " +"d'une propriété." #: ../Doc/reference/datamodel.rst:1568 msgid "__slots__" @@ -1861,10 +2668,15 @@ msgid "" "for the declared variables and prevents the automatic creation of *__dict__* " "and *__weakref__* for each instance." msgstr "" +"Cette variable de classe peut être assignée avec une chaîne, un itérable ou " +"une séquence de chaînes avec les noms de variables utilisés par les " +"instances. *__slots__* réserve de la place pour ces variables déclarées et " +"interdit la création automatique de *__dict__* et *__weakref__* pour chaque " +"instance." #: ../Doc/reference/datamodel.rst:1589 msgid "Notes on using *__slots__*" -msgstr "" +msgstr "Note sur l'utilisation de *__slots__*" #: ../Doc/reference/datamodel.rst:1591 msgid "" @@ -1881,6 +2693,11 @@ msgid "" "variables is desired, then add ``'__dict__'`` to the sequence of strings in " "the *__slots__* declaration." msgstr "" +"Sans variable *__dict__*, les instances ne peuvent pas assigner de nouvelles " +"variables (non listées dans la définition de *__slots__*). Les tentatives " +"d'assignation sur un nom de variable non listé lève :exc:`AttributeError`. " +"Si l'assignation dynamique de nouvelles variables est nécessaire, ajoutez " +"``'__dict__'`` à la séquence de chaînes dans la déclaration *__slots__*." #: ../Doc/reference/datamodel.rst:1601 msgid "" @@ -1889,6 +2706,11 @@ msgid "" "reference support is needed, then add ``'__weakref__'`` to the sequence of " "strings in the *__slots__* declaration." msgstr "" +"Sans variable *__weakref__* pour chaque instance, les classes qui " +"définissent *__slots__* ne gèrent pas les références faibles vers leurs " +"instances. Si vous avez besoin de gérer des références faibles, ajoutez " +"``'__weakref__'`` à la séquence de chaînes dans la déclaration de " +"*__slots__*." #: ../Doc/reference/datamodel.rst:1606 msgid "" @@ -1897,6 +2719,11 @@ msgid "" "be used to set default values for instance variables defined by *__slots__*; " "otherwise, the class attribute would overwrite the descriptor assignment." msgstr "" +"Les *__slots__* sont implémentés au niveau de la classe en créant des " +"descripteurs (:ref:`descriptors`) pour chaque nom de variable. Ainsi, les " +"attributs de classe ne peuvent pas être utilisés pour des valeurs par défaut " +"aux variables d'instances définies par *__slots__* ; sinon, l'attribut de " +"classe surchargerait l'assignation par descripteur." #: ../Doc/reference/datamodel.rst:1612 msgid "" @@ -1913,12 +2740,20 @@ msgid "" "meaning of the program undefined. In the future, a check may be added to " "prevent this." msgstr "" +"Si une classe définit un slot aussi défini dans une classe de base, la " +"variable d'instance définie par la classe de base est inaccessible (sauf à " +"utiliser le descripteur de la classe de base directement). Cela rend la " +"signification du programme indéfinie. Dans le futur, une vérification sera " +"ajoutée pour empêcher cela." #: ../Doc/reference/datamodel.rst:1621 msgid "" "Nonempty *__slots__* does not work for classes derived from \"variable-length" "\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." msgstr "" +"Un *__slot__* non vide ne fonctionne pas pour les classes dérivées des types " +"natifs à longueur variable tels que :class:`int`, :class:`bytes` et :class:" +"`tuple`." #: ../Doc/reference/datamodel.rst:1624 msgid "" @@ -1926,15 +2761,21 @@ msgid "" "used; however, in the future, special meaning may be assigned to the values " "corresponding to each key." msgstr "" +"Tout itérable qui n'est pas une chaîne peut être assigné à un *__slots__*. " +"Les tableaux de correspondance peuvent aussi être utilisés ; cependant, dans " +"le futur, des significations spéciales pourraient être associées à chacune " +"des clés." #: ../Doc/reference/datamodel.rst:1628 msgid "" "*__class__* assignment works only if both classes have the same *__slots__*." msgstr "" +"Les assignations de *__class__* ne fonctionnent que si les deux classes ont " +"le même *__slots__*." #: ../Doc/reference/datamodel.rst:1634 msgid "Customizing class creation" -msgstr "" +msgstr "Personnalisation de la création de classes" #: ../Doc/reference/datamodel.rst:1636 msgid "" @@ -1942,6 +2783,9 @@ msgid "" "executed in a new namespace and the class name is bound locally to the " "result of ``type(name, bases, namespace)``." msgstr "" +"Par défaut, les classes sont construites en utilisant :func:`type`. Le corps " +"de la classe est exécuté dans un nouvel espace de noms et le nom de la " +"classe est lié localement au résultat de `type(name, bases, namespace)``." #: ../Doc/reference/datamodel.rst:1640 msgid "" @@ -1950,58 +2794,76 @@ msgid "" "existing class that included such an argument. In the following example, " "both ``MyClass`` and ``MySubclass`` are instances of ``Meta``::" msgstr "" +"Le déroulement de création de la classe peut être personnalisé en passant " +"l'argument nommé ``metaclass`` dans la ligne de définition de la classe ou " +"en héritant d'une classe existante qui comporte déjà un tel argument. Dans " +"l'exemple qui suit, ``MyClass`` et ``MySubclass`` sont des instances de " +"``Meta`` ::" #: ../Doc/reference/datamodel.rst:1654 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." msgstr "" +"Tout autre argument nommé spécifié dans la définition de la classe est passé " +"aux opérations de méta-classes décrites auparavant." #: ../Doc/reference/datamodel.rst:1657 msgid "When a class definition is executed, the following steps occur:" msgstr "" +"Quand la définition d'une classe est exécutée, les différentes étapes " +"suivies sont :" #: ../Doc/reference/datamodel.rst:1659 msgid "the appropriate metaclass is determined" -msgstr "" +msgstr "la méta-classe appropriée est déterminée ;" #: ../Doc/reference/datamodel.rst:1660 msgid "the class namespace is prepared" -msgstr "" +msgstr "l'espace de noms de la classe est préparé ;" #: ../Doc/reference/datamodel.rst:1661 msgid "the class body is executed" -msgstr "" +msgstr "le corps de la classe est exécuté ;" #: ../Doc/reference/datamodel.rst:1662 msgid "the class object is created" -msgstr "" +msgstr "l'objet classe est crée." #: ../Doc/reference/datamodel.rst:1665 msgid "Determining the appropriate metaclass" -msgstr "" +msgstr "Détermination de la méta-classe appropriée" #: ../Doc/reference/datamodel.rst:1667 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" +"La méta-classe appropriée pour une définition de classe est déterminée de la " +"manière suivante :" #: ../Doc/reference/datamodel.rst:1669 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used" msgstr "" +"si aucune classe et aucune méta-classe n'est donnée, alors :func:`type` est " +"utilisée ;" #: ../Doc/reference/datamodel.rst:1670 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass" msgstr "" +"si une méta-classe explicite est donnée et que *ce n'est pas* une instance " +"de :func:`type`, alors elle est utilisée directement en tant que méta-" +"classe ;" #: ../Doc/reference/datamodel.rst:1672 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used" msgstr "" +"Si une instance de :func:`type` est donnée comme méta-classe explicite ou si " +"*bases* est définie, alors la méta-classe la plus dérivée est utilisée." #: ../Doc/reference/datamodel.rst:1675 msgid "" @@ -2011,10 +2873,16 @@ msgid "" "of these candidate metaclasses. If none of the candidate metaclasses meets " "that criterion, then the class definition will fail with ``TypeError``." msgstr "" +"La méta-classe la plus dérivée est choisie à partir des méta-classes " +"explicitement spécifiées (s'il y en a) et les méta-classes (c'est-à-dire les " +"``type(cls)``) de toutes les classes de base spécifiées. La méta-classe la " +"plus dérivée est celle qui est un sous-type de *toutes* ces méta-classes " +"candidates. Si aucune des méta-classes candidates ne remplit ce critère, " +"alors la définition de la classe échoue en levant ``TypeError``." #: ../Doc/reference/datamodel.rst:1685 msgid "Preparing the class namespace" -msgstr "" +msgstr "Préparation de l'espace de noms de la classe" #: ../Doc/reference/datamodel.rst:1687 msgid "" @@ -2023,6 +2891,11 @@ msgid "" "as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the " "additional keyword arguments, if any, come from the class definition)." msgstr "" +"Une fois que la méta-classe appropriée est identifiée, l'espace de noms de " +"la classe est préparé. Si la méta-classe possède un attribut " +"``__prepare__``, il est appelé avec ``namespace = metaclass." +"__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, " +"s'il y en a, viennent de la définition de la classe)." #: ../Doc/reference/datamodel.rst:1692 msgid "" @@ -2032,15 +2905,16 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1697 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr "" +msgstr ":pep:`3115` - Méta-classes dans Python 3000" #: ../Doc/reference/datamodel.rst:1698 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" +"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" #: ../Doc/reference/datamodel.rst:1702 msgid "Executing the class body" -msgstr "" +msgstr "Exécution du corps de la classe" #: ../Doc/reference/datamodel.rst:1704 msgid "" @@ -2050,6 +2924,12 @@ msgid "" "names from the current and outer scopes when the class definition occurs " "inside a function." msgstr "" +"Le corps de la classe est exécuté (approximativement) avec ``exec(body, " +"globals(), namespace)``. La principale différence avec un appel normal à :" +"func:`exec` est que la portée lexicale autorise le corps de la classe (y " +"compris les méthodes) à faire référence aux noms de la portée courante et " +"des portées externes lorsque la définition de classe a lieu dans une " +"fonction." #: ../Doc/reference/datamodel.rst:1710 msgid "" @@ -2061,7 +2941,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1717 msgid "Creating the class object" -msgstr "" +msgstr "Création de l'objet classe" #: ../Doc/reference/datamodel.rst:1719 msgid "" @@ -2070,6 +2950,10 @@ msgid "" "**kwds)`` (the additional keywords passed here are the same as those passed " "to ``__prepare__``)." msgstr "" +"Quand l'espace de noms a été rempli en exécutant le corps de la classe, " +"l'objet classe est créé en appelant ``metaclass(name, bases, namespace, " +"**kwds)`` (les arguments nommés supplémentaires passés ici sont les mêmes " +"que ceux passés à ``__prepare__``)." #: ../Doc/reference/datamodel.rst:1724 msgid "" @@ -2081,6 +2965,14 @@ msgid "" "scoping, while the class or instance that was used to make the current call " "is identified based on the first argument passed to the method." msgstr "" +"Cet objet classe est celui qui est référencé par la forme sans argument de :" +"func:`super`. ``__class__`` est une référence implicite créée par le " +"compilateur si une méthode du corps de la classe fait référence soit à " +"``__class__``, soit à ``super``. Ceci permet que la forme sans argument de :" +"func:`super` identifie la classe en cours de définition en fonction de la " +"portée lexicale, tandis que la classe ou l'instance utilisée pour effectuer " +"l'appel en cours est identifiée en fonction du premier argument transmis à " +"la méthode." #: ../Doc/reference/datamodel.rst:1732 msgid "" @@ -2088,6 +2980,10 @@ msgid "" "included in the class definition (if any) and the resulting object is bound " "in the local namespace as the defined class." msgstr "" +"Après la création de l'objet classe, il est passé aux décorateurs de la " +"classe, y compris ceux inclus dans la définition de la classe (s'il y en a) " +"et l'objet résultant est lié à l'espace de noms local en tant que classe " +"définie." #: ../Doc/reference/datamodel.rst:1736 msgid "" @@ -2099,15 +2995,17 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1743 msgid ":pep:`3135` - New super" -msgstr "" +msgstr ":pep:`3135` - nouvelle méthode super" #: ../Doc/reference/datamodel.rst:1744 msgid "Describes the implicit ``__class__`` closure reference" msgstr "" +"Décrit la référence à la fermeture (*closure* en anglais) de la " +"``__class__`` implicite" #: ../Doc/reference/datamodel.rst:1748 msgid "Metaclass example" -msgstr "" +msgstr "Exemple de méta-classe" #: ../Doc/reference/datamodel.rst:1750 msgid "" @@ -2122,6 +3020,9 @@ msgid "" "Here is an example of a metaclass that uses an :class:`collections." "OrderedDict` to remember the order that class variables are defined::" msgstr "" +"Voici un exemple de méta-classe qui utilise une :class:`collections." +"OrderedDict` pour mémoriser l'ordre dans lequel les variables de classe sont " +"définies ::" #: ../Doc/reference/datamodel.rst:1778 msgid "" @@ -2134,16 +3035,27 @@ msgid "" "That method builds the new type and it saves the ordered dictionary keys in " "an attribute called ``members``." msgstr "" +"Quand la définition de la classe *A* s'exécute, le processus commence par " +"appeler la méthode :meth:`__prepare__` de la méta-classe qui renvoie un :" +"class:`collections.OrderedDict` vide. Ce tableau de correspondances " +"enregistre les méthodes et attributs de *A* au fur et à mesure de leurs " +"définitions dans les instructions du corps de la classe. Une fois que ces " +"définitions ont été exécutées, le dictionnaire ordonné est complètement " +"peuplé et la méthode :meth:`__new__` de la méta-classe est appelée. Cette " +"méthode construit un nouveau type et sauve les clés du dictionnaire ordonné " +"dans un attribut appelé ``members``." #: ../Doc/reference/datamodel.rst:1789 msgid "Customizing instance and subclass checks" -msgstr "" +msgstr "Personnalisation des instances et vérification des sous-classes" #: ../Doc/reference/datamodel.rst:1791 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." msgstr "" +"Les méthodes suivantes sont utilisées pour surcharger le comportement par " +"défaut des fonctions natives :func:`isinstance` et :func:`issubclass`." #: ../Doc/reference/datamodel.rst:1794 msgid "" @@ -2152,6 +3064,10 @@ msgid "" "base classes\" to any class or type (including built-in types), including " "other ABCs." msgstr "" +"En particulier, la méta-classe :class:`abc.ABCMeta` implemente ces méthodes " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que \"classes de base virtuelles\" pour " +"toute classe ou type (y compris les types natifs)." #: ../Doc/reference/datamodel.rst:1801 msgid "" @@ -2159,6 +3075,9 @@ msgid "" "instance of *class*. If defined, called to implement ``isinstance(instance, " "class)``." msgstr "" +"Renvoie ``True`` si *instance* doit être considérée comme une instance " +"(directe ou indirecte) de *class*. Si elle est définie, est elle appelée " +"pour implémenter ``isinstance(instance, class)``." #: ../Doc/reference/datamodel.rst:1808 msgid "" @@ -2166,6 +3085,9 @@ msgid "" "subclass of *class*. If defined, called to implement ``issubclass(subclass, " "class)``." msgstr "" +"Renvoie ``True`` si *subclass* doit être considérée comme une sous-classe " +"(directe ou indirecte) de *class*. Si elle est définie, appelée pour " +"implémenter ``issubclass(subclass, class)``." #: ../Doc/reference/datamodel.rst:1813 msgid "" @@ -2174,10 +3096,15 @@ msgid "" "consistent with the lookup of special methods that are called on instances, " "only in this case the instance is itself a class." msgstr "" +"Notez que ces méthodes sont recherchées dans le type (la méta-classe) d'une " +"classe. Elles ne peuvent pas être définies en tant que méthodes de classe " +"dans la classe réelle. C'est cohérent avec la recherche des méthodes " +"spéciales qui sont appelées pour les instances, sauf qu'ici l'instance est " +"elle-même une classe." #: ../Doc/reference/datamodel.rst:1824 msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr "" +msgstr ":pep:`3119` - Introduction aux classes de bases abstraites" #: ../Doc/reference/datamodel.rst:1821 msgid "" @@ -2187,10 +3114,15 @@ msgid "" "context of adding Abstract Base Classes (see the :mod:`abc` module) to the " "language." msgstr "" +"Inclut la spécification pour la personnalisation du comportement de :func:" +"`isinstance` et :func:`issubclass` à travers :meth:`~class." +"__instancecheck__` et :meth:`~class.__subclasscheck__`, avec comme " +"motivation pour cette fonctionnalité l'ajout les classes de base abstraites " +"(voir le module :mod:`abc`) au langage." #: ../Doc/reference/datamodel.rst:1831 msgid "Emulating callable objects" -msgstr "" +msgstr "Émulation d'objets appelables" #: ../Doc/reference/datamodel.rst:1838 msgid "" @@ -2198,10 +3130,13 @@ msgid "" "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" +"Appelée quand l'instance est \"appelée\" en tant que fonction ; si la " +"méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." +"__call__(arg1, arg2, ...)``." #: ../Doc/reference/datamodel.rst:1845 msgid "Emulating container types" -msgstr "" +msgstr "Émulation de types conteneurs" #: ../Doc/reference/datamodel.rst:1847 msgid "" @@ -2235,6 +3170,40 @@ msgid "" "`__iter__` should be the same as :meth:`keys`; for sequences, it should " "iterate through the values." msgstr "" +"Les fonctions suivantes peuvent être définies pour implémenter des objets " +"conteneurs. Les conteneurs sont habituellement des séquences (telles que les " +"tuples ou les listes) ou des tableaux de correspondances (comme les " +"dictionnaires), mais ils peuvent aussi représenter d'autres conteneurs. Le " +"premier ensemble de méthodes est utilisé soit pour émuler une séquence, soit " +"pour émuler un tableau de correspondances ; la différence est que, pour une " +"séquence, les clés doivent être soit des entiers *k* tels que ``0 <= k < N`` " +"où *N* est la longueur de la séquence, soit des objets tranches qui " +"définissent un intervalle d'éléments. Il est aussi recommandé que les " +"tableaux de correspondances fournissent les méthodes :meth:`keys`, :meth:" +"`values`, :meth:`items`, :meth:`get`, :meth:`clear`, :meth:`setdefault`, :" +"meth:`pop`, :meth:`popitem`, :meth:`!copy` et :meth:`update` avec un " +"comportement similaire aux objets dictionnaires standards de Python. Le " +"module :mod:`collections` fournit une classe de base abstraite :class:" +"`~collections.abc.MutableMapping` pour aider à la création de ces méthodes à " +"partir d'un ensemble de base composé de :meth:`__getitem__`, :meth:" +"`__setitem__`, :meth:`__delitem__` et :meth:`keys`. Les séquences muables " +"doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:`index`, :" +"meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:`reverse` " +"et :meth:`sort`, comme les objets listes standards de Python. Enfin, les " +"types séquences doivent implémenter l'addition (dans le sens de la " +"concaténation) et la multiplication (dans le sens de la répétition) en " +"définissant les méthodes :meth:`__add__`, :meth:`__radd__`, :meth:" +"`__iadd__`, :meth:`__mul__`, :meth:`__rmul__` et :meth:`__imul__` décrites " +"ci-dessous ; ils ne doivent pas définir d'autres opérateurs numériques. Il " +"est recommandé que les tableaux de correspondances et les séquences " +"implémentent la méthode :meth:`__contains__` pour permettre l'utilisation " +"efficace de l'opérateur ``in`` ; concernant les tableaux de correspondances, " +"``in`` doit rechercher dans les clés du tableau ; pour les séquences, il " +"doit chercher dans les valeurs. Il est de plus recommandé que les tableaux " +"de correspondances et les séquences implémentent la méthode :meth:`__iter__` " +"pour permettre une itération efficace dans le conteneur ; pour les tableaux " +"de correspondances, :meth:`__iter__` doit être la même que :meth:`keys` ; " +"pour les séquences, elle doit itérer sur les valeurs." #: ../Doc/reference/datamodel.rst:1882 msgid "" @@ -2243,6 +3212,10 @@ msgid "" "define a :meth:`__bool__` method and whose :meth:`__len__` method returns " "zero is considered to be false in a Boolean context." msgstr "" +"Appelée pour implémenter la fonction native :func:`len`. Elle doit renvoyer " +"la longueur de l'objet, un entier ``>=`` 0. Par ailleurs, un objet qui ne " +"définit pas de méthode :meth:`__bool__` et dont la méthode :meth:`__len__` " +"renvoie zéro est considéré comme valant ``False`` dans un contexte booléen." #: ../Doc/reference/datamodel.rst:1890 msgid "" @@ -2251,19 +3224,26 @@ msgid "" "The length must be an integer ``>=`` 0. This method is purely an " "optimization and is never required for correctness." msgstr "" +"Appelée pour implémenter :func:`operator.length_hint`. Elle doit renvoyer " +"une longueur estimée de l'objet (qui peut être plus grande ou plus petite " +"que la longueur réelle). La longueur doit être un entier ``>=`` 0. Cette " +"méthode est utilisée uniquement pour optimiser les traitements et n'est " +"jamais tenue de renvoyer un résultat exact." #: ../Doc/reference/datamodel.rst:1899 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" +"Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " +"Un appel comme ::" #: ../Doc/reference/datamodel.rst:1903 msgid "is translated to ::" -msgstr "" +msgstr "est traduit en ::" #: ../Doc/reference/datamodel.rst:1907 msgid "and so forth. Missing slice items are always filled in with ``None``." -msgstr "" +msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``." #: ../Doc/reference/datamodel.rst:1914 msgid "" @@ -2276,18 +3256,32 @@ msgid "" "negative values), :exc:`IndexError` should be raised. For mapping types, if " "*key* is missing (not in the container), :exc:`KeyError` should be raised." msgstr "" +"Appelée pour implémenter l'évaluation de ``self[key]``. Pour les types " +"séquences, les clés autorisées sont les entiers et les objets tranches " +"(*slice*). Notez que l'interprétation spéciale des indices négatifs (si la " +"classe souhaite émuler un type séquence) est du ressort de la méthode :meth:" +"`__getitem__`. Si *key* n'est pas du bon type, une :exc:`TypeError` peut " +"être levée ; si la valeur est en dehors de l'ensemble des indices de la " +"séquence (après interprétation éventuelle des valeurs négatives), une :exc:" +"`IndexError` doit être levée. Pour les tableaux de correspondances, si *key* " +"n'existe pas dans le conteneur, une :exc:`KeyError` doit être levée." #: ../Doc/reference/datamodel.rst:1925 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." msgstr "" +":keyword:`for` s'attend à ce qu'une :exc:`IndexError` soit levée en cas " +"d'indice illégal afin de détecter correctement la fin de la séquence." #: ../Doc/reference/datamodel.rst:1931 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." msgstr "" +"Appelée par :class:`dict`\\ .\\ :meth:`__getitem__` pour implémenter " +"``self[key]`` dans les sous-classes de dictionnaires lorsque la clé n'est " +"pas dans le dictionnaire." #: ../Doc/reference/datamodel.rst:1937 msgid "" @@ -2297,6 +3291,13 @@ msgid "" "sequences if elements can be replaced. The same exceptions should be raised " "for improper *key* values as for the :meth:`__getitem__` method." msgstr "" +"Appelée pour implémenter l'assignation à ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les modifications de valeurs " +"des clés, ceux pour lesquels on peut ajouter de nouvelles clés ou, pour les " +"séquences, celles dont les éléments peuvent être remplacés. Les mêmes " +"exceptions que pour la méthode :meth:`__getitem__` doivent être levées en " +"cas de mauvaises valeurs de clés." #: ../Doc/reference/datamodel.rst:1946 msgid "" @@ -2306,6 +3307,12 @@ msgid "" "the sequence. The same exceptions should be raised for improper *key* " "values as for the :meth:`__getitem__` method." msgstr "" +"Appelée pour implémenter la suppression de ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les suppression de clés ou " +"pour les séquences dont les éléments peuvent être supprimés de la séquence. " +"Les mêmes exceptions que pour la méthode :meth:`__getitem__` doivent être " +"levées en cas de mauvaises valeurs de clés." #: ../Doc/reference/datamodel.rst:1955 msgid "" @@ -2314,6 +3321,10 @@ msgid "" "objects in the container. For mappings, it should iterate over the keys of " "the container." msgstr "" +"Cette méthode est appelée quand un itérateur est requis pour un conteneur. " +"Cette méthode doit renvoyer un nouvel objet itérateur qui peut itérer sur " +"tous les objets du conteneur. Pour les tableaux de correspondances, elle " +"doit itérer sur les clés du conteneur." #: ../Doc/reference/datamodel.rst:1959 msgid "" @@ -2321,6 +3332,9 @@ msgid "" "return themselves. For more information on iterator objects, see :ref:" "`typeiter`." msgstr "" +"Les objets itérateurs doivent aussi implémenter cette méthode ; ils doivent " +"alors se renvoyer eux-mêmes. Pour plus d'information sur les objets " +"itérateurs, lisez :ref:`typeiter`." #: ../Doc/reference/datamodel.rst:1965 msgid "" @@ -2328,6 +3342,9 @@ msgid "" "iteration. It should return a new iterator object that iterates over all " "the objects in the container in reverse order." msgstr "" +"Appelée (si elle existe) par la fonction native :func:`reversed` pour " +"implémenter l'itération en sens inverse. Elle doit renvoyer un nouvel objet " +"itérateur qui itère sur tous les objets du conteneur en sens inverse." #: ../Doc/reference/datamodel.rst:1969 msgid "" @@ -2337,6 +3354,11 @@ msgid "" "provide :meth:`__reversed__` if they can provide an implementation that is " "more efficient than the one provided by :func:`reversed`." msgstr "" +"Si la méthode :meth:`__reversed__` n'est pas fournie, la fonction native :" +"func:`reversed` se replie sur le protocole de séquence (:meth:`__len__` and :" +"meth:`__getitem__`). Les objets qui connaissent le protocole de séquence ne " +"doivent fournir :meth:`__reversed__` que si l'implémentation qu'ils " +"proposent est plus efficace que celle de :func:`reversed`." #: ../Doc/reference/datamodel.rst:1976 msgid "" @@ -2345,6 +3367,11 @@ msgid "" "objects can supply the following special method with a more efficient " "implementation, which also does not require the object be a sequence." msgstr "" +"Les opérateurs de tests d'appartenance (:keyword:`in` and :keyword:`not in`) " +"sont normalement implémentés comme des itérations sur la séquence. " +"Cependant, les objets conteneurs peuvent fournir les méthodes spéciales " +"suivantes avec une implémentation plus efficace, qui ne requièrent " +"d'ailleurs pas que l'objet soit une séquence. " #: ../Doc/reference/datamodel.rst:1983 msgid "" @@ -2352,6 +3379,10 @@ msgid "" "is in *self*, false otherwise. For mapping objects, this should consider " "the keys of the mapping rather than the values or the key-item pairs." msgstr "" +"Appelée pour implémenter les opérateurs de test d'appartenance. Elle doit " +"renvoyer ``True`` si *item* est dans *self* et ``False`` sinon. Pour les " +"tableaux de correspondances, seules les clés sont considérées (pas les " +"valeurs des paires clés-valeurs)." #: ../Doc/reference/datamodel.rst:1987 msgid "" @@ -2360,10 +3391,15 @@ msgid "" "protocol via :meth:`__getitem__`, see :ref:`this section in the language " "reference `." msgstr "" +"Pour les objets qui ne définissent pas :meth:`__contains__`, les tests " +"d'appartenance essaient d'abord d'itérer avec :meth:`__iter__` puis avec le " +"vieux protocole d'itération sur les séquences *via* :meth:`__getitem__`, " +"reportez-vous à :ref:`cette section dans la référence du langage `." #: ../Doc/reference/datamodel.rst:1996 msgid "Emulating numeric types" -msgstr "" +msgstr "Émulation de types numériques" #: ../Doc/reference/datamodel.rst:1998 msgid "" @@ -2372,6 +3408,11 @@ msgid "" "number implemented (e.g., bitwise operations for non-integral numbers) " "should be left undefined." msgstr "" +"Les méthodes suivantes peuvent être définies pour émuler des objets " +"numériques. Les méthodes correspondant à des opérations qui ne sont pas " +"autorisées pour la catégorie de nombres considérée (par exemple, les " +"opérations bit à bit pour les nombres qui ne sont pas entiers) doivent être " +"laissées indéfinies." #: ../Doc/reference/datamodel.rst:2024 msgid "" @@ -2385,12 +3426,24 @@ msgid "" "should be defined to accept an optional third argument if the ternary " "version of the built-in :func:`pow` function is to be supported." msgstr "" +"Ces méthodes sont appelées pour implémenter les opérations arithmétiques " +"binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" +"func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). Par exemple, pour " +"évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " +"possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " +"méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" +"`__floordiv__` et :meth:`__mod__`; elle ne doit pas être reliée à :meth:" +"`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " +"accepter un troisième argument optionnel si la version ternaire de la " +"fonction native :func:`pow` est autorisée." #: ../Doc/reference/datamodel.rst:2035 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return ``NotImplemented``." msgstr "" +"Si l'une de ces méthodes n'autorise pas l'opération avec les arguments " +"donnés, elle doit renvoyer ``NotImplemented``." #: ../Doc/reference/datamodel.rst:2058 msgid "" @@ -2409,6 +3462,8 @@ msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." msgstr "" +"Notez que la fonction ternaire :func:`pow` n'essaie pas d'appeler :meth:" +"`__rpow__` (les règles de coercition seraient trop compliquées)." #: ../Doc/reference/datamodel.rst:2074 msgid "" @@ -2417,6 +3472,11 @@ msgid "" "will be called before the left operand's non-reflected method. This " "behavior allows subclasses to override their ancestors' operations." msgstr "" +"Si le type de l'opérande de droite est une sous-classe du type de l'opérande " +"de gauche et que cette sous-classe fournit la méthode symétrique pour " +"l'opération, cette méthode sera appelée avant la méthode originelle de " +"l'opérande gauche. Ce comportement permet à des sous-classes de surcharger " +"les opérations de leurs ancêtres." #: ../Doc/reference/datamodel.rst:2094 msgid "" @@ -2433,12 +3493,27 @@ msgid "" "(see :ref:`faq-augmented-assignment-tuple-error`), but this behavior is in " "fact part of the data model." msgstr "" +"Ces méthodes sont appelées pour implémenter les assignations arithmétiques " +"augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " +"``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " +"essayer d'effectuer l'opération \"sur place\" (c'est-à-dire de modifier " +"*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " +"*self*). Si une méthode spécifique n'est pas définie, l'assignation " +"augmentée se replie vers la méthode normale correspondante. Par exemple, si " +"*x* est une instance d'une classe qui possède une méthode :meth:`__iadd__`, " +"``x += y`` est équivalent à ``x = x.__iadd__(y)`` . Sinon, ``x.__add__(y)`` " +"et ``y.__radd__(x)`` sont essayées, comme pour l'évaluation de ``x + y``. " +"Dans certaines situations, les assignations augmentées peuvent causer des " +"erreurs inattendues (voir :ref:`faq-augmented-assignment-tuple-error`), mais " +"ce comportement est en fait partie intégrante du modèle de données." #: ../Doc/reference/datamodel.rst:2115 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." msgstr "" +"Appelée pour implémenter les opérations arithmétiques unaires (``-``, ``" +"+``, :func:`abs` and ``~``)." #: ../Doc/reference/datamodel.rst:2130 msgid "" @@ -2455,6 +3530,11 @@ msgid "" "functions). Presence of this method indicates that the numeric object is an " "integer type. Must return an integer." msgstr "" +"Appelée pour implémenter :func:`operator.index` et lorsque Python a besoin " +"de convertir sans perte un objet numérique en objet entier (pour un " +"découpage ou dans les fonctions natives :func:`bin`, :func:`hex` et :func:" +"`oct`). La présence de cette méthode indique que l'objet numérique est un " +"type entier. Elle doit renvoyer un entier." #: ../Doc/reference/datamodel.rst:2145 msgid "" @@ -2462,10 +3542,13 @@ msgid "" "defined :meth:`__int__` should also be defined, and both should return the " "same value." msgstr "" +"Afin d'avoir un type de classe entier cohérent, lorsque :meth:`__index__` " +"est définie alors :meth:`__int__` doit aussi être définie et les deux " +"doivent renvoyer la même valeur." #: ../Doc/reference/datamodel.rst:2153 msgid "With Statement Context Managers" -msgstr "" +msgstr "Gestionnaire de contexte With" #: ../Doc/reference/datamodel.rst:2155 msgid "" @@ -2476,17 +3559,29 @@ msgid "" "using the :keyword:`with` statement (described in section :ref:`with`), but " "can also be used by directly invoking their methods." msgstr "" +"Un :dfn:`gestionnaire de contexte` est un objet qui met en place un contexte " +"prédéfini au moment de l'exécution de l'instruction :keyword:`with`. Le " +"gestionnaire de contexte gère l'entrée et la sortie de ce contexte " +"d'exécution pour tout un bloc de code. Les gestionnaires de contextes sont " +"normalement invoqués en utilisant une instruction :keyword:`with` (décrite " +"dans la section :ref:`with`), mais ils peuvent aussi être directement " +"invoqués par leurs méthodes." #: ../Doc/reference/datamodel.rst:2166 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." msgstr "" +"Les utilisations classiques des gestionnaires de contexte sont la sauvegarde " +"et la restauration d'états divers, le verrouillage et le déverrouillage de " +"ressources, la fermeture de fichiers ouverts, etc." #: ../Doc/reference/datamodel.rst:2169 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" +"Pour plus d'informations sur les gestionnaires de contexte, lisez :ref:" +"`typecontextmanager`." #: ../Doc/reference/datamodel.rst:2174 msgid "" @@ -2494,6 +3589,10 @@ msgid "" "statement will bind this method's return value to the target(s) specified in " "the :keyword:`as` clause of the statement, if any." msgstr "" +"Entre dans le contexte d'exécution relatif à cet objet. L'instruction :" +"keyword:`with` lie la valeur de retour de cette méthode à une (ou plusieurs) " +"cible spécifiée par la clause :keyword:`as` de l'instruction, si elle est " +"spécifiée." #: ../Doc/reference/datamodel.rst:2181 msgid "" @@ -2501,6 +3600,9 @@ msgid "" "exception that caused the context to be exited. If the context was exited " "without an exception, all three arguments will be :const:`None`." msgstr "" +"Sort du contexte d'exécution relatif à cet objet. Les paramètres décrivent " +"l'exception qui a causé la sortie du contexte. Si l'on sort du contexte sans " +"exception, les trois arguments sont à :const:`None`." #: ../Doc/reference/datamodel.rst:2185 msgid "" @@ -2509,12 +3611,18 @@ msgid "" "Otherwise, the exception will be processed normally upon exit from this " "method." msgstr "" +"Si une exception est indiquée et que la méthode souhaite supprimer " +"l'exception (c'est-à-dire qu'elle ne veut pas que l'exception soit " +"propagée), elle doit renvoyer ``True``. Sinon, l'exception est traitée " +"normalement à la sortie de cette méthode." #: ../Doc/reference/datamodel.rst:2189 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." msgstr "" +"Notez qu'une méthode :meth:`__exit__` ne doit pas lever à nouveau " +"l'exception qu'elle reçoit ; c'est du ressort de l'appelant." #: ../Doc/reference/datamodel.rst:2196 msgid ":pep:`343` - The \"with\" statement" @@ -2525,10 +3633,12 @@ msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." #: ../Doc/reference/datamodel.rst:2203 msgid "Special method lookup" -msgstr "" +msgstr "Recherche des méthodes spéciales" #: ../Doc/reference/datamodel.rst:2205 msgid "" @@ -2537,6 +3647,10 @@ msgid "" "object's instance dictionary. That behaviour is the reason why the " "following code raises an exception::" msgstr "" +"Pour les classes définies par le développeur, l'invocation implicite de " +"méthodes spéciales n'est garantie que si ces méthodes sont définies par le " +"type d'objet, pas dans le dictionnaire de l'objet instance. Ce comportement " +"explique pourquoi le code suivant lève une exception ::" #: ../Doc/reference/datamodel.rst:2220 msgid "" @@ -2546,6 +3660,11 @@ msgid "" "used the conventional lookup process, they would fail when invoked on the " "type object itself::" msgstr "" +"La raison de ce comportement vient de certaines méthodes spéciales telles " +"que :meth:`__hash__` et :meth:`__repr__` qui sont implémentées par tous les " +"objets, y compris les objets types. Si la recherche effectuée par ces " +"méthodes utilisait le processus normal de recherche, elles ne " +"fonctionneraient pas si on les appelait sur l'objet type lui-même ::" #: ../Doc/reference/datamodel.rst:2233 msgid "" @@ -2553,6 +3672,9 @@ msgid "" "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " "the instance when looking up special methods::" msgstr "" +"Essayer d'invoquer une méthode non liée d'une classe de cette manière est " +"parfois appelé \"confusion de méta-classe\" et se contourne en shuntant " +"l'instance lors de la recherche des méthodes spéciales ::" #: ../Doc/reference/datamodel.rst:2242 msgid "" @@ -2560,6 +3682,9 @@ msgid "" "correctness, implicit special method lookup generally also bypasses the :" "meth:`__getattribute__` method even of the object's metaclass::" msgstr "" +"En plus de shunter les attributs des instances pour fonctionner " +"correctement, la recherche des méthodes spéciales implicites shunte aussi la " +"méthode :meth:`__getattribute__` même dans la méta-classe de l'objet ::" #: ../Doc/reference/datamodel.rst:2268 msgid "" @@ -2569,6 +3694,11 @@ msgid "" "method *must* be set on the class object itself in order to be consistently " "invoked by the interpreter)." msgstr "" +"En shuntant le mécanisme de :meth:`__getattribute__` de cette façon, cela " +"permet d'optimiser la vitesse de l'interpréteur moyennant une certaine " +"manœuvre dans la gestion des méthodes spéciales (la méthode spéciale *doit* " +"être définie sur l'objet classe lui-même afin d'être invoquée de manière " +"cohérente par l'interpréteur)." #: ../Doc/reference/datamodel.rst:2279 msgid "Coroutines" @@ -2576,7 +3706,7 @@ msgstr "Coroutines" #: ../Doc/reference/datamodel.rst:2283 msgid "Awaitable Objects" -msgstr "" +msgstr "Objets awaitables" #: ../Doc/reference/datamodel.rst:2285 msgid "" @@ -2584,6 +3714,9 @@ msgid "" "method. :term:`Coroutine` objects returned from :keyword:`async def` " "functions are awaitable." msgstr "" +"Un objet :term:`awaitable` implémente généralement une méthode :meth:" +"`__await__`. Les objets :term:`Coroutine` renvoyés par les fonctions :" +"keyword:`async def` sont des awaitables." #: ../Doc/reference/datamodel.rst:2291 msgid "" @@ -2591,6 +3724,9 @@ msgid "" "with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " "awaitable, but they do not implement :meth:`__await__`." msgstr "" +"Les objets :term:`itérateur de générateur` renvoyés par les générateurs " +"décorés par :func:`types.coroutine` ou :func:`asyncio.coroutine` sont aussi " +"des awaitables, mais ils n'implémentent pas :meth:`__await__`." #: ../Doc/reference/datamodel.rst:2297 msgid "" @@ -2598,14 +3734,17 @@ msgid "" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " "method to be compatible with the :keyword:`await` expression." msgstr "" +"Doit renvoyer un :term:`itérateur`. Doit être utilisé pour implémenter les " +"objets :term:`awaitable`. Par exemple, :class:`asyncio.Future` implémente " +"cette méthode pour être compatible avec les expressions :keyword:`await`." #: ../Doc/reference/datamodel.rst:2303 msgid ":pep:`492` for additional information about awaitable objects." -msgstr "" +msgstr ":pep:`492` pour les informations relatives aux objets awaitables." #: ../Doc/reference/datamodel.rst:2309 msgid "Coroutine Objects" -msgstr "" +msgstr "Objets coroutines" #: ../Doc/reference/datamodel.rst:2311 msgid "" @@ -2617,6 +3756,13 @@ msgid "" "raises an exception, it is propagated by the iterator. Coroutines should " "not directly raise unhandled :exc:`StopIteration` exceptions." msgstr "" +"Les objets :term:`Coroutine` sont des objets :term:`awaitable`. L'exécution " +"d'une coroutine peut être contrôlée en appelant :meth:`__await__` et en " +"itérant sur le résultat. Quand la coroutine a fini de s'exécuter et termine, " +"l'itérateur lève :exc:`StopIteration` et l'attribut :attr:`~StopIteration." +"value` de l'exception contient la valeur de retour. Si la coroutine lève une " +"exception, elle est propagée par l'itérateur. Les coroutines ne doivent pas " +"lever directement des exceptions :exc:`StopIteration` non gérées." #: ../Doc/reference/datamodel.rst:2319 msgid "" @@ -2624,10 +3770,16 @@ msgid "" "of generators (see :ref:`generator-methods`). However, unlike generators, " "coroutines do not directly support iteration." msgstr "" +"Les coroutines disposent aussi des méthodes listées ci-dessous, analogues à " +"celles des générateurs (voir :ref:`generator-methods`). Cependant, au " +"contraire des générateurs, vous ne pouvez pas itérer directement sur des " +"coroutines." #: ../Doc/reference/datamodel.rst:2323 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" +"Utiliser *await* plus d'une fois sur une coroutine lève une :exc:" +"`RuntimeError`." #: ../Doc/reference/datamodel.rst:2329 msgid "" @@ -2638,6 +3790,13 @@ msgid "" "result (return value, :exc:`StopIteration`, or other exception) is the same " "as when iterating over the :meth:`__await__` return value, described above." msgstr "" +"Démarre ou reprend l'exécution d'une coroutine. Si *value* est ``None``, " +"c'est équivalent à avancer l'itérateur renvoyé par :meth:`__await__`. Si " +"*value* ne vaut pas ``None``, cette méthode appelle la méthode :meth:" +"`~generator.send` de l'itérateur qui a causé la suspension de la coroutine. " +"Le résultat (valeur de retour, :exc:`StopIteration` ou une autre exception) " +"est le même que lorsque vous itérez sur la valeur de retour de :meth:" +"`__await__`, décrite ci-dessus." #: ../Doc/reference/datamodel.rst:2339 msgid "" @@ -2649,6 +3808,13 @@ msgid "" "meth:`__await__` return value, described above. If the exception is not " "caught in the coroutine, it propagates back to the caller." msgstr "" +"Lève l'exception spécifiée dans la coroutine. Cette méthode délègue à la " +"méthode :meth:`~generator.throw` de l'itérateur qui a causé la suspension de " +"la coroutine, s'il possède une telle méthode. Sinon, l'exception est levée " +"au point de suspension. Le résultat (valeur de retour, :exc:`StopIteration` " +"ou une autre exception) est le même que lorsque vous itérez sur la valeur de " +"retour de :meth:`__await__`, décrite ci-dessus. Si l'exception n'est pas " +"gérée par la coroutine, elle est propagée à l'appelant." #: ../Doc/reference/datamodel.rst:2350 msgid "" @@ -2659,16 +3825,25 @@ msgid "" "causing the coroutine to immediately clean itself up. Finally, the coroutine " "is marked as having finished executing, even if it was never started." msgstr "" +"Demande à la coroutine de faire le ménage et de se terminer. Si la coroutine " +"est suspendue, cette méthode délègue d'abord à la méthode :meth:`~generator." +"close` de l'itérateur qui a causé la suspension de la coroutine, s'il " +"possède une telle méthode. Ensuite, elle lève :exc:`GeneratorExit` au point " +"de suspension, ce qui fait le ménage dans la coroutine immédiatement. Enfin, " +"la coroutine est marquée comme ayant terminé son exécution, même si elle n'a " +"jamais démarré." #: ../Doc/reference/datamodel.rst:2358 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." msgstr "" +"Les objets coroutines sont automatiquement fermés en utilisant le processus " +"décrit au-dessus au moment où ils sont détruits." #: ../Doc/reference/datamodel.rst:2364 msgid "Asynchronous Iterators" -msgstr "" +msgstr "Itérateurs asynchrones" #: ../Doc/reference/datamodel.rst:2366 msgid "" @@ -2676,25 +3851,33 @@ msgid "" "``__aiter__`` implementation, and an *asynchronous iterator* can call " "asynchronous code in its ``__anext__`` method." msgstr "" +"Un itérateur asynchrone est capable d'appeler du code asynchrone dans " +"l'implémentation de son ``__aiter__`` et peut appeler du code asynchrone " +"dans sa méthode ``__anext__``." #: ../Doc/reference/datamodel.rst:2370 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" +"Les itérateurs asynchrones peuvent être utilisés dans des instructions :" +"keyword:`async for`." #: ../Doc/reference/datamodel.rst:2374 msgid "Must return an *asynchronous iterator* object." -msgstr "" +msgstr "Doit renvoyer un objet *itérateur asynchrone*." #: ../Doc/reference/datamodel.rst:2378 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." msgstr "" +"Doit renvoyer un *awaitable* qui se traduit par la valeur suivante de " +"l'itérateur. Doit lever une :exc:`StopAsyncIteration` quand l'itération est " +"terminée." #: ../Doc/reference/datamodel.rst:2381 msgid "An example of an asynchronous iterable object::" -msgstr "" +msgstr "Un exemple d'objet itérateur asynchrone ::" #: ../Doc/reference/datamodel.rst:2400 msgid "" @@ -2702,6 +3885,9 @@ msgid "" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" +"À partir de CPython 3.5.2, ``__aiter__`` peut directement renvoyer des :term:" +"`itérateurs asynchrones `. Renvoyer un objet :term:" +"`awaitable` entraine un avertissement :exc:`PendingDeprecationWarning`." #: ../Doc/reference/datamodel.rst:2406 msgid "" @@ -2710,6 +3896,10 @@ msgid "" "the PendingDeprecationWarning and keep the code backwards compatible, the " "following decorator can be used::" msgstr "" +"La façon conseillée d'écrire du code compatible descendant en CPython 3.5.x " +"est de continuer à renvoyer des awaitables avec ``__aiter__``. Si vous " +"voulez éviter l'avertissement *PendingDeprecationWarning* et conserver un " +"code compatible descendant, le décorateur suivant peut être utilisé ::" #: ../Doc/reference/datamodel.rst:2425 msgid "Example::" @@ -2721,38 +3911,50 @@ msgid "" "replaced with the :exc:`DeprecationWarning`. In CPython 3.7, returning an " "awaitable from ``__aiter__`` will result in a :exc:`RuntimeError`." msgstr "" +"À partir de CPython 3.6, le :exc:`PendingDeprecationWarning` est remplacé " +"par un :exc:`DeprecationWarning`. Dans CPython 3.7, renvoyer un awaitable " +"avec ``__aiter__`` entraine une :exc:`RuntimeError`." #: ../Doc/reference/datamodel.rst:2443 msgid "Asynchronous Context Managers" -msgstr "" +msgstr "Gestionnaires de contexte asynchrones" #: ../Doc/reference/datamodel.rst:2445 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." msgstr "" +"Un *gestionnaire de contexte asynchrone* est un *gestionnaire de contexte* " +"qui est capable de suspendre son exécution dans ses méthodes ``__aenter__`` " +"et ``__aexit__``." #: ../Doc/reference/datamodel.rst:2448 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." msgstr "" +"Les gestionnaires de contexte asynchrones peuvent être utilisés dans des " +"instructions :keyword:`async with`." #: ../Doc/reference/datamodel.rst:2452 msgid "" "This method is semantically similar to the :meth:`__enter__`, with only " "difference that it must return an *awaitable*." msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__enter__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." #: ../Doc/reference/datamodel.rst:2457 msgid "" "This method is semantically similar to the :meth:`__exit__`, with only " "difference that it must return an *awaitable*." msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__exit__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." #: ../Doc/reference/datamodel.rst:2460 msgid "An example of an asynchronous context manager class::" -msgstr "" +msgstr "Un exemple de classe de gestionnaire de contexte asynchrone ::" #: ../Doc/reference/datamodel.rst:2473 msgid "Footnotes" @@ -2764,6 +3966,10 @@ msgid "" "controlled conditions. It generally isn't a good idea though, since it can " "lead to some very strange behaviour if it is handled incorrectly." msgstr "" +"Il *est* possible, dans certains cas, de changer le type d'un objet, sous " +"certaines conditions. Cependant, ce n'est généralement pas une bonne idée " +"car cela peut conduire à un comportement très étrange si ce n'est pas géré " +"correctement." #: ../Doc/reference/datamodel.rst:2478 msgid "" @@ -2771,3 +3977,6 @@ msgid "" "method (such as :meth:`__add__`) fails the operation is not supported, which " "is why the reflected method is not called." msgstr "" +"Pour des opérandes de même type, on considère que si la méthode originelle " +"(telle que :meth:`__add__`) échoue, l'opération n'est pas autorisée et donc " +"la méthode symétrique n'est pas appelée." diff --git a/reference/executionmodel.po b/reference/executionmodel.po index a90863bb..bc239c16 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" -msgstr "" +msgstr "Modèle d'exécution" #: ../Doc/reference/executionmodel.rst:15 msgid "Structure of a program" -msgstr "" +msgstr "Structure d'un programme" #: ../Doc/reference/executionmodel.rst:19 msgid "" @@ -36,6 +36,16 @@ msgid "" "passed to the built-in functions :func:`eval` and :func:`exec` is a code " "block." msgstr "" +"Un programme Python est constitué de blocs de code. Un :dfn:`bloc` est un " +"morceau de texte d'un programme Python qui est exécuté unitairement. Voici " +"des exemples de blocs : un module, le corps d'une fonction ou la définition " +"d'une classe. Chaque commande tapée dans l'interpréteur interactif est un " +"bloc. Un fichier script (fichier donné en entrée à l'interpréteur ou " +"spécifié en tant qu'argument de la ligne de commande) est un bloc de code. " +"Un script de commande (commande spécifiée dans la ligne de commande de " +"l'interpréteur avec l'option '**-c**') est un bloc de code. La chaîne passée " +"en argument aux fonctions natives :func:`eval` ou :func:`exec` est un bloc " +"de code." #: ../Doc/reference/executionmodel.rst:31 msgid "" @@ -43,20 +53,26 @@ msgid "" "some administrative information (used for debugging) and determines where " "and how execution continues after the code block's execution has completed." msgstr "" +"Un bloc de code est exécuté dans un :dfn:`cadre d'exécution`. Un cadre " +"contient des informations administratives (utilisées pour le débogage) et " +"détermine où et comment l'exécution se poursuit après la fin de l'exécution " +"du bloc de code." #: ../Doc/reference/executionmodel.rst:38 msgid "Naming and binding" -msgstr "" +msgstr "Noms et liaisons" #: ../Doc/reference/executionmodel.rst:47 msgid "Binding of names" -msgstr "" +msgstr "Liaisons des noms" #: ../Doc/reference/executionmodel.rst:53 msgid "" ":dfn:`Names` refer to objects. Names are introduced by name binding " "operations." msgstr "" +"Les :dfn:`noms` sont des références aux objets. Ils sont créés lors des " +"opérations de liaisons de noms (*name binding* en anglais)." #: ../Doc/reference/executionmodel.rst:57 msgid "" @@ -69,18 +85,34 @@ msgid "" "binds all names defined in the imported module, except those beginning with " "an underscore. This form may only be used at the module level." msgstr "" +"Les constructions suivantes conduisent à des opérations de liaison à des " +"noms : les paramètres formels d'une fonction, les instructions :keyword:" +"`import`, les définitions de fonctions et de classes (le nom de la classe ou " +"de la fonction est lié au bloc qui la définit) et les cibles qui sont des " +"identifiants dans les assignations, les entêtes de boucles :keyword:`for` ou " +"après :keyword:`as` dans une instruction :keyword:`with` ou une clause :" +"keyword:`except`. L'instruction :keyword:`import` sous la forme ``from ... " +"import *`` lie tous les noms définis dans le module importé, sauf ceux qui " +"commencent par un tiret bas (`'_'`). Cette forme ne doit être utilisée qu'au " +"niveau du module." #: ../Doc/reference/executionmodel.rst:67 msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." msgstr "" +"Une cible qui apparaît dans une instruction :keyword:`del` est aussi " +"considérée comme une liaison à un nom dans ce cadre (bien que la sémantique " +"véritable soit de délier le nom)." #: ../Doc/reference/executionmodel.rst:70 msgid "" "Each assignment or import statement occurs within a block defined by a class " "or function definition or at the module level (the top-level code block)." msgstr "" +"Chaque assignation ou instruction *import* a lieu dans un bloc défini par " +"une définition de classe ou de fonction ou au niveau du module (le bloc de " +"code de plus haut niveau)." #: ../Doc/reference/executionmodel.rst:75 msgid "" @@ -90,16 +122,24 @@ msgid "" "code block are local and global.) If a variable is used in a code block but " "not defined there, it is a :dfn:`free variable`." msgstr "" +"Si un nom est lié dans un bloc, c'est une variable locale de ce bloc, à " +"moins qu'il ne soit déclaré :keyword:`nonlocal` ou :keyword:`global`. Si un " +"nom est lié au niveau du module, c'est une variable globale (les variables " +"du bloc de code de niveau module sont locales et globales). Si une variable " +"est utilisée dans un bloc de code alors qu'elle n'y est pas définie, c'est " +"une :dfn:`variable libre`." #: ../Doc/reference/executionmodel.rst:81 msgid "" "Each occurrence of a name in the program text refers to the :dfn:`binding` " "of that name established by the following name resolution rules." msgstr "" +"Chaque occurrence d'un nom dans un programme fait référence à la :dfn:" +"`liaison` de ce nom établie par les règles de résolution des noms suivantes." #: ../Doc/reference/executionmodel.rst:87 msgid "Resolution of names" -msgstr "" +msgstr "Résolution des noms" #: ../Doc/reference/executionmodel.rst:91 msgid "" @@ -109,6 +149,11 @@ msgid "" "contained within the defining one, unless a contained block introduces a " "different binding for the name." msgstr "" +"La :dfn:`portée` définit la visibilité d'un nom dans un bloc. Si une " +"variable locale est définie dans un bloc, sa portée comprend ce bloc. Si la " +"définition intervient dans le bloc d'une fonction, la portée s'étend à tous " +"les blocs contenus dans celui qui comprend la définition, à moins qu'un bloc " +"intérieur ne définisse une autre liaison pour ce nom." #: ../Doc/reference/executionmodel.rst:99 msgid "" @@ -116,6 +161,9 @@ msgid "" "enclosing scope. The set of all such scopes visible to a code block is " "called the block's :dfn:`environment`." msgstr "" +"Quand un nom est utilisé dans un bloc de code, la résolution utilise la " +"portée la plus petite. L'ensemble de toutes les portées visibles dans un " +"bloc de code s'appelle :dfn:`l'environnement` du bloc." #: ../Doc/reference/executionmodel.rst:107 msgid "" @@ -125,6 +173,11 @@ msgid "" "is used, an :exc:`UnboundLocalError` exception is raised. :exc:" "`UnboundLocalError` is a subclass of :exc:`NameError`." msgstr "" +"Quand un nom n'est trouvé nulle part, une exception :exc:`NameError` est " +"levée. Si la portée courante est celle d'une fonction et que le nom fait " +"référence à une variable locale qui n'a pas encore été liée au moment où le " +"nom est utilisé, une exception :exc:`UnboundLocalError` est levée. :exc:" +"`UnboundLocalError` est une sous-classe de :exc:`NameError`." #: ../Doc/reference/executionmodel.rst:113 msgid "" @@ -136,6 +189,14 @@ msgid "" "variables of a code block can be determined by scanning the entire text of " "the block for name binding operations." msgstr "" +"Si une opération de liaison intervient dans un bloc de code, toutes les " +"utilisations du nom dans le bloc sont considérées comme des références au " +"bloc courant. Ceci peut conduire à des erreurs quand un nom est utilisé à " +"l'intérieur d'un bloc avant d'être lié. La règle est subtile. Python " +"n'attend pas de déclaration de variables et autorise les opérations de " +"liaison n'importe où dans un bloc de code. Les variables locales d'un bloc " +"de code peuvent être déterminées en parcourant tout le texte du bloc à la " +"recherche des opérations de liaisons." #: ../Doc/reference/executionmodel.rst:120 msgid "" @@ -148,6 +209,16 @@ msgid "" "found there, the builtins namespace is searched. The :keyword:`global` " "statement must precede all uses of the name." msgstr "" +"Si l'instruction :keyword:`global` apparaît dans un bloc, toutes les " +"utilisations du nom spécifié dans l'instruction font référence à la liaison " +"de ce nom dans l'espace de noms de plus haut niveau. Les noms sont résolus " +"dans cet espace de noms de plus haut niveau en recherchant l'espace des noms " +"globaux, c'est-à-dire l'espace de noms du module contenant le bloc de code " +"ainsi que dans l'espace de noms natifs, celui du module :mod:`builtins`. La " +"recherche commence dans l'espace de noms globaux. Si le nom n'y est pas " +"trouvé, la recherche se poursuit dans l'espace de noms natifs. " +"L'instruction :keyword:`global` doit précéder toute utilisation du nom " +"considéré." #: ../Doc/reference/executionmodel.rst:129 msgid "" @@ -156,6 +227,9 @@ msgid "" "variable contains a global statement, the free variable is treated as a " "global." msgstr "" +"L'instruction :keyword:`global` a la même porte qu'une opération de liaison " +"du même bloc. Si la portée englobante la plus petite pour une variable libre " +"contient une instruction *global*, la variable libre est considérée globale." #: ../Doc/reference/executionmodel.rst:135 msgid "" @@ -164,12 +238,20 @@ msgid "" "`SyntaxError` is raised at compile time if the given name does not exist in " "any enclosing function scope." msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms correspondants font " +"référence aux variables liées précédemment dans la portée de fonction " +"englobante la plus petite possible. :exc:`SyntaxError` est levée à la " +"compilation si le nom donné n'existe dans aucune portée de fonction " +"englobante." #: ../Doc/reference/executionmodel.rst:142 msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" +"L'espace de noms pour un module est créé automatiquement la première fois " +"que le module est importé. Le module principal d'un script s'appelle " +"toujours :mod:`__main__`." #: ../Doc/reference/executionmodel.rst:145 msgid "" @@ -184,10 +266,22 @@ msgid "" "expressions since they are implemented using a function scope. This means " "that the following will fail::" msgstr "" +"Les blocs de définition de classe et les arguments de :func:`exec` ainsi " +"que :func:`eval` sont traités de manière spéciale dans le cadre de la " +"résolution des noms. Une définition de classe est une instruction exécutable " +"qui peut utiliser et définir des noms. Toutes ces références suivent les " +"règles normales de la résolution des noms à l'exception des variables " +"locales non liées qui sont recherchées dans l'espace des noms globaux. " +"L'espace de noms de la définition de classe devient le dictionnaire des " +"attributs de la classe. La portée des noms définis dans un bloc de classe " +"est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " +"méthodes -- y compris les compréhensions et les expressions générateurs " +"puisque celles-ci sont implémentées en utilisant une portée de fonction. " +"Ainsi, les instructions suivantes échouent ::" #: ../Doc/reference/executionmodel.rst:163 msgid "Builtins and restricted execution" -msgstr "" +msgstr "Noms natifs et restrictions d'exécution" #: ../Doc/reference/executionmodel.rst:167 msgid "" @@ -208,16 +302,23 @@ msgid "" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" +"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit " +"rester réservé aux besoins de l'implémentation. Les utilisateurs qui " +"souhaitent surcharger des valeurs dans l'espace de noms natifs doivent :" +"keyword:`import`\\ er le module :mod:`builtins` et modifier ses attributs " +"judicieusement." #: ../Doc/reference/executionmodel.rst:186 msgid "Interaction with dynamic features" -msgstr "" +msgstr "Interaction avec les fonctionnalités dynamiques" #: ../Doc/reference/executionmodel.rst:188 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" msgstr "" +"La résolution des noms de variables libres intervient à l'exécution, pas à " +"la compilation. Cela signifie que le code suivant affiche 42 ::" #: ../Doc/reference/executionmodel.rst:197 msgid "" @@ -241,10 +342,18 @@ msgid "" "global and local namespace. If only one namespace is specified, it is used " "for both." msgstr "" +"Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement " +"complet pour résoudre les noms. Les noms doivent être résolus dans les " +"espaces de noms locaux et globaux de l'appelant. Les variables libres ne " +"sont pas résolues dans l'espace de noms englobant le plus proche mais dans " +"l'espace de noms globaux [#]_. Les fonctions :func:`eval` et :func:`exec` " +"possèdent des arguments optionnels pour surcharger les espaces de noms " +"globaux et locaux. Si seulement un espace de noms est spécifié, il est " +"utilisé pour les deux." #: ../Doc/reference/executionmodel.rst:216 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/reference/executionmodel.rst:227 msgid "" @@ -254,6 +363,12 @@ msgid "" "*handled* by the surrounding code block or by any code block that directly " "or indirectly invoked the code block where the error occurred." msgstr "" +"Les exceptions sont un moyen de sortir du flot normal d'exécution d'un bloc " +"de code de manière à gérer des erreurs ou des conditions exceptionnelles. " +"Une exception est *levée* au moment où l'erreur est détectée ; elle doit " +"être *gérée* par le bloc de code qui l'entoure ou par tout bloc de code qui " +"a, directement ou indirectement, invoqué le bloc de code où l'erreur s'est " +"produite." #: ../Doc/reference/executionmodel.rst:233 msgid "" @@ -265,6 +380,14 @@ msgid "" "code which does not handle the exception, but is executed whether an " "exception occurred or not in the preceding code." msgstr "" +"L'interpréteur Python lève une exception quand il détecte une erreur à " +"l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " +"lever explicitement une exception avec l'instruction :keyword:`raise`. Les " +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:" +"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle " +"instruction peut être utilisée pour spécifier un code de nettoyage qui ne " +"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou " +"pas)." #: ../Doc/reference/executionmodel.rst:243 msgid "" @@ -273,6 +396,11 @@ msgid "" "but it cannot repair the cause of the error and retry the failing operation " "(except by re-entering the offending piece of code from the top)." msgstr "" +"Python utilise le modèle par *terminaison* de gestion des erreurs : un " +"gestionnaire d'exception peut trouver ce qui est arrivé et continuer " +"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de " +"l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " +"dans le code en question par le haut)." #: ../Doc/reference/executionmodel.rst:250 msgid "" @@ -281,6 +409,10 @@ msgid "" "either case, it prints a stack backtrace, except when the exception is :exc:" "`SystemExit`." msgstr "" +"Quand une exception n'est gérée par aucun gestionnaire, l'interpréteur " +"termine l'exécution du programme ou retourne à la boucle interactive. Dans " +"ces cas, il affiche une trace de la pile d'appels, sauf si l'exception est :" +"exc:`SystemExit`." #: ../Doc/reference/executionmodel.rst:254 msgid "" @@ -290,6 +422,11 @@ msgid "" "by the handler and can carry additional information about the exceptional " "condition." msgstr "" +"Les exceptions sont identifiées par des instances de classe. La clause :" +"keyword:`except` sélectionnée dépend de la classe de l'instance : elle doit " +"faire référence à la classe de l'instance ou à une de ses classes ancêtres. " +"L'instance peut être transmise au gestionnaire et peut apporter des " +"informations complémentaires sur les conditions de l'exception." #: ../Doc/reference/executionmodel.rst:261 msgid "" @@ -298,12 +435,19 @@ msgid "" "be relied on by code which will run under multiple versions of the " "interpreter." msgstr "" +"Les messages d'exception ne font pas partie de l'API Python. Leur contenu " +"peut changer d'une version de Python à une autre sans avertissement et le " +"code ne doit pas reposer sur ceux-ci s'il doit fonctionner sur plusieurs " +"versions de l'interpréteur." #: ../Doc/reference/executionmodel.rst:265 msgid "" "See also the description of the :keyword:`try` statement in section :ref:" "`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" +"Reportez-vous aussi aux descriptions de l'instruction :keyword:`try` dans la " +"section :ref:`try` et de l'instruction :keyword:`raise` dans la section :ref:" +"`raise`." #: ../Doc/reference/executionmodel.rst:270 msgid "Footnotes" @@ -314,3 +458,5 @@ msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" +"En effet, le code qui est exécuté par ces opérations n'est pas connu au " +"moment où le module est compilé." diff --git a/reference/expressions.po b/reference/expressions.po index 7e9dd06a..65244138 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -18,12 +18,13 @@ msgstr "" #: ../Doc/reference/expressions.rst:6 msgid "Expressions" -msgstr "" +msgstr "Expressions" #: ../Doc/reference/expressions.rst:10 msgid "" "This chapter explains the meaning of the elements of expressions in Python." msgstr "" +"Ce chapitre explique la signification des éléments des expressions en Python." #: ../Doc/reference/expressions.rst:12 msgid "" @@ -31,16 +32,21 @@ msgid "" "will be used to describe syntax, not lexical analysis. When (one " "alternative of) a syntax rule has the form" msgstr "" +"**Notes sur la syntaxe :** dans ce chapitre et le suivant, nous utilisons la " +"notation BNF étendue pour décrire la syntaxe, pas l'analyse lexicale. Quand " +"une règle de syntaxe est de la forme" #: ../Doc/reference/expressions.rst:19 msgid "" "and no semantics are given, the semantics of this form of ``name`` are the " "same as for ``othername``." msgstr "" +"et qu'aucune sémantique n'est donnée, la sémantique de ``name`` est la même " +"que celle de ``othername``." #: ../Doc/reference/expressions.rst:26 msgid "Arithmetic conversions" -msgstr "" +msgstr "Conversions arithmétiques" #: ../Doc/reference/expressions.rst:30 msgid "" @@ -48,21 +54,31 @@ msgid "" "numeric arguments are converted to a common type,\" this means that the " "operator implementation for built-in types works as follows:" msgstr "" +"Quand la description d'un opérateur arithmétique ci-dessous utilise la " +"phrase \"les arguments numériques sont convertis vers un type commun\", cela " +"signifie que l'implémentation de l'opérateur fonctionne de la manière " +"suivante pour les types natifs :" #: ../Doc/reference/expressions.rst:34 msgid "" "If either argument is a complex number, the other is converted to complex;" msgstr "" +"Si l'un des deux arguments est du type nombre complexe, l'autre est converti " +"en nombre complexe ;" #: ../Doc/reference/expressions.rst:36 msgid "" "otherwise, if either argument is a floating point number, the other is " "converted to floating point;" msgstr "" +"sinon, si l'un des arguments est un nombre à virgule flottante, l'autre est " +"converti en nombre à virgule flottante ;" #: ../Doc/reference/expressions.rst:39 msgid "otherwise, both must be integers and no conversion is necessary." msgstr "" +"sinon, les deux doivent être des entiers et aucune conversion n'est " +"nécessaire." #: ../Doc/reference/expressions.rst:41 msgid "" @@ -70,10 +86,13 @@ msgid "" "argument to the '%' operator). Extensions must define their own conversion " "behavior." msgstr "" +"Des règles supplémentaires s'appliquent pour certains opérateurs (par " +"exemple, une chaîne comme opérande de gauche pour l'opérateur '%'). Les " +"extensions doivent définir leurs propres règles de conversion." #: ../Doc/reference/expressions.rst:49 msgid "Atoms" -msgstr "" +msgstr "Atomes" #: ../Doc/reference/expressions.rst:53 msgid "" @@ -81,10 +100,14 @@ msgid "" "identifiers or literals. Forms enclosed in parentheses, brackets or braces " "are also categorized syntactically as atoms. The syntax for atoms is:" msgstr "" +"Les atomes sont les éléments de base des expressions. Les atomes les plus " +"simples sont les identifiants et les littéraux. Les expressions entre " +"parenthèses, crochets ou accolades sont aussi classées syntaxiquement comme " +"des atomes. La syntaxe pour les atomes est :" #: ../Doc/reference/expressions.rst:66 msgid "Identifiers (Names)" -msgstr "" +msgstr "Identifiants (noms)" #: ../Doc/reference/expressions.rst:70 msgid "" @@ -92,6 +115,9 @@ msgid "" "`identifiers` for lexical definition and section :ref:`naming` for " "documentation of naming and binding." msgstr "" +"Un identifiant qui apparaît en tant qu'atome est un nom. Lisez la section :" +"ref:`identifiers` pour la définition lexicale et la section :ref:`naming` " +"pour la documentation sur les noms et les liaisons afférentes." #: ../Doc/reference/expressions.rst:76 msgid "" @@ -99,6 +125,9 @@ msgid "" "object. When a name is not bound, an attempt to evaluate it raises a :exc:" "`NameError` exception." msgstr "" +"Quand un nom est lié à un objet, l'évaluation de l'atome produit cet objet. " +"Quand le nom n'est pas lié, toute tentative de l'évaluer lève une exception :" +"exc:`NameError`." #: ../Doc/reference/expressions.rst:84 msgid "" @@ -115,14 +144,30 @@ msgid "" "implementation defined truncation may happen. If the class name consists " "only of underscores, no transformation is done." msgstr "" +"**Transformation des noms privés :** lorsqu'un identificateur qui apparaît " +"textuellement dans la définition d'une classe commence par deux (ou plus) " +"caractères de soulignement et ne se termine pas par deux (ou plus) " +"caractères de soulignement, il est considéré comme un :dfn:`nom privé " +"` de cette classe. Les noms privés sont transformés en une " +"forme plus longue avant que le code ne soit généré pour eux. La " +"transformation insère le nom de la classe, avec les soulignés enlevés et un " +"seul souligné inséré devant le nom. Par exemple, l'identificateur " +"``__spam`` apparaissant dans une classe nommée ``Ham`` est transformé en " +"``_Ham__spam``. Cette transformation est indépendante du contexte syntaxique " +"dans lequel l'identificateur est utilisé. Si le nom transformé est " +"extrêmement long (plus de 255 caractères), l'implémentation peut le " +"tronquer. Si le nom de la classe est constitué uniquement de traits de " +"soulignement, aucune transformation n'est effectuée." #: ../Doc/reference/expressions.rst:100 msgid "Literals" -msgstr "" +msgstr "Littéraux" #: ../Doc/reference/expressions.rst:104 msgid "Python supports string and bytes literals and various numeric literals:" msgstr "" +"Python gère les littéraux de chaînes de caractères, de chaînes d'octets et " +"de plusieurs autres types numériques :" #: ../Doc/reference/expressions.rst:110 msgid "" @@ -131,6 +176,11 @@ msgid "" "value may be approximated in the case of floating point and imaginary " "(complex) literals. See section :ref:`literals` for details." msgstr "" +"L'évaluation d'un littéral produit un objet du type donné (chaîne de " +"caractères, chaîne d'octets, entier, nombre à virgule flottante, nombre " +"complexe) avec la valeur donnée. La valeur peut être approximée dans le cas " +"des nombres à virgule flottante et des nombres imaginaires (complexes). " +"Reportez-vous à la section :ref:`literals` pour les détails." #: ../Doc/reference/expressions.rst:119 msgid "" @@ -140,15 +190,22 @@ msgid "" "different occurrence) may obtain the same object or a different object with " "the same value." msgstr "" +"Tous les littéraux sont de types immuables et donc l'identifiant de l'objet " +"est moins important que sa valeur. Des évaluations multiples de littéraux " +"avec la même valeur (soit la même occurrence dans le texte du programme, " +"soit une autre occurrence) résultent dans le même objet ou un objet " +"différent avec la même valeur." #: ../Doc/reference/expressions.rst:129 msgid "Parenthesized forms" -msgstr "" +msgstr "Formes parenthésées" #: ../Doc/reference/expressions.rst:133 msgid "" "A parenthesized form is an optional expression list enclosed in parentheses:" msgstr "" +"Une forme parenthésée est une liste d'expressions (cette liste est en fait " +"optionnelle) placée à l'intérieur de parenthèses :" #: ../Doc/reference/expressions.rst:138 msgid "" @@ -156,6 +213,10 @@ msgid "" "if the list contains at least one comma, it yields a tuple; otherwise, it " "yields the single expression that makes up the expression list." msgstr "" +"Une liste d'expressions entre parenthèses produit ce que la liste de ces " +"expressions produirait : si la liste contient au moins une virgule, elle " +"produit un n-uplet (type *tuple*) ; sinon, elle produit l'expression elle-" +"même (qui constitue donc elle-même la liste d'expressions)." #: ../Doc/reference/expressions.rst:144 msgid "" @@ -163,6 +224,10 @@ msgid "" "immutable, the rules for literals apply (i.e., two occurrences of the empty " "tuple may or may not yield the same object)." msgstr "" +"Une paire de parenthèses vide produit un objet *tuple* vide. Comme les " +"*tuples* sont immuables, la règle pour les littéraux s'applique (c'est-à-" +"dire que deux occurrences du *tuple* vide peuvent, ou pas, produire le même " +"objet)." #: ../Doc/reference/expressions.rst:152 msgid "" @@ -171,30 +236,43 @@ msgid "" "*are* required --- allowing unparenthesized \"nothing\" in expressions would " "cause ambiguities and allow common typos to pass uncaught." msgstr "" +"Notez que les *tuples* ne sont pas créés par les parenthèses mais par " +"l'utilisation de la virgule. L'exception est le tuple vide, pour lequel les " +"parenthèses *sont requises* (autoriser que \"rien\" ne soit pas parenthésé " +"dans les expressions aurait généré des ambigüités et aurait permis à " +"certaines coquilles de passer inaperçu)." #: ../Doc/reference/expressions.rst:161 msgid "Displays for lists, sets and dictionaries" -msgstr "" +msgstr "Agencements des listes, ensembles et dictionnaires" #: ../Doc/reference/expressions.rst:163 msgid "" "For constructing a list, a set or a dictionary Python provides special " "syntax called \"displays\", each of them in two flavors:" msgstr "" +"Pour construire une liste, un ensemble ou un dictionnaire, Python fournit " +"des syntaxes spéciales dites \"agencements\" (*displays* en anglais), chaque " +"agencement comportant deux variantes :" #: ../Doc/reference/expressions.rst:166 msgid "either the container contents are listed explicitly, or" -msgstr "" +msgstr "soit le contenu du conteneur est listé explicitement," #: ../Doc/reference/expressions.rst:168 msgid "" "they are computed via a set of looping and filtering instructions, called a :" "dfn:`comprehension`." msgstr "" +"soit il est calculé à l'aide de la combinaison d'une boucle et " +"d'instructions de filtrage, appelée une :dfn:`compréhension` (dans le sens " +"de ce qui sert à définir un concept, par opposition à *extension*)." #: ../Doc/reference/expressions.rst:171 msgid "Common syntax elements for comprehensions are:" msgstr "" +"Les compréhensions sont constituées des éléments de syntaxe communs " +"suivants :" #: ../Doc/reference/expressions.rst:179 msgid "" @@ -205,22 +283,34 @@ msgid "" "clauses a block, nesting from left to right, and evaluating the expression " "to produce an element each time the innermost block is reached." msgstr "" +"Une compréhension est constituée par une seule expression suivie par au " +"moins une clause :keyword:`for` et zéro ou plus clauses :keyword:`for` ou :" +"keyword:`if`. Dans ce cas, les éléments du nouveau conteneur sont ceux qui " +"auraient été produits si l'on avait considéré toutes les clauses :keyword:" +"`for` ou :keyword:`if` comme des blocs, imbriqués de la gauche vers la " +"droite, et évalué l'expression pour produire un élément à chaque fois que le " +"bloc le plus imbriqué était atteint." #: ../Doc/reference/expressions.rst:186 msgid "" "Note that the comprehension is executed in a separate scope, so names " "assigned to in the target list don't \"leak\" into the enclosing scope." msgstr "" +"Notez que la compréhension est exécutée dans une portée séparée, les noms " +"assignés dans la liste cible ne pouvant pas \"fuir\" en dehors de cette " +"portée." #: ../Doc/reference/expressions.rst:193 msgid "List displays" -msgstr "" +msgstr "Agencements de listes" #: ../Doc/reference/expressions.rst:201 msgid "" "A list display is a possibly empty series of expressions enclosed in square " "brackets:" msgstr "" +"Un agencement de liste est une suite (possiblement vide) d'expressions à " +"l'intérieur de crochets :" #: ../Doc/reference/expressions.rst:207 msgid "" @@ -231,16 +321,26 @@ msgid "" "is supplied, the list is constructed from the elements resulting from the " "comprehension." msgstr "" +"Un agencement de liste produit un nouvel objet liste, dont le contenu est " +"spécifié soit par une liste d'expression soit par une compréhension. Quand " +"une liste d'expressions (dont les éléments sont séparés par des virgules) " +"est fournie, ces éléments sont évalués de la gauche vers la droite et placés " +"dans l'objet liste, dans cet ordre. Quand c'est une compréhension qui est " +"fournie, la liste est construite à partir des éléments produits par la " +"compréhension." #: ../Doc/reference/expressions.rst:217 msgid "Set displays" -msgstr "" +msgstr "Agencements d'ensembles" #: ../Doc/reference/expressions.rst:222 msgid "" "A set display is denoted by curly braces and distinguishable from dictionary " "displays by the lack of colons separating keys and values:" msgstr "" +"Un agencement d'ensemble (type *set*) est délimité par des accolades et se " +"distingue de l'agencement d'un dictionnaire par le fait qu'il n'y a pas de " +"\"deux points\" ``:`` pour séparer les clés et les valeurs :" #: ../Doc/reference/expressions.rst:228 msgid "" @@ -251,26 +351,36 @@ msgid "" "supplied, the set is constructed from the elements resulting from the " "comprehension." msgstr "" +"Un agencement d'ensemble produit un nouvel objet ensemble muable, le contenu " +"étant spécifié soit par une séquence d'expression, soit par une " +"compréhension. Quand une liste (dont les éléments sont séparés par des " +"virgules) est fournie, ses éléments sont évalués de la gauche vers la droite " +"et ajoutés à l'objet ensemble. Quand une compréhension est fournie, " +"l'ensemble est construit à partir des éléments produits par la compréhension." #: ../Doc/reference/expressions.rst:234 msgid "" "An empty set cannot be constructed with ``{}``; this literal constructs an " "empty dictionary." msgstr "" +"Un ensemble vide ne peut pas être construit par ``{}`` ; cette écriture " +"construit un dictionnaire vide." #: ../Doc/reference/expressions.rst:241 msgid "Dictionary displays" -msgstr "" +msgstr "Agencements de dictionnaires" #: ../Doc/reference/expressions.rst:247 msgid "" "A dictionary display is a possibly empty series of key/datum pairs enclosed " "in curly braces:" msgstr "" +"Un agencement de dictionnaire est une série (possiblement vide) de couples " +"clés-valeurs entourée par des accolades :" #: ../Doc/reference/expressions.rst:256 msgid "A dictionary display yields a new dictionary object." -msgstr "" +msgstr "Un agencement de dictionnaire produit un nouvel objet dictionnaire." #: ../Doc/reference/expressions.rst:258 msgid "" @@ -281,6 +391,13 @@ msgid "" "key/datum list, and the final dictionary's value for that key will be the " "last one given." msgstr "" +"Si une séquence (dont les éléments sont séparés par des virgules) de couples " +"clés-valeurs est fournie, les couples sont évalués de la gauche vers la " +"droite pour définir les entrées du dictionnaire : chaque objet clé est " +"utilisé comme clé dans le dictionnaire pour stocker la donnée " +"correspondante. Cela signifie que vous pouvez spécifier la même clé " +"plusieurs fois dans la liste des couples clés-valeurs et, dans ce cas, la " +"valeur finalement stockée dans le dictionnaire est la dernière donnée." #: ../Doc/reference/expressions.rst:266 msgid "" @@ -289,10 +406,18 @@ msgid "" "dictionary. Later values replace values already set by earlier key/datum " "pairs and earlier dictionary unpackings." msgstr "" +"Une double astérisque ``**`` demande de :dfn:`dépaqueter le dictionnaire`. " +"L'opérande doit être un :term:`tableau de correspondances `. Chaque " +"élément du tableau de correspondances est ajouté au nouveau dictionnaire. " +"Les valeurs les plus récentes remplacent les valeurs déjà définies par des " +"couples clés-valeurs antérieurs ou par d'autres dépaquetages de " +"dictionnaires antérieurs." #: ../Doc/reference/expressions.rst:271 msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." msgstr "" +"le dépaquetage peut se faire vers un agencement de dictionnaire, proposé à " +"l'origine par la :pep:`448`." #: ../Doc/reference/expressions.rst:274 msgid "" @@ -301,6 +426,11 @@ msgid "" "clauses. When the comprehension is run, the resulting key and value elements " "are inserted in the new dictionary in the order they are produced." msgstr "" +"Une compréhension de dictionnaire, au contraire des compréhensions de listes " +"ou d'ensembles, requiert deux expressions séparées par une virgule et " +"suivies par les clauses usuelles \"for\" et \"if\". Quand la compréhension " +"est exécutée, les éléments clés-valeurs sont insérés dans le nouveau " +"dictionnaire dans l'ordre dans lequel ils sont produits." #: ../Doc/reference/expressions.rst:282 msgid "" @@ -310,6 +440,12 @@ msgid "" "detected; the last datum (textually rightmost in the display) stored for a " "given key value prevails." msgstr "" +"Les restrictions relatives aux types des clés sont données dans la section :" +"ref:`types` (pour résumer, le type de la clé doit être :term:`hachable " +"`, ce qui exclut tous les objets muables). Les collisions entre " +"les clés dupliquées ne sont pas détectées ; la dernière valeur (celle qui " +"apparaît le plus à droite dans l'agencement) stockée prévaut pour une clé " +"donnée." #: ../Doc/reference/expressions.rst:292 msgid "Generator expressions" @@ -318,6 +454,8 @@ msgstr "Générateurs (expressions)" #: ../Doc/reference/expressions.rst:297 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" +"Une expression générateur est une notation concise pour un générateur, " +"entourée de parenthèses :" #: ../Doc/reference/expressions.rst:302 msgid "" @@ -325,6 +463,9 @@ msgid "" "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" +"Une expression générateur produit un nouvel objet générateur. Sa syntaxe est " +"la même que celle des compréhensions, sauf qu'elle est entourée de " +"parenthèses au lieu de crochets ou d'accolades." #: ../Doc/reference/expressions.rst:306 msgid "" @@ -337,16 +478,27 @@ msgid "" "immediately since they may depend on the previous :keyword:`for` loop. For " "example: ``(x*y for x in range(10) for y in bar(x))``." msgstr "" +"Les variables utilisées dans une expression générateur sont évaluées " +"paresseusement, au moment où la méthode :meth:`~generator.__next__` de " +"l'objet générateur est appelée (de la même manière que pour les générateurs " +"classiques). Cependant, la clause :keyword:`for` la plus à gauche est " +"immédiatement évaluée, de manière à ce qu'une erreur dans cette partie " +"puisse être vue avant tout autre erreur dans le code qui gère l'expression " +"générateur. Les clauses :keyword:`for` suivantes ne peuvent pas être " +"évaluées immédiatement car elles peuvent dépendre de la précédente boucle :" +"keyword:`for`. Par exemple, ``(x*y for x in range(10) for y in truc(x))``." #: ../Doc/reference/expressions.rst:315 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." msgstr "" +"Les parenthèses peuvent être omises pour les appels qui ne possèdent qu'un " +"seul argument. Voir la section :ref:`calls` pour les détails." #: ../Doc/reference/expressions.rst:322 msgid "Yield expressions" -msgstr "" +msgstr "Expressions yield" #: ../Doc/reference/expressions.rst:333 msgid "" @@ -374,6 +526,23 @@ msgid "" "`~generator.send` is used, then the result will be the value passed in to " "that method." msgstr "" +"Lorsqu'une fonction générateur est appelée, elle renvoie un itérateur que " +"l'on appelle générateur. Ce générateur contrôle l'exécution de la fonction " +"générateur. L'exécution commence lorsque l'une des méthodes du générateur " +"est appelée. À ce moment, l'exécution se déroule jusqu'à la première " +"expression yield, où elle se suspend, renvoyant la valeur de :token:" +"`expression_list` à l'appelant du générateur. Cette suspension conserve tous " +"les états locaux, y compris les liaisons en cours des variables locales, le " +"pointeur d'instruction, la pile d'évaluation interne et l'état de tous les " +"gestionnaires d'exceptions. Lorsque l'exécution reprend en appelant l'une " +"des méthodes du générateur, la fonction s'exécute exactement comme si " +"l'expression yield n'avait été qu'un simple appel externe. La valeur de " +"l'expression yield après reprise dépend de la méthode qui a permis la " +"reprise de l'exécution. Si c'est :meth:`~generator.__next__` qui a été " +"utilisée (typiquement *via* un :keyword:`for` ou la fonction native :func:" +"`next`) alors le résultat est :const:`None`. Sinon, si c'est :meth:" +"`~generator.send` qui a été utilisée, alors le résultat est la valeur " +"transmise à cette méthode." #: ../Doc/reference/expressions.rst:356 msgid "" @@ -383,6 +552,12 @@ msgid "" "function cannot control where the execution should continue after it yields; " "the control is always transferred to the generator's caller." msgstr "" +"Tout ceci rend les fonctions générateurs très similaires aux coroutines : " +"elles produisent plusieurs objets *via* des expressions yield, elles " +"possèdent plus qu'un seul point d'entrée et leur exécution peut être " +"suspendue. La seule différence est qu'une fonction générateur ne peut pas " +"contrôler où l'exécution doit se poursuivre après une instruction yield ; ce " +"contrôle est toujours du ressort de l'appelant au générateur." #: ../Doc/reference/expressions.rst:362 msgid "" @@ -392,6 +567,12 @@ msgid "" "meth:`~generator.close` method will be called, allowing any pending :keyword:" "`finally` clauses to execute." msgstr "" +"Les expressions yield sont autorisées partout dans un bloc :keyword:`try`. " +"Si l'exécution du générateur ne reprend pas avant qu'il ne soit finalisé " +"(parce que son compteur de référence est tombé à zéro ou parce qu'il est " +"nettoyé par le ramasse-miettes), la méthode :meth:`~generator.close` du " +"générateur-itérateur est appelée, ce qui permet l'exécution de toutes les " +"clauses :keyword:`finally` en attente." #: ../Doc/reference/expressions.rst:368 msgid "" @@ -404,6 +585,15 @@ msgid "" "exc:`AttributeError` or :exc:`TypeError`, while :meth:`~generator.throw` " "will just raise the passed in exception immediately." msgstr "" +"L'utilisation de ``yield from `` traite l'expression passée en " +"paramètre comme un sous-itérateur. Toutes les valeurs produites par ce sous-" +"itérateur sont directement passées à l'appelant des méthodes du générateur " +"courant. Toute valeur passée par :meth:`~generator.send` ou toute exception " +"passée par :meth:`~generator.throw` est transmise à l'itérateur sous-jacent " +"s'il possède les méthodes appropriées. Si ce n'est pas le cas, alors :meth:" +"`~generator.send` lève une :exc:`AttributeError` ou une :exc:`TypeError`, " +"alors que :meth:`~generator.throw` ne fait que propager l'exception " +"immédiatement." #: ../Doc/reference/expressions.rst:377 msgid "" @@ -413,16 +603,25 @@ msgid "" "`StopIteration`, or automatically when the sub-iterator is a generator (by " "returning a value from the sub-generator)." msgstr "" +"Quand l'itérateur sous-jacent a terminé, l'attribut :attr:`~StopIteration." +"value` de l'instance :exc:`StopIteration` qui a été levée devient la valeur " +"produite par l'expression yield. Elle peut être définie explicitement quand " +"vous levez :exc:`StopIteration` ou automatiquement que le sous-itérateur est " +"un générateur (en renvoyant une valeur par le sous-générateur)." #: ../Doc/reference/expressions.rst:383 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" +"``yield from `` a été ajoutée pour déléguer le contrôle du flot " +"d'exécution à un sous-itérateur." #: ../Doc/reference/expressions.rst:386 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." msgstr "" +"Les parenthèses peuvent être omises quand l'expression yield est la seule " +"expression à droite de l'instruction de l'instruction d'assignation." #: ../Doc/reference/expressions.rst:392 msgid ":pep:`255` - Simple Generators" @@ -433,42 +632,53 @@ msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." msgstr "" +"La proposition d'ajouter à Python des générateurs et l'instruction :keyword:" +"`yield`." #: ../Doc/reference/expressions.rst:396 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr "" +msgstr ":pep:`342` - Coroutines *via* des générateurs améliorés" #: ../Doc/reference/expressions.rst:395 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." msgstr "" +"Proposition d'améliorer l'API et la syntaxe des générateurs, de manière à " +"pouvoir les utiliser comme de simples coroutines." #: ../Doc/reference/expressions.rst:399 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" -msgstr "" +msgstr ":pep:`380` - Syntaxe pour déléguer à un sous-générateur" #: ../Doc/reference/expressions.rst:399 msgid "" "The proposal to introduce the :token:`yield_from` syntax, making delegation " "to sub-generators easy." msgstr "" +"Proposition d'introduire la syntaxe :token:`yield_from`, de manière à " +"déléguer facilement l'exécution à un sous-générateur." #: ../Doc/reference/expressions.rst:406 msgid "Generator-iterator methods" -msgstr "" +msgstr "Méthodes des générateurs-itérateurs" #: ../Doc/reference/expressions.rst:408 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." msgstr "" +"Cette sous-section décrit les méthodes des générateurs-itérateurs. Elles " +"peuvent être utilisées pour contrôler l'exécution des fonctions générateurs." #: ../Doc/reference/expressions.rst:411 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." msgstr "" +"Notez que l'appel à une méthode ci-dessous d'un générateur alors que le " +"générateur est déjà en cours d'exécution lève une exception :exc:" +"`ValueError`." #: ../Doc/reference/expressions.rst:419 msgid "" @@ -481,12 +691,22 @@ msgid "" "generator exits without yielding another value, a :exc:`StopIteration` " "exception is raised." msgstr "" +"Démarre l'exécution d'une fonction générateur ou la reprend à la dernière " +"expression yield exécutée. Quand une fonction générateur est reprise par une " +"méthode :meth:`~generator.__next__`, l'expression yield en cours s'évalue " +"toujours à :const:`None`. L'exécution continue ensuite jusqu'à l'expression " +"yield suivante, où le générateur est à nouveau suspendu et la valeur de :" +"token:`expression_list` est renvoyée à la méthode :meth:`__next__` de " +"l'appelant. Si le générateur termine sans donner une autre valeur, une " +"exception :exc:`StopIteration` est levée." #: ../Doc/reference/expressions.rst:428 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." msgstr "" +"Cette méthode est normalement appelée implicitement, par exemple par une " +"boucle :keyword:`for` ou par la fonction native :func:`next`." #: ../Doc/reference/expressions.rst:434 msgid "" @@ -498,6 +718,13 @@ msgid "" "called with :const:`None` as the argument, because there is no yield " "expression that could receive the value." msgstr "" +"Reprend l'exécution et \"envoie\" une valeur à la fonction générateur. " +"L'argument *value* devient le résultat de l'expression yield courante. La " +"méthode :meth:`send` renvoie la valeur suivante produite par le générateur " +"ou lève :exc:`StopIteration` si le générateur termine sans produire de " +"nouvelle valeur. Quand :meth:`send` est utilisée pour démarrer le " +"générateur, elle doit avoir :const:`None` comme argument, car il n'y a " +"aucune expression yield qui peut recevoir la valeur." #: ../Doc/reference/expressions.rst:445 msgid "" @@ -508,6 +735,12 @@ msgid "" "exception, or raises a different exception, then that exception propagates " "to the caller." msgstr "" +"Leve une exception de type ``type`` à l'endroit où le générateur est en " +"pause et renvoie la valeur suivante produite par la fonction générateur. Si " +"le générateur termine sans produire de nouvelle valeur, une exception :exc:" +"`StopIteration` est levée. Si la fonction générateur ne gère pas l'exception " +"passée ou lève une autre exception, alors cette exception est propagée vers " +"l'appelant." #: ../Doc/reference/expressions.rst:456 msgid "" @@ -519,6 +752,13 @@ msgid "" "is propagated to the caller. :meth:`close` does nothing if the generator " "has already exited due to an exception or normal exit." msgstr "" +"Lève une :exc:`GeneratorExit` à l'endroit où la fonction générateur a été " +"mise en pause. Si la fonction générateur termine, est déjà fermée ou lève :" +"exc:`GeneratorExit` (parce qu'elle ne gère pas l'exception), *close* revient " +"vers l'appelant. Si le générateur produit une valeur, une :exc:" +"`RuntimeError` est levée. Si le générateur lève une autre exception, elle " +"est propagée à l'appelant. La méthode :meth:`close` ne fait rien si le " +"générateur a déjà terminé en raison d'une exception ou d'une fin normale." #: ../Doc/reference/expressions.rst:467 msgid "Examples" @@ -529,30 +769,39 @@ msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" +"Voici un exemple simple qui montre le comportement des générateurs et des " +"fonctions générateurs ::" #: ../Doc/reference/expressions.rst:496 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" +"Pour des exemples d'utilisation de ``yield from``, lisez la :ref:`pep-380` " +"dans \"Les nouveautés de Python\"." #: ../Doc/reference/expressions.rst:503 msgid "Primaries" -msgstr "" +msgstr "Primaires" #: ../Doc/reference/expressions.rst:507 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" msgstr "" +"Les primaires (*primary* dans la grammaire formelle ci-dessous) représentent " +"les opérations qui se lient au plus proche dans le langage. Leur syntaxe " +"est :" #: ../Doc/reference/expressions.rst:517 msgid "Attribute references" -msgstr "" +msgstr "Références à des attributs" #: ../Doc/reference/expressions.rst:521 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" +"Une référence à un attribut (*attributeref* dans la grammaire formelle ci-" +"dessous) est une primaire suivie par un point et un nom :" #: ../Doc/reference/expressions.rst:531 msgid "" @@ -564,16 +813,27 @@ msgid "" "type and value of the object produced is determined by the object. Multiple " "evaluations of the same attribute reference may yield different objects." msgstr "" +"La primaire doit s'évaluer à un objet d'un type qui gère les références aux " +"attributs, ce qui est le cas de la plupart des objets. Cet objet doit alors " +"produire l'attribut dont le nom est \"identifier\". Cette production peut " +"être personnalisée en surchargeant la méthode :meth:`__getattr__`. Si " +"l'attribut n'est pas disponible, une exception :exc:`AttributeError` est " +"levée. Sinon, le type et la valeur de l'objet produit sont déterminés par " +"l'objet. Plusieurs évaluations successives d'une référence à un même " +"attribut peuvent produire différents objets." #: ../Doc/reference/expressions.rst:543 msgid "Subscriptions" -msgstr "" +msgstr "Sélections" #: ../Doc/reference/expressions.rst:556 msgid "" "A subscription selects an item of a sequence (string, tuple or list) or " "mapping (dictionary) object:" msgstr "" +"Une sélection (*subscription* dans la grammaire formelle ci-dessous) désigne " +"un élément dans un objet séquence (chaîne, n-uplet ou liste) ou tableau de " +"correspondances (dictionnaire) :" #: ../Doc/reference/expressions.rst:562 msgid "" @@ -581,12 +841,15 @@ msgid "" "dictionaries for example). User-defined objects can support subscription by " "defining a :meth:`__getitem__` method." msgstr "" +"La primaire doit s'appliquer à un objet qui gère les sélections (une liste " +"ou un dictionnaire par exemple). Les objets définis par l'utilisateur " +"peuvent gérer les sélections en définissant une méthode :meth:`__getitem__`." #: ../Doc/reference/expressions.rst:566 msgid "" "For built-in objects, there are two types of objects that support " "subscription:" -msgstr "" +msgstr "Pour les objets natifs, deux types d'objets gèrent la sélection :" #: ../Doc/reference/expressions.rst:568 msgid "" @@ -595,6 +858,12 @@ msgid "" "the value in the mapping that corresponds to that key. (The expression list " "is a tuple except if it has exactly one item.)" msgstr "" +"Si la primaire est un tableau de correspondances, la liste d'expressions " +"(*expression_list* dans la grammaire formelle ci-dessous) doit pouvoir être " +"évaluée comme un objet dont la valeur est une des clés du tableau de " +"correspondances et la sélection désigne la valeur qui correspond à cette clé " +"(la liste d'expressions est un n-uplet sauf si elle comporte exactement un " +"élément)." #: ../Doc/reference/expressions.rst:573 msgid "" @@ -614,16 +883,29 @@ msgid "" "slicing occurs in the object's :meth:`__getitem__` method, subclasses " "overriding this method will need to explicitly add that support." msgstr "" +"La syntaxe formelle ne traite pas des cas d'indices négatifs dans les " +"séquences ; cependant, toutes les séquences natives possèdent une méthode :" +"meth:`__getitem__` qui interprète les indices négatifs en ajoutant la " +"longueur de la séquence à l'indice (de manière à ce que ``x[-1]`` " +"sélectionne le dernier élément de ``x``). La valeur résultante doit être un " +"entier positif ou nul, inférieur au nombre d'éléments dans la séquence ; la " +"sélection désigne alors l'élément dont l'indice est cette valeur (en " +"comptant à partir de zéro). Comme la gestion des indices négatifs et des " +"tranches est faite par la méthode :meth:`__getitem__`, les sous-classes qui " +"surchargent cette méthode doivent aussi savoir les gérer, de manière " +"explicite." #: ../Doc/reference/expressions.rst:590 msgid "" "A string's items are characters. A character is not a separate data type " "but a string of exactly one character." msgstr "" +"Les éléments des chaînes sont des caractères. Un caractère n'est pas un type " +"en tant que tel, c'est une chaîne de longueur un." #: ../Doc/reference/expressions.rst:597 msgid "Slicings" -msgstr "" +msgstr "Tranches" #: ../Doc/reference/expressions.rst:609 msgid "" @@ -631,6 +913,12 @@ msgid "" "tuple or list). Slicings may be used as expressions or as targets in " "assignment or :keyword:`del` statements. The syntax for a slicing:" msgstr "" +"Une tranche (*slicing* dans la grammaire formelle ci-dessous) sélectionne un " +"intervalle d'éléments d'un objet séquence (par exemple une chaîne, un n-" +"uplet ou une liste, respectivement les types *string*, *tuple* et *list*). " +"Les tranches peuvent être utilisées comme des expressions ou des cibles dans " +"les assignations ou les instructions :keyword:`del`. La syntaxe est la " +"suivante :" #: ../Doc/reference/expressions.rst:622 msgid "" @@ -641,6 +929,15 @@ msgid "" "subscription takes priority over the interpretation as a slicing (this is " "the case if the slice list contains no proper slice)." msgstr "" +"Il existe une ambigüité dans la syntaxe formelle ci-dessus : tout ce qui " +"ressemble à une liste d'expressions (*expression_list* vue avant) ressemble " +"aussi à une liste de tranches (*slice_list* dans la grammaire ci-dessus). En " +"conséquence, toute sélection (*subscription* dans la grammaire) peut être " +"interprétée comme une tranche. Plutôt que de compliquer encore la syntaxe, " +"l'ambigüité est levée en disant que, dans ce cas, l'interprétation en tant " +"que sélection (*subscription*) est prioritaire sur l'interprétation en tant " +"que tranche (c'est le cas si la liste de tranches (*slice_list*) ne contient " +"aucune tranche en tant que telle)." #: ../Doc/reference/expressions.rst:634 msgid "" @@ -656,6 +953,20 @@ msgid "" "upper bound and stride, respectively, substituting ``None`` for missing " "expressions." msgstr "" +"La sémantique pour une tranche est définie comme suit. La primaire est " +"indicée (en utilisant la même méthode :meth:`__getitem__` que pour les " +"sélections normales) avec une clé qui est construite à partir de la liste de " +"tranches (*slice_list* dans la grammaire), de cette manière : si la liste de " +"tranches contient au moins une virgule (``,``), la clé est un n-uplet " +"contenant la conversion des éléments de la tranche ; sinon, la conversion du " +"seul élément de la tranche est la clé. La conversion d'un élément de tranche " +"qui est une expression est cette expression. La conversion d'une tranche en " +"tant que telle est un objet *slice* (voir la section :ref:`types`) dont les " +"attributs :attr:`~slice.start`, :attr:`~slice.stop` et :attr:`~slice.step` " +"sont les valeurs des expressions données pour la borne inférieure " +"(*lower_bound* dans la grammaire), la borne supérieure (*upper_bound* dans " +"la grammaire) et le pas (*stride* dans la grammaire), respectivement. En cas " +"d'expression manquante, la valeur par défaut est ``None``." #: ../Doc/reference/expressions.rst:655 msgid "Calls" @@ -666,12 +977,17 @@ msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" msgstr "" +"Un appel (*call* dans la grammaire ci-dessous) appelle un objet appelable " +"(par exemple, une :term:`fonction `) avec, possiblement, une liste " +"d'\\ :term:`arguments ` :" #: ../Doc/reference/expressions.rst:673 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." msgstr "" +"Une virgule finale (optionnelle) peut être présente, après les arguments " +"positionnels et par mots-clés, mais elle n'affecte pas la sémantique." #: ../Doc/reference/expressions.rst:679 msgid "" @@ -682,6 +998,13 @@ msgid "" "attempted. Please refer to section :ref:`function` for the syntax of " "formal :term:`parameter` lists." msgstr "" +"La primaire doit s'évaluer à un objet appelable (une fonction définie par " +"l'utilisateur, une fonction native, une méthode d'objet natif, un objet de " +"classe, une méthode d'instance de classe ou tout objet possédant une " +"méthode :meth:`__call__` est un appelable). Toutes les expressions des " +"arguments sont évaluées avant que l'appel ne soit exécuté. Référez-vous à la " +"section :ref:`function` pour la syntaxe des listes de :term:`paramètres " +"` formels." #: ../Doc/reference/expressions.rst:687 msgid "" @@ -704,6 +1027,25 @@ msgid "" "Otherwise, the list of filled slots is used as the argument list for the " "call." msgstr "" +"Si des arguments par mots-clés sont présents, ils sont d'abord convertis en " +"arguments positionnels, comme suit. Pour commencer, une liste de *slots* " +"vides est créée pour les paramètres formels. S'il y a N arguments " +"positionnels, ils sont placés dans les N premiers *slots*. Ensuite, pour " +"chaque argument par mot-clé, l'identifiant est utilisé pour déterminer le " +"*slot* correspondant (si l'identifiant est le même que le nom du premier " +"paramètre formel, le premier *slot* est utilisé, et ainsi de suite). Si le " +"*slot* est déjà rempli, une exception :exc:`TypeError` est levée. Sinon, la " +"valeur de l'argument est placée dans le *slot*, ce qui le remplit (même si " +"l'expression est ``None``, cela remplit le *slot*). Quand tous les arguments " +"ont été traités, les *slots* qui sont toujours vides sont remplis avec la " +"valeur par défaut correspondante dans la définition de la fonction (les " +"valeurs par défaut sont calculées, une seule fois, lorsque la fonction est " +"définie ; ainsi, un objet mutable tel qu'une liste ou un dictionnaire " +"utilisé en tant valeur par défaut sera partagé entre tous les appels qui ne " +"spécifient pas de valeur d argument pour ce *slot* ; on évite généralement " +"de faire ça). S'il reste des *slots* pour lesquels aucune valeur par défaut " +"n'est définie, une exception :exc:`TypeError` est levée. Sinon, la liste des " +"*slots* remplie est utilisée en tant que liste des arguments pour l'appel." #: ../Doc/reference/expressions.rst:707 msgid "" @@ -713,6 +1055,11 @@ msgid "" "CPython, this is the case for functions implemented in C that use :c:func:" "`PyArg_ParseTuple` to parse their arguments." msgstr "" +"Une implémentation peut fournir des fonctions natives dont les paramètres " +"positionnels n'ont pas de nom, même s'ils sont \"nommés\" pour les besoins " +"de la documentation. Ils ne peuvent donc pas être spécifiés par mot-clé. En " +"CPython, les fonctions implémentées en C qui utilisent :c:func:" +"`PyArg_ParseTuple` pour analyser leurs arguments en font partie." #: ../Doc/reference/expressions.rst:713 msgid "" @@ -722,6 +1069,11 @@ msgid "" "parameter receives a tuple containing the excess positional arguments (or an " "empty tuple if there were no excess positional arguments)." msgstr "" +"S'il y a plus d'arguments positionnels que de *slots* de paramètres formels, " +"une exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " +"n'utilise la syntaxe ``*identifier`` ; dans ce cas, le paramètre formel " +"reçoit un n-uplet contenant les arguments positionnels en supplément (ou un " +"n-uplet vide s'il n'y avait pas d'arguments positionnel en trop)." #: ../Doc/reference/expressions.rst:719 msgid "" @@ -732,6 +1084,13 @@ msgid "" "keywords as keys and the argument values as corresponding values), or a " "(new) empty dictionary if there were no excess keyword arguments." msgstr "" +"Si un argument par mot-clé ne correspond à aucun nom de paramètre formel, " +"une exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " +"n'utilise la syntaxe ``**identifier`` ; dans ce cas, le paramètre formel " +"reçoit un dictionnaire contenant les arguments par mot-clé en trop (en " +"utilisant les mots-clés comme clés et les arguments comme valeurs pour ce " +"dictionnaire), ou un (nouveau) dictionnaire vide s'il n'y a pas d'argument " +"par mot-clé en trop." #: ../Doc/reference/expressions.rst:730 msgid "" @@ -742,6 +1101,12 @@ msgid "" "this is equivalent to a call with M+4 positional arguments *x1*, *x2*, " "*y1*, ..., *yM*, *x3*, *x4*." msgstr "" +"Si la syntaxe ``*expression`` apparaît dans l'appel de la fonction, " +"``expression`` doit pouvoir s'évaluer à un :term:`itérable `. Les " +"éléments de ces itérables sont traités comme s'ils étaient des arguments " +"positionnels supplémentaires. Pour l'appel ``f(x1, x2, *y, x3, x4)``, si *y* " +"s'évalue comme une séquence *y1*, ..., *yM*, c'est équivalent à un appel " +"avec M+4 arguments positionnels *x1*, *x2*, *y1*, ..., *yM*, *x3*, *x4*." #: ../Doc/reference/expressions.rst:737 msgid "" @@ -749,12 +1114,19 @@ msgid "" "*after* explicit keyword arguments, it is processed *before* the keyword " "arguments (and any ``**expression`` arguments -- see below). So::" msgstr "" +"Une conséquence est que bien que la syntaxe ``*expression`` puisse " +"apparaître *après* les arguments par mots-clés explicites, ils sont traités " +"*avant* les arguments par mots-clés (et avant tout argument ``**expression`` " +"-- voir ci-dessous). Ainsi ::" #: ../Doc/reference/expressions.rst:753 msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " "be used in the same call, so in practice this confusion does not arise." msgstr "" +"Il est inhabituel que les syntaxes d'arguments par mots-clés et " +"``*expression`` soient utilisés simultanément dans un même appel, ce qui " +"fait que la confusion reste hypothétique." #: ../Doc/reference/expressions.rst:759 msgid "" @@ -764,12 +1136,21 @@ msgid "" "explicit keyword argument, or from another unpacking), a :exc:`TypeError` " "exception is raised." msgstr "" +"Si la syntaxe ``**expression`` apparaît dans un appel de fonction, " +"``expression`` doit pouvoir s'évaluer comme un :term:`tableau de " +"correspondances `, dont le contenu est traité comme des arguments " +"par mots-clés supplémentaires. Si un mot-clé est déjà présent (en tant " +"qu'argument par mot-clé explicite, ou venant d'un autre dépaquetage), une " +"exception :exc:`TypeError` est levée." #: ../Doc/reference/expressions.rst:765 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." msgstr "" +"Les paramètres formels qui utilisent la syntaxe ``*identifier`` ou " +"``**identifier`` ne peuvent pas être utilisés comme arguments positionnels " +"ou comme noms d'arguments par mots-clés." #: ../Doc/reference/expressions.rst:768 msgid "" @@ -777,6 +1158,11 @@ msgid "" "arguments may follow iterable unpackings (``*``), and keyword arguments may " "follow dictionary unpackings (``**``). Originally proposed by :pep:`448`." msgstr "" +"Les appels de fonction acceptent n'importe quel nombre de dépaquetages par " +"``*`` ou ``**``. Des arguments positionnels peuvent suivre les dépaquetages " +"d'itérables (``*``) et les arguments par mots-clés peuvent suivre les " +"dépaquetages de dictionnaires (``**``). Proposé pour la première fois par " +"la :pep:`448`." #: ../Doc/reference/expressions.rst:774 msgid "" @@ -784,14 +1170,17 @@ msgid "" "exception. How this value is computed depends on the type of the callable " "object." msgstr "" +"Un appel renvoie toujours une valeur, possiblement ``None``, à moins qu'il " +"ne lève une exception. La façon dont celle valeur est calculée dépend du " +"type de l'objet appelable." #: ../Doc/reference/expressions.rst:778 msgid "If it is---" -msgstr "" +msgstr "Si c'est ---" #: ../Doc/reference/expressions.rst:791 msgid "a user-defined function:" -msgstr "" +msgstr "une fonction définie par l'utilisateur :" #: ../Doc/reference/expressions.rst:787 msgid "" @@ -801,28 +1190,35 @@ msgid "" "block executes a :keyword:`return` statement, this specifies the return " "value of the function call." msgstr "" +"le bloc de code de la fonction est exécuté, il reçoit la liste des " +"arguments. La première chose que le bloc de code fait est de lier les " +"paramètres formels aux arguments ; ceci est décrit dans la section :ref:" +"`function`. Quand le bloc de code exécute l'instruction :keyword:`return`, " +"cela spécifie la valeur de retour de l'appel de la fonction." #: ../Doc/reference/expressions.rst:805 msgid "a built-in function or method:" -msgstr "" +msgstr "une fonction ou une méthode native :" #: ../Doc/reference/expressions.rst:804 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." msgstr "" +"le résultat dépend de l'interpréteur ; lisez :ref:`built-in-funcs` pour une " +"description des fonctions et méthodes natives." #: ../Doc/reference/expressions.rst:812 msgid "a class object:" -msgstr "" +msgstr "un objet classe :" #: ../Doc/reference/expressions.rst:812 msgid "A new instance of that class is returned." -msgstr "" +msgstr "une nouvelle instance de cette classe est renvoyée." #: ../Doc/reference/expressions.rst:822 msgid "a class instance method:" -msgstr "" +msgstr "une méthode d'instance de classe :" #: ../Doc/reference/expressions.rst:820 msgid "" @@ -830,36 +1226,46 @@ msgid "" "that is one longer than the argument list of the call: the instance becomes " "the first argument." msgstr "" +"la fonction correspondante définie par l'utilisateur est appelée, avec la " +"liste d'arguments qui est plus grande d'un élément que la liste des " +"arguments de l'appel : l'instance est placée en tête des arguments." #: ../Doc/reference/expressions.rst:831 msgid "a class instance:" -msgstr "" +msgstr "une instance de classe :" #: ../Doc/reference/expressions.rst:829 msgid "" "The class must define a :meth:`__call__` method; the effect is then the same " "as if that method was called." msgstr "" +"la classe doit définir une méthode :meth:`__call__` ; l'effet est le même " +"que si cette méthode était appelée." #: ../Doc/reference/expressions.rst:836 ../Doc/reference/expressions.rst:1537 msgid "Await expression" -msgstr "" +msgstr "Expression await" #: ../Doc/reference/expressions.rst:838 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." msgstr "" +"Suspend l'exécution de la :term:`coroutine` sur un objet :term:`awaitable`. " +"Ne peut être utilisée qu'à l'intérieur d'une :term:`coroutine function`." #: ../Doc/reference/expressions.rst:850 msgid "The power operator" -msgstr "" +msgstr "L'opérateur puissance" #: ../Doc/reference/expressions.rst:852 msgid "" "The power operator binds more tightly than unary operators on its left; it " "binds less tightly than unary operators on its right. The syntax is:" msgstr "" +"L'opérateur puissance est plus prioritaire que les opérateurs unaires sur sa " +"gauche ; il est moins prioritaire que les opérateurs unaires sur sa droite. " +"La syntaxe est :" #: ../Doc/reference/expressions.rst:858 msgid "" @@ -867,6 +1273,9 @@ msgid "" "operators are evaluated from right to left (this does not constrain the " "evaluation order for the operands): ``-1**2`` results in ``-1``." msgstr "" +"Ainsi, dans une séquence sans parenthèse de puissance et d'opérateurs " +"unaires, les opérateurs sont évalués de droite à gauche (ceci ne contraint " +"pas l'ordre d'évaluation des opérandes) : ``-1**2`` donne ``-1``." #: ../Doc/reference/expressions.rst:862 msgid "" @@ -875,6 +1284,11 @@ msgid "" "to the power of its right argument. The numeric arguments are first " "converted to a common type, and the result is of that type." msgstr "" +"L'opérateur puissance possède la même sémantique que la fonction native :" +"func:`pow` lorsqu'elle est appelée avec deux arguments : il produit son " +"argument de gauche élevé à la puissance de son argument de droite. Les " +"arguments numériques sont d'abord convertis vers un type commun et le " +"résultat est de ce type." #: ../Doc/reference/expressions.rst:867 msgid "" @@ -883,6 +1297,11 @@ msgid "" "float and a float result is delivered. For example, ``10**2`` returns " "``100``, but ``10**-2`` returns ``0.01``." msgstr "" +"Pour les opérandes entiers, le résultat est du même type à moins que le " +"deuxième argument ne soit négatif ; dans ce cas, tous les arguments sont " +"convertis en nombres à virgule flottante et le résultat est un nombre à " +"virgule flottante. Par exemple, ``10**2`` renvoie ``100`` mais ``10**-2`` " +"renvoie ``0.01``." #: ../Doc/reference/expressions.rst:872 msgid "" @@ -890,23 +1309,31 @@ msgid "" "Raising a negative number to a fractional power results in a :class:" "`complex` number. (In earlier versions it raised a :exc:`ValueError`.)" msgstr "" +"Élever ``0.0`` à une puissance négative entraîne une :exc:" +"`ZeroDivisionError`. Élever un nombre négatif à une puissance fractionnaire " +"renvoie un nombre :class:`complexe ` (dans les versions " +"antérieures, cela levait une :exc:`ValueError`)." #: ../Doc/reference/expressions.rst:880 msgid "Unary arithmetic and bitwise operations" -msgstr "" +msgstr "Arithmétique unaire et opérations sur les bits" #: ../Doc/reference/expressions.rst:886 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" +"Toute l'arithmétique unaire et les opérations sur les bits ont la même " +"priorité :" #: ../Doc/reference/expressions.rst:895 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric argument." msgstr "" +"L'opérateur unaire ``-`` (moins) produit l'opposé de son argument numérique." #: ../Doc/reference/expressions.rst:899 msgid "The unary ``+`` (plus) operator yields its numeric argument unchanged." msgstr "" +"L'opérateur unaire ``+`` (plus) produit son argument numérique inchangé." #: ../Doc/reference/expressions.rst:904 msgid "" @@ -914,16 +1341,21 @@ msgid "" "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " "It only applies to integral numbers." msgstr "" +"L'opérateur unaire ``~`` (inversion) produit l'inversion bit à bit de son " +"argument entier. L'inversion bit à bit de ``x`` est définie comme ``-(x" +"+1)``. Elle s'applique uniquement aux nombres entiers." #: ../Doc/reference/expressions.rst:910 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." msgstr "" +"Dans ces trois cas, si l'argument n'est pas du bon type, une exception :exc:" +"`TypeError` est levée." #: ../Doc/reference/expressions.rst:917 msgid "Binary arithmetic operations" -msgstr "" +msgstr "Opérations arithmétiques binaires" #: ../Doc/reference/expressions.rst:921 msgid "" @@ -932,6 +1364,11 @@ msgid "" "Apart from the power operator, there are only two levels, one for " "multiplicative operators and one for additive operators:" msgstr "" +"Les opérations arithmétiques binaires suivent les conventions pour les " +"priorités. Notez que certaines de ces opérations s'appliquent aussi à des " +"types non numériques. À part l'opérateur puissance, il n'y a que deux " +"niveaux, le premier pour les opérateurs multiplicatifs et le second pour les " +"opérateurs additifs :" #: ../Doc/reference/expressions.rst:934 msgid "" @@ -942,12 +1379,20 @@ msgid "" "case, sequence repetition is performed; a negative repetition factor yields " "an empty sequence." msgstr "" +"L'opérateur ``*`` (multiplication) produit le produit de ses arguments. Les " +"deux arguments doivent être des nombres ou alors le premier argument doit " +"être un entier et l'autre doit être une séquence. Dans le premier cas, les " +"nombres sont convertis dans un type commun puis sont multipliés entre eux. " +"Dans le dernier cas, la séquence est répétée ; une répétition négative " +"produit une séquence vide." #: ../Doc/reference/expressions.rst:942 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" +"L'opérateur ``@`` (at) a vocation à multiplier des matrices. Aucun type " +"Python natif n'implémente cet opérateur." #: ../Doc/reference/expressions.rst:951 msgid "" @@ -958,6 +1403,13 @@ msgid "" "with the 'floor' function applied to the result. Division by zero raises " "the :exc:`ZeroDivisionError` exception." msgstr "" +"Les opérateurs ``/`` (division) and ``//`` (division entière ou *floor " +"division* en anglais) produisent le quotient de leurs arguments. Les " +"arguments numériques sont d'abord convertis vers un type commun. La division " +"d'entiers produit un nombre à virgule flottante alors que la division " +"entière d'entiers produit un entier ; le résultat est celui de la division " +"mathématique suivie de la fonction 'floor' appliquée au résultat. Une " +"division par zéro lève une exception :exc:`ZeroDivisionError`." #: ../Doc/reference/expressions.rst:960 msgid "" @@ -970,6 +1422,14 @@ msgid "" "zero); the absolute value of the result is strictly smaller than the " "absolute value of the second operand [#]_." msgstr "" +"L'opérateur ``%`` (modulo) produit le reste de la division entière du " +"premier argument par le second. Les arguments numériques sont d'abord " +"convertis vers un type commun. Un zéro en second argument lève une " +"exception :exc:`ZeroDivisionError`. Les arguments peuvent être des nombres à " +"virgule flottante, par exemple ``3.14%0.7`` vaut ``0.34`` (puisque ``3.14`` " +"égale ``4*0.7+0.34``). L'opérateur modulo produit toujours un résultat du " +"même signe que le second opérande (ou zéro) ; la valeur absolue du résultat " +"est strictement inférieure à la valeur absolue du second opérande [#]_." #: ../Doc/reference/expressions.rst:969 msgid "" @@ -978,6 +1438,10 @@ msgid "" "connected with the built-in function :func:`divmod`: ``divmod(x, y) == (x//" "y, x%y)``. [#]_." msgstr "" +"Les opérateurs division entière et modulo sont liés par la relation " +"suivante : ``x == (x//y)*y + (x%y)``. La division entière et le module sont " +"aussi liés à la fonction native :func:`divmod` : ``divmod(x, y) == (x//y, x" +"%y)`` [#]_." #: ../Doc/reference/expressions.rst:974 msgid "" @@ -987,6 +1451,11 @@ msgid "" "is described in the Python Library Reference, section :ref:`old-string-" "formatting`." msgstr "" +"En plus de calculer le modulo sur les nombres, l'opérateur ``%`` est aussi " +"surchargé par les objets chaînes de caractères pour effectuer le formatage " +"de chaîne \"à l'ancienne\". La syntaxe pour le formatage de chaînes est " +"décrit dans la référence de la bibliothèque Python, dans la section :ref:" +"`old-string-formatting`." #: ../Doc/reference/expressions.rst:979 msgid "" @@ -994,6 +1463,10 @@ msgid "" "function are not defined for complex numbers. Instead, convert to a " "floating point number using the :func:`abs` function if appropriate." msgstr "" +"L'opérateur de division entière, l'opérateur modulo et la fonction :func:" +"`divmod` ne sont pas définis pour les nombres complexes. À la place, vous " +"pouvez, si cela a du sens pour ce que vous voulez faire, les convertir vers " +"des nombres à virgule flottante en utilisant la fonction :func:`abs`." #: ../Doc/reference/expressions.rst:985 msgid "" @@ -1002,33 +1475,48 @@ msgid "" "type. In the former case, the numbers are converted to a common type and " "then added together. In the latter case, the sequences are concatenated." msgstr "" +"L'opérateur ``+`` (addition) produit la somme de ses arguments. Les " +"arguments doivent être tous les deux des nombres ou des séquences du même " +"type. Dans le premier cas, les nombres sont convertis vers un type commun " +"puis sont additionnés entre eux. Dans le dernier cas, les séquences sont " +"concaténées." #: ../Doc/reference/expressions.rst:992 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common type." msgstr "" +"L'opérateur ``-`` (soustraction) produit la différence entre ses arguments. " +"Les arguments numériques sont d'abord convertis vers un type commun." #: ../Doc/reference/expressions.rst:999 msgid "Shifting operations" -msgstr "" +msgstr "Opérations de décalage" #: ../Doc/reference/expressions.rst:1003 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" +"Les opérations de décalage sont moins prioritaires que les opérations " +"arithmétiques :" #: ../Doc/reference/expressions.rst:1008 msgid "" "These operators accept integers as arguments. They shift the first argument " "to the left or right by the number of bits given by the second argument." msgstr "" +"Ces opérateurs prennent des entiers comme arguments. Ils décalent le premier " +"argument vers la gauche ou vers la droite du nombre de bits donné par le " +"deuxième argument." #: ../Doc/reference/expressions.rst:1013 msgid "" "A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " "left shift by *n* bits is defined as multiplication with ``pow(2,n)``." msgstr "" +"Un décalage à droite de *n* bits est défini comme la division entière par " +"``pow(2,n)``. Un décalage à gauche de *n* bits est défini comme la " +"multiplication par ``pow(2,n)``." #: ../Doc/reference/expressions.rst:1018 msgid "" @@ -1036,32 +1524,43 @@ msgid "" "most :attr:`sys.maxsize`. If the right-hand operand is larger than :attr:" "`sys.maxsize` an :exc:`OverflowError` exception is raised." msgstr "" +"Dans l'implémentation actuelle, l'opérande de droite doit être au maximum :" +"attr:`sys.maxsize`. Si l'opérande de droite est plus grand que :attr:`sys." +"maxsize`, une exception :exc:`OverflowError` est levée." #: ../Doc/reference/expressions.rst:1025 msgid "Binary bitwise operations" -msgstr "" +msgstr "Opérations binaires bit à bit" #: ../Doc/reference/expressions.rst:1029 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" +"Chacune des trois opérations binaires bit à bit possède une priorité " +"différente :" #: ../Doc/reference/expressions.rst:1038 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " "integers." msgstr "" +"L'opérateur ``&`` produit le ET logique de ses arguments, qui doivent être " +"des entiers." #: ../Doc/reference/expressions.rst:1045 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " "which must be integers." msgstr "" +"L'opérateur ``^`` produit le OU EXCLUSIF (XOR) logique de ses arguments, qui " +"doivent être des entiers." #: ../Doc/reference/expressions.rst:1052 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " "must be integers." msgstr "" +"L'opérateur ``|`` produit le OU logique de ses arguments, qui doivent être " +"des entiers." #: ../Doc/reference/expressions.rst:1059 msgid "Comparisons" @@ -1074,10 +1573,16 @@ msgid "" "unlike C, expressions like ``a < b < c`` have the interpretation that is " "conventional in mathematics:" msgstr "" +"Au contraire du C, toutes les opérations de comparaison en Python possèdent " +"la même priorité, qui est plus faible que celle des opérations " +"arithmétiques, décalages ou binaires bit à bit. Toujours contrairement au C, " +"les expressions telles que ``a < b < c`` sont interprétées comme elles le " +"seraient conventionnellement en mathématiques :" #: ../Doc/reference/expressions.rst:1075 msgid "Comparisons yield boolean values: ``True`` or ``False``." msgstr "" +"Les comparaisons produisent des valeurs booléennes : ``True`` ou ``False``." #: ../Doc/reference/expressions.rst:1079 msgid "" @@ -1086,6 +1591,10 @@ msgid "" "both cases ``z`` is not evaluated at all when ``x < y`` is found to be " "false)." msgstr "" +"Les comparaisons peuvent être enchaînées arbitrairement, par exemple ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que ``y`` est évalué " +"seulement une fois (mais dans les deux cas, ``z`` n'est pas évalué du tout " +"si ``x < y`` s'avère être faux)." #: ../Doc/reference/expressions.rst:1083 msgid "" @@ -1094,6 +1603,10 @@ msgid "" "z`` is equivalent to ``a op1 b and b op2 c and ... y opN z``, except that " "each expression is evaluated at most once." msgstr "" +"Formellement, si *a*, *b*, *c*, ..., *y*, *z* sont des expressions et *op1*, " +"*op2*, ..., *opN* sont des opérateurs de comparaison, alors ``a op1 b op2 " +"c ... y opN z`` est équivalent à ``a op1 b and b op2 c and ... y opN z``, " +"sauf que chaque expression est évaluée au maximum une fois." #: ../Doc/reference/expressions.rst:1088 msgid "" @@ -1101,16 +1614,21 @@ msgid "" "and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " "pretty)." msgstr "" +"Notez que ``a op1 b op2 c`` n'implique aucune comparaison entre *a* et *c*. " +"Ainsi, par exemple, ``x < y > z`` est parfaitement légal (mais peut-être pas " +"très élégant)." #: ../Doc/reference/expressions.rst:1093 msgid "Value comparisons" -msgstr "" +msgstr "Comparaisons de valeurs" #: ../Doc/reference/expressions.rst:1095 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." msgstr "" +"Les opérateurs ``<``, ``>``, ``==``, ``>=``, ``<=`` et ``!=`` comparent les " +"valeurs de deux objets. Les objets n'ont pas besoin d'être du même type." #: ../Doc/reference/expressions.rst:1098 msgid "" @@ -1123,6 +1641,15 @@ msgid "" "object is. One can think of them as defining the value of an object " "indirectly, by means of their comparison implementation." msgstr "" +"Le chapître :ref:`objects` indique que les objets ont une valeur (en plus " +"d'un type et d'un identifiant). La valeur d'un objet est une notion plutôt " +"abstraite en Python : par exemple, il n'existe pas de méthode canonique pour " +"accéder à la valeur d'un objet. De la même manière, il n'y a aucune " +"obligation concernant la construction de la valeur d'un objet, par exemple " +"qu'elle prenne en compte toutes les données de ses attributs. Les opérateurs " +"de comparaison implémentent une notion particulière de ce qu'est la valeur " +"d'un objet. Vous pouvez vous le représenter comme une définition indirecte " +"de la valeur d'un objet, *via* l'implémentation de leur comparaison." #: ../Doc/reference/expressions.rst:1107 msgid "" @@ -1131,6 +1658,11 @@ msgid "" "customize their comparison behavior by implementing :dfn:`rich comparison " "methods` like :meth:`__lt__`, described in :ref:`customization`." msgstr "" +"Comme tous les types sont des sous-types (directs ou indirects) de la " +"classe :class:`object`, ils héritent du comportement de comparaison par " +"défaut de :class:`object`. Les types peuvent personnaliser le comportement " +"des comparaisons en implémentant des :dfn:`méthodes de comparaisons riches`, " +"comme :meth:`__lt__`, décrites dans :ref:`customization`." #: ../Doc/reference/expressions.rst:1113 msgid "" @@ -1141,6 +1673,12 @@ msgid "" "default behavior is the desire that all objects should be reflexive (i.e. " "``x is y`` implies ``x == y``)." msgstr "" +"Le comportement par défaut pour le test d'égalité (``==`` et ``!=``) se base " +"sur les identifiants des objets. Ainsi, un test d'égalité entre deux " +"instances qui ont le même identifiant est vrai, un test d'égalité entre deux " +"instances qui ont des identifiants différents est faux. La raison de ce " +"choix est que Python souhaite que tous les objets soient réflexifs, c'est-à-" +"dire que ``x is y`` implique ``x == y``." #: ../Doc/reference/expressions.rst:1120 msgid "" @@ -1148,6 +1686,9 @@ msgid "" "provided; an attempt raises :exc:`TypeError`. A motivation for this default " "behavior is the lack of a similar invariant as for equality." msgstr "" +"La relation d'ordre (``<``, ``>``, ``<=`` et ``>=``) n'est pas fournie par " +"défaut ; une tentative se solde par une :exc:`TypeError`. La raison de ce " +"choix est qu'il n'existe pas d'invariant similaire à celui de l'égalité." #: ../Doc/reference/expressions.rst:1124 msgid "" @@ -1157,12 +1698,20 @@ msgid "" "equality. Such types will need to customize their comparison behavior, and " "in fact, a number of built-in types have done that." msgstr "" +"Le comportement du test d'égalité par défaut, à savoir que les instances " +"avec des identités différentes ne sont jamais égales, peut être en " +"contradiction avec les types qui définissent la \"valeur\" d'un objet et se " +"basent sur cette \"valeur\" pour l'égalité. De tels types doivent " +"personnaliser leurs tests de comparaison et, en fait, c'est ce qu'ont fait " +"un certain nombre de types natifs." #: ../Doc/reference/expressions.rst:1130 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." msgstr "" +"La liste suivante décrit le comportement des tests d'égalité pour les types " +"natifs les plus importants." #: ../Doc/reference/expressions.rst:1133 msgid "" @@ -1173,6 +1722,13 @@ msgid "" "involved, they compare mathematically (algorithmically) correct without loss " "of precision." msgstr "" +"Beaucoup de types numériques natifs (:ref:`typesnumeric`) et de types de la " +"bibliothèque standard :class:`fractions.Fraction` ainsi que :class:`decimal." +"decimal` peuvent être comparés, au sein de leur propre classe ou avec " +"d'autres objets de classes différentes. Une exception notable concerne les " +"nombres complexes qui ne gèrent pas la relation d'ordre. Dans les limites " +"des types concernés, la comparaison mathématique équivaut à la comparaison " +"algorithmique, sans perte de précision." #: ../Doc/reference/expressions.rst:1140 msgid "" @@ -1182,6 +1738,8 @@ msgid "" "number to a not-a-number value will return ``False``. For example, both ``3 " "< float('NaN')`` and ``float('NaN') < 3`` will return ``False``." msgstr "" +"Les valeurs qui ne sont pas des nombres, :const:`float('NaN')` et :const:" +"`Decimal('NaN')`, ont un traitement spécial. " #: ../Doc/reference/expressions.rst:1147 msgid "" @@ -1189,6 +1747,10 @@ msgid "" "compared within and across their types. They compare lexicographically " "using the numeric values of their elements." msgstr "" +"Les séquences binaires (instances du type :class:`bytes` ou :class:" +"`bytearray`) peuvent être comparées au sein de la classe et entre classes. " +"La comparaison est lexicographique, en utilisant la valeur numérique des " +"éléments." #: ../Doc/reference/expressions.rst:1151 msgid "" @@ -1196,10 +1758,15 @@ msgid "" "numerical Unicode code points (the result of the built-in function :func:" "`ord`) of their characters. [#]_" msgstr "" +"Les chaînes de caractères (instances de :class:`str`) respectent l'ordre " +"lexicographique en utilisant la valeur Unicode (le résultat de la fonction " +"native :func:`ord`) des caractères [#]_." #: ../Doc/reference/expressions.rst:1155 msgid "Strings and binary sequences cannot be directly compared." msgstr "" +"Les chaînes de caractères et les séquences binaires ne peuvent pas être " +"comparées directement." #: ../Doc/reference/expressions.rst:1157 msgid "" @@ -1215,6 +1782,8 @@ msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements, whereby reflexivity of the elements is enforced." msgstr "" +"Les séquences suivent l'ordre lexicographique en utilisant la comparaison de " +"leurs éléments, sachant que la réflexivité des éléments est appliquée." #: ../Doc/reference/expressions.rst:1166 msgid "" @@ -1228,11 +1797,22 @@ msgid "" "number values for example result in the following comparison behavior when " "used in a list::" msgstr "" +"Dans l'application de la réflexivité des éléments, la comparaison des " +"collections suppose que pour un élément de collection ``x``, ``x == x`` est " +"toujours vrai. Sur la base de cette hypothèse, l'identité des éléments est " +"d'abord testée, puis la comparaison des éléments n'est effectuée que pour " +"des éléments distincts. Cette approche donne le même résultat qu'une " +"comparaison stricte d'éléments, si les éléments comparés sont réflexifs. " +"Pour les éléments non réflexifs, le résultat est différent de celui de la " +"comparaison stricte des éléments, voire peut être surprenant : les valeurs " +"non réflexives qui ne sont pas des nombres, par exemple, aboutissent au " +"comportement suivant lorsqu'elles sont utilisées dans une liste ::" #: ../Doc/reference/expressions.rst:1184 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" +"L'ordre lexicographique pour les collections natives fonctionne comme suit :" #: ../Doc/reference/expressions.rst:1186 msgid "" @@ -1240,6 +1820,9 @@ msgid "" "the same length, and each pair of corresponding elements must compare equal " "(for example, ``[1,2] == (1,2)`` is false because the type is not the same)." msgstr "" +"Deux collections sont égales si elles sont du même type, ont la même " +"longueur et si les éléments correspondants de chaque paire sont égaux. Par " +"exemple, ``[1,2] == (1,2)`` est faux car les types sont différents." #: ../Doc/reference/expressions.rst:1191 msgid "" @@ -1249,6 +1832,11 @@ msgid "" "shorter collection is ordered first (for example, ``[1,2] < [1,2,3]`` is " "true)." msgstr "" +"Les collections qui gèrent la relation d'ordre sont ordonnées comme leur " +"premier élément différent (par exemple, ``[1,2,x] <= [1,2,y]`` a la même " +"valeur que ``x <= y``). Si un élément n'a pas de correspondant, la " +"collection la plus courte est la plus petite (par exemple, ``[1,2] < " +"[1,2,3]`` est vrai)." #: ../Doc/reference/expressions.rst:1197 msgid "" @@ -1261,12 +1849,15 @@ msgstr "" msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" +"Les comparaisons (``<``, ``>``, ``<=`` et ``>=``) lèvent :exc:`TypeError`." #: ../Doc/reference/expressions.rst:1203 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." msgstr "" +"Les ensembles (instances de :class:`set` ou :class:`frozenset`) peuvent être " +"comparés au sein de leur propre type et entre types différents." #: ../Doc/reference/expressions.rst:1206 msgid "" @@ -1278,28 +1869,41 @@ msgid "" "func:`max`, and :func:`sorted` produce undefined results given a list of " "sets as inputs)." msgstr "" +"Les opérateurs d'inclusion et de sur-ensemble sont définis. Ces relations ne " +"sont pas des relations d'ordre total (par exemple, les deux ensembles ``{1,2}" +"`` et ``{2,3}`` ne sont pas égaux, l'un n'est pas inclus dans l'autre, l'un " +"n'est pas un sur-ensemble de l'autre). Ainsi, les ensembles ne sont pas des " +"arguments appropriés pour les fonctions qui dépendent d'un ordre total (par " +"exemple, les fonctions :func:`min`, :func:`max` et :func:`sorted` produisent " +"des résultats indéfinis si on leur donne des listes d'ensembles en entrée)." #: ../Doc/reference/expressions.rst:1214 msgid "Comparison of sets enforces reflexivity of its elements." -msgstr "" +msgstr "La comparaison des ensembles met en œuvre la réflexivité des éléments." #: ../Doc/reference/expressions.rst:1216 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." msgstr "" +"La plupart des autres types natifs n'implémentent pas de méthodes de " +"comparaisons, ils héritent donc du comportement par défaut." #: ../Doc/reference/expressions.rst:1219 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" +"Les classes allogènes qui particularisent les opérations de comparaison " +"doivent, si possible, respecter quelques règles pour la cohérence :" #: ../Doc/reference/expressions.rst:1222 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" msgstr "" +"Le test d'égalité doit être réflexif. En d'autres termes, des objets " +"identiques doivent être égaux :" #: ../Doc/reference/expressions.rst:1225 msgid "``x is y`` implies ``x == y``" @@ -1310,6 +1914,8 @@ msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" msgstr "" +"La comparaison doit être symétrique. En d'autres termes, les expressions " +"suivantes doivent donner le même résultat :" #: ../Doc/reference/expressions.rst:1230 msgid "``x == y`` and ``y == x``" @@ -1332,20 +1938,22 @@ msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" msgstr "" +"La comparaison doit être transitive. Les exemples suivants (liste non " +"exhaustive) illustrent ce concept :" #: ../Doc/reference/expressions.rst:1241 msgid "``x > y and y > z`` implies ``x > z``" -msgstr "``x > y et y > z`` implique ``x > z``" +msgstr "``x > y and y > z`` implique ``x > z``" #: ../Doc/reference/expressions.rst:1243 msgid "``x < y and y <= z`` implies ``x < z``" -msgstr "``x < y et y <= z`` implique ``x < z``" +msgstr "``x < y and y <= z`` implique ``x < z``" #: ../Doc/reference/expressions.rst:1245 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" -msgstr "" +msgstr "Si vous inversez la comparaison, le résultat a négation " #: ../Doc/reference/expressions.rst:1248 msgid "``x == y`` and ``not x != y``" @@ -1353,11 +1961,11 @@ msgstr "``x == y`` et ``not x != y``" #: ../Doc/reference/expressions.rst:1250 msgid "``x < y`` and ``not x >= y`` (for total ordering)" -msgstr "" +msgstr "``x < y`` et ``not x >= y`` (pour une relation d'ordre total)" #: ../Doc/reference/expressions.rst:1252 msgid "``x > y`` and ``not x <= y`` (for total ordering)" -msgstr "" +msgstr "``x > y`` et ``not x <= y`` (pour une relation d'ordre total)" #: ../Doc/reference/expressions.rst:1254 msgid "" @@ -1365,16 +1973,22 @@ msgid "" "sequences, but not to sets or mappings). See also the :func:`~functools." "total_ordering` decorator." msgstr "" +"Ces deux dernières expressions s'appliquent pour les collections totalement " +"ordonnées (par exemple, les séquences mais pas les ensembles ou les tableaux " +"de correspondances). Regardez aussi le décorateur :func:`~functools." +"total_ordering`." #: ../Doc/reference/expressions.rst:1258 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." msgstr "" +"Python ne vérifie pas ces règles de cohérence. En fait, l'utilisation de " +"valeurs non numériques est un exemple de non-respect de ces règles." #: ../Doc/reference/expressions.rst:1267 msgid "Membership test operations" -msgstr "" +msgstr "Opérations de tests d’appartenance à un ensemble" #: ../Doc/reference/expressions.rst:1269 msgid "" @@ -1423,10 +2037,12 @@ msgid "" "The operator :keyword:`not in` is defined to have the inverse true value of :" "keyword:`in`." msgstr "" +"L'opérateur :keyword:`not in` est défini comme produisant le contraire de :" +"keyword:`in`." #: ../Doc/reference/expressions.rst:1315 msgid "Identity comparisons" -msgstr "" +msgstr "Comparaisons d'identifiants" #: ../Doc/reference/expressions.rst:1317 msgid "" @@ -1435,10 +2051,15 @@ msgid "" "identity is determined using the :meth:`id` function. ``x is not y`` yields " "the inverse truth value. [#]_" msgstr "" +"Les opérateurs :keyword:`is` et :keyword:`is not` testent l'égalité des " +"identifiants des objets : ``x is y`` est vrai si et seulement si *x* et *y* " +"sont le même objet. L'identifiant d'un objet est déterminé en utilisant la " +"fonction :meth:`id`. ``x is not y`` renvoie le résultat contraire de " +"l'égalité des identifiants [#]_." #: ../Doc/reference/expressions.rst:1329 msgid "Boolean operations" -msgstr "" +msgstr "Opérations booléennes" #: ../Doc/reference/expressions.rst:1340 msgid "" @@ -1450,24 +2071,40 @@ msgid "" "objects can customize their truth value by providing a :meth:`__bool__` " "method." msgstr "" +"Dans le contexte des opérations booléennes et quand des expressions sont " +"utilisées par des instructions de contrôle du flux d'exécution, les valeurs " +"suivantes sont considérées comme fausses : ``False``, ``None``, zéro quel " +"que soit le type, la chaîne vide et tout conteneur vide (y compris les " +"chaînes, n-uplets, listes, dictionnaires, ensembles, ensembles gelés). " +"Toutes les autres valeurs sont considérées comme vraies. Les objets " +"allogènes peuvent personnaliser leur table de vérité en implémentant une " +"méthode :meth:`__bool__`." #: ../Doc/reference/expressions.rst:1349 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." msgstr "" +"L'opérateur :keyword:`not` produit ``True`` si son argument est faux, " +"``False`` sinon." #: ../Doc/reference/expressions.rst:1354 msgid "" "The expression ``x and y`` first evaluates *x*; if *x* is false, its value " "is returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" +"L'expression ``x and y`` commence par évaluer *x* ; si *x* est faux, sa " +"valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " +"renvoyée." #: ../Doc/reference/expressions.rst:1359 msgid "" "The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " "returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" +"L'expression ``x or y`` commence par évaluer *x* ; si *x* est vrai, sa " +"valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " +"renvoyée." #: ../Doc/reference/expressions.rst:1362 msgid "" @@ -1479,16 +2116,26 @@ msgid "" "create a new value, it returns a boolean value regardless of the type of its " "argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" msgstr "" +"Notez que ni :keyword:`and` ni :keyword:`or` ne restreignent la valeur et le " +"type qu'ils renvoient à ``False`` et ``True`` : ils renvoient le dernier " +"argument évalué. Ceci peut être utile, par exemple : si une chaîne ``s`` " +"doit être remplacée par une valeur par défaut si elle est vide, l'expression " +"``s or 'truc'`` produit la valeur voulue. Comme :keyword:`not` doit créer " +"une nouvelle valeur, il renvoie une valeur booléenne quel que soit le type " +"de son argument (par exemple, ``not 'truc'`` produit ``False`` plutôt que " +"``''``." #: ../Doc/reference/expressions.rst:1372 msgid "Conditional expressions" -msgstr "" +msgstr "Expressions conditionnelles" #: ../Doc/reference/expressions.rst:1383 msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" +"Les expressions conditionnelles (parfois appelées \"opérateur ternaire\") " +"sont les moins prioritaires de toutes les opérations Python." #: ../Doc/reference/expressions.rst:1386 msgid "" @@ -1496,14 +2143,18 @@ msgid "" "than *x*. If *C* is true, *x* is evaluated and its value is returned; " "otherwise, *y* is evaluated and its value is returned." msgstr "" +"L'expression ``x if C else y`` commence par évaluer la condition *C*. Si *C* " +"est vrai, alors *x* est évalué et sa valeur est renvoyée ; sinon, *y* est " +"évalué et sa valeur est renvoyée." #: ../Doc/reference/expressions.rst:1390 msgid "See :pep:`308` for more details about conditional expressions." msgstr "" +"Voir la :pep:`308` pour plus de détails sur les expressions conditionnelles." #: ../Doc/reference/expressions.rst:1397 msgid "Lambdas" -msgstr "" +msgstr "Expressions lambda" #: ../Doc/reference/expressions.rst:1408 msgid "" @@ -1519,10 +2170,13 @@ msgid "" "functions created with lambda expressions cannot contain statements or " "annotations." msgstr "" +"Voir la section :ref:`function` pour la syntaxe des listes de paramètres. " +"Notez que les fonctions créées par des expressions lambda ne peuvent pas " +"contenir d'instructions ou d'annotations." #: ../Doc/reference/expressions.rst:1425 msgid "Expression lists" -msgstr "" +msgstr "Listes d'expressions" #: ../Doc/reference/expressions.rst:1437 msgid "" @@ -1530,6 +2184,10 @@ msgid "" "least one comma yields a tuple. The length of the tuple is the number of " "expressions in the list. The expressions are evaluated from left to right." msgstr "" +"Sauf lorsqu'elle fait partie d'un agencement de liste ou d'ensemble, une " +"liste d'expressions qui contient au moins une virgule produit un n-uplet " +"(*tuple*). La longueur du n-uplet est le nombre d'expressions dans la liste. " +"Les expressions sont évaluées de la gauche vers la droite." #: ../Doc/reference/expressions.rst:1446 msgid "" @@ -1538,11 +2196,17 @@ msgid "" "which are included in the new tuple, list, or set, at the site of the " "unpacking." msgstr "" +"Un astérisque ``*`` indique :dfn:`dépaquetage d'itérable` (*iterable " +"unpacking* en anglais). Son opérande doit être un :term:`iterable`. " +"L'itérable est développé en une séquence d'éléments qui sont inclus dans un " +"nouvel objet *tuple*, *list* ou *set* à l'emplacement du dépaquetage." #: ../Doc/reference/expressions.rst:1451 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" +"dépaquetage d'itérables dans les listes d'expressions, proposé à l'origine " +"par la :pep:`448`." #: ../Doc/reference/expressions.rst:1456 msgid "" @@ -1552,10 +2216,15 @@ msgid "" "of that expression. (To create an empty tuple, use an empty pair of " "parentheses: ``()``.)" msgstr "" +"La virgule finale est nécessaire pour créer un singleton (c'est-à-dire un n-" +"uplet composé d'un seul élément) : elle est optionnelle dans tous les autres " +"cas. Une expression seule sans virgule finale ne crée pas un n-uplet mais " +"produit la valeur de cette expression (pour créer un *tuple* vide, utilisez " +"une paire de parenthèses vide : ``()``)." #: ../Doc/reference/expressions.rst:1466 msgid "Evaluation order" -msgstr "" +msgstr "Ordre d'évaluation" #: ../Doc/reference/expressions.rst:1470 msgid "" @@ -1563,16 +2232,21 @@ msgid "" "evaluating an assignment, the right-hand side is evaluated before the left-" "hand side." msgstr "" +"Python évalue les expressions de la gauche vers la droite. Remarquez que " +"lors de l'évaluation d'une assignation, la partie droite de l'assignation " +"est évaluée avant la partie gauche." #: ../Doc/reference/expressions.rst:1473 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" msgstr "" +"Dans les lignes qui suivent, les expressions sont évaluées suivant l'ordre " +"arithmétique de leurs suffixes ::" #: ../Doc/reference/expressions.rst:1487 msgid "Operator precedence" -msgstr "" +msgstr "Priorités des opérateurs" #: ../Doc/reference/expressions.rst:1491 msgid "" @@ -1582,6 +2256,12 @@ msgid "" "explicitly given, operators are binary. Operators in the same box group " "left to right (except for exponentiation, which groups from right to left)." msgstr "" +"Le tableau suivant résume les priorités des opérateurs en Python, du moins " +"prioritaire au plus prioritaire. Les opérateurs qui sont dans la même case " +"ont la même priorité. À moins que la syntaxe ne soit explicitement indiquée, " +"les opérateurs sont binaires. Les opérateurs dans la même cases regroupent " +"de la gauche vers la droite (sauf pour la puissance qui regroupe de la " +"droite vers la gauche). " #: ../Doc/reference/expressions.rst:1497 msgid "" @@ -1589,10 +2269,13 @@ msgid "" "same precedence and have a left-to-right chaining feature as described in " "the :ref:`comparisons` section." msgstr "" +"Notez que les comparaisons, les tests d'appartenance et les tests " +"d'identifiants possèdent tous la même priorité et s'enchaînent de la gauche " +"vers la droite comme décrit dans la section :ref:`comparisons`." #: ../Doc/reference/expressions.rst:1503 msgid "Operator" -msgstr "" +msgstr "Opérateur" #: ../Doc/reference/expressions.rst:1503 msgid "Description" @@ -1600,7 +2283,7 @@ msgstr "Description" #: ../Doc/reference/expressions.rst:1505 msgid ":keyword:`lambda`" -msgstr "" +msgstr ":keyword:`lambda`" #: ../Doc/reference/expressions.rst:1505 msgid "Lambda expression" @@ -1608,69 +2291,72 @@ msgstr "Expression lambda" #: ../Doc/reference/expressions.rst:1507 msgid ":keyword:`if` -- :keyword:`else`" -msgstr "" +msgstr ":keyword:`if` -- :keyword:`else`" #: ../Doc/reference/expressions.rst:1507 msgid "Conditional expression" -msgstr "" +msgstr "Expressions conditionnelle" #: ../Doc/reference/expressions.rst:1509 msgid ":keyword:`or`" -msgstr "" +msgstr ":keyword:`or`" #: ../Doc/reference/expressions.rst:1509 msgid "Boolean OR" -msgstr "" +msgstr "OR (booléen)" #: ../Doc/reference/expressions.rst:1511 msgid ":keyword:`and`" -msgstr "" +msgstr ":keyword:`and`" #: ../Doc/reference/expressions.rst:1511 msgid "Boolean AND" -msgstr "" +msgstr "AND (booléen)" #: ../Doc/reference/expressions.rst:1513 msgid ":keyword:`not` ``x``" -msgstr "" +msgstr ":keyword:`not` ``x``" #: ../Doc/reference/expressions.rst:1513 msgid "Boolean NOT" -msgstr "" +msgstr "NOT (booléen)" #: ../Doc/reference/expressions.rst:1515 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" msgstr "" +":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " +"``<=``, ``>``, ``>=``, ``!=``, ``==``" #: ../Doc/reference/expressions.rst:1515 msgid "Comparisons, including membership tests and identity tests" msgstr "" +"Comparaisons, y compris les tests d'appartenance et les tests d'identifiants" #: ../Doc/reference/expressions.rst:1519 msgid "``|``" -msgstr "" +msgstr "``|``" #: ../Doc/reference/expressions.rst:1519 msgid "Bitwise OR" -msgstr "" +msgstr "OR (bit à bit)" #: ../Doc/reference/expressions.rst:1521 msgid "``^``" -msgstr "" +msgstr "``^``" #: ../Doc/reference/expressions.rst:1521 msgid "Bitwise XOR" -msgstr "" +msgstr "XOR (bit à bit)" #: ../Doc/reference/expressions.rst:1523 msgid "``&``" -msgstr "" +msgstr "``&``" #: ../Doc/reference/expressions.rst:1523 msgid "Bitwise AND" -msgstr "" +msgstr "AND (bit à bit)" #: ../Doc/reference/expressions.rst:1525 msgid "``<<``, ``>>``" @@ -1678,7 +2364,7 @@ msgstr "``<<``, ``>>``" #: ../Doc/reference/expressions.rst:1525 msgid "Shifts" -msgstr "" +msgstr "décalages" #: ../Doc/reference/expressions.rst:1527 msgid "``+``, ``-``" @@ -1686,7 +2372,7 @@ msgstr "``+``, ``-``" #: ../Doc/reference/expressions.rst:1527 msgid "Addition and subtraction" -msgstr "" +msgstr "Addition et soustraction" #: ../Doc/reference/expressions.rst:1529 msgid "``*``, ``@``, ``/``, ``//``, ``%``" @@ -1702,15 +2388,15 @@ msgstr "``+x``, ``-x``, ``~x``" #: ../Doc/reference/expressions.rst:1533 msgid "Positive, negative, bitwise NOT" -msgstr "" +msgstr "NOT (positif, négatif, bit à bit)" #: ../Doc/reference/expressions.rst:1535 msgid "``**``" -msgstr "" +msgstr "``**``" #: ../Doc/reference/expressions.rst:1535 msgid "Exponentiation [#]_" -msgstr "" +msgstr "Puissance [#]_" #: ../Doc/reference/expressions.rst:1537 msgid "``await`` ``x``" @@ -1719,20 +2405,25 @@ msgstr "``await`` ``x``" #: ../Doc/reference/expressions.rst:1539 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "" +"``x[indice]``, ``x[indice:indice]``, ``x(arguments...)``, ``x.attribut``" #: ../Doc/reference/expressions.rst:1539 msgid "Subscription, slicing, call, attribute reference" -msgstr "" +msgstr "indiçage, tranches, appel, référence à un attribut" #: ../Doc/reference/expressions.rst:1542 msgid "" "``(expressions...)``, ``[expressions...]``, ``{key: value...}``, " "``{expressions...}``" msgstr "" +"``(expressions...)``, ``[expressions...]``, ``{clé: valeur...}``, " +"``{expressions...}``" #: ../Doc/reference/expressions.rst:1542 msgid "Binding or tuple display, list display, dictionary display, set display" msgstr "" +"liaison ou agencement de n-uplet, agencement de liste, agencement de " +"dictionnaire, agencement d'ensemble" #: ../Doc/reference/expressions.rst:1550 msgid "Footnotes" @@ -1749,6 +2440,15 @@ msgid "" "the first argument instead, and so returns ``-1e-100`` in this case. Which " "approach is more appropriate depends on the application." msgstr "" +"Bien que ``abs(x%y) < abs(y)`` soit vrai mathématiquement, ce n'est pas " +"toujours vrai pour les nombres à virgule flottante en raison des arrondis. " +"Par exemple, en supposant que Python tourne sur une plateforme où les " +"*float* sont des nombres à double précision IEEE 754, afin que ``-1e-100 % " +"1e100`` soit du même signe que ``1e100``, le résultat calculé est ``-1e-100 " +"+ 1e100``, qui vaut exactement ``1e100`` dans ce standard. Or, la fonction :" +"func:`math.fmod` renvoie un résultat dont le signe est le signe du premier " +"argument, c'est-à-dire ``-1e-100`` dans ce cas. La meilleure approche dépend " +"de l'application." #: ../Doc/reference/expressions.rst:1560 msgid "" @@ -1757,6 +2457,10 @@ msgid "" "Python returns the latter result, in order to preserve that ``divmod(x,y)[0] " "* y + x % y`` be very close to ``x``." msgstr "" +"Si x est très proche d'un multiple entier de y, il est possible que ``x/y`` " +"soit supérieur de un par rapport à ``(x-x%y)//y`` en raison des arrondis. " +"Dans de tels cas, Python renvoie le second résultat afin d'avoir ``divmod(x," +"y)[0] * y + x % y`` le plus proche de ``x``." #: ../Doc/reference/expressions.rst:1565 msgid "" @@ -1771,6 +2475,17 @@ msgid "" "LETTER C), followed by a :dfn:`combining character` at code position U+0327 " "(COMBINING CEDILLA)." msgstr "" +"Le standard Unicode distingue les :dfn:`points codes` (*code points* en " +"anglais, par exemple U+0041) et les :dfn:`caractères abstraits` (*abstract " +"characters* en anglais, par exemple \"LATIN CAPITAL LETTER A\"). Bien que la " +"plupart des caractères abstraits de l'Unicode ne sont représentés que par un " +"seul point code, il y a un certain nombre de caractères abstraits qui " +"peuvent être représentés par une séquence de plus qu'un point code. Par " +"exemple, le caractère abstrait \"LATIN CAPITAL LETTER C WITH CEDILLA\" peut " +"être représenté comme un unique :dfn:`caractère précomposé` au point code U" +"+00C7, ou en tant que séquence d'un :dfn:`caractère de base` à la position U" +"+0043 (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " +"combiné` à la position U+0327 (COMBINING CEDILLA) du code." #: ../Doc/reference/expressions.rst:1576 msgid "" @@ -1779,12 +2494,20 @@ msgid "" "== \"\\u0043\\u0327\"`` is ``False``, even though both strings represent the " "same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." msgstr "" +"Les opérateurs de comparaison des chaînes opèrent au niveau des points codes " +"Unicode. Cela peut être déroutant pour des humains. Par exemple, ``" +"\"\\u00C7\" == \"\\u0043\\u0327\"`` renvoie ``False``, bien que les deux " +"chaînes représentent le même caractère abstrait \"LATIN CAPITAL LETTER C " +"WITH CEDILLA\"." #: ../Doc/reference/expressions.rst:1581 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." msgstr "" +"Pour comparer des chaînes au niveau des caractères abstraits (afin d'avoir " +"quelque chose d'intuitif pour les humains), utilisez :func:`unicodedata." +"normalize`." #: ../Doc/reference/expressions.rst:1584 msgid "" @@ -1793,15 +2516,24 @@ msgid "" "the :keyword:`is` operator, like those involving comparisons between " "instance methods, or constants. Check their documentation for more info." msgstr "" +"En raison du ramasse-miettes automatique et de la nature dynamique des " +"descripteurs, vous pouvez être confronté à un comportement semblant bizarre " +"lors de certaines utilisations de l'opérateur :keyword:`is`, par exemple si " +"cela implique des comparaisons entre des méthodes d'instances ou des " +"constantes. Allez vérifier dans la documentation pour plus d'informations." #: ../Doc/reference/expressions.rst:1589 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" +"L'opérateur ``%`` est aussi utilisé pour formater les chaînes de " +"caractères ; il y possède la même priorité." #: ../Doc/reference/expressions.rst:1592 msgid "" "The power operator ``**`` binds less tightly than an arithmetic or bitwise " "unary operator on its right, that is, ``2**-1`` is ``0.5``." msgstr "" +"L'opérateur puissance ``**`` est moins prioritaire qu'un opérateur unaire " +"arithmétique ou bit à bit sur sa droite. Ainsi, ``2**-1`` vaut ``0.5``." diff --git a/reference/grammar.po b/reference/grammar.po index 68b993fd..446616ae 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -18,10 +18,13 @@ msgstr "" #: ../Doc/reference/grammar.rst:2 msgid "Full Grammar specification" -msgstr "" +msgstr "Spécification complète de la grammaire" #: ../Doc/reference/grammar.rst:4 msgid "" "This is the full Python grammar, as it is read by the parser generator and " "used to parse Python source files:" msgstr "" +"Ceci est la grammaire de Python, exhaustive, telle qu'elle est lue par le " +"générateur de parseur, et utilisée pour parser des fichiers sources en " +"Python :" diff --git a/reference/import.po b/reference/import.po index 9b2ef4f9..6f0a339c 100644 --- a/reference/import.po +++ b/reference/import.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/reference/import.rst:6 msgid "The import system" -msgstr "" +msgstr "Le système d'importation" #: ../Doc/reference/import.rst:10 msgid "" @@ -28,6 +28,12 @@ msgid "" "way. Functions such as :func:`importlib.import_module` and built-in :func:" "`__import__` can also be used to invoke the import machinery." msgstr "" +"Le code Python d'un :term:`module` peut accéder à du code d'un autre module " +"par un mécanisme qui consiste à :term:`importer` cet autre module. " +"L'instruction :keyword:`import` est la façon la plus courante faire appel à " +"ce système d'importation, mais ce n'est pas la seule. Les fonctions telles " +"que :func:`importlib.import_module` et :func:`__import__` peuvent aussi être " +"utilisées pour mettre en œuvre le mécanisme d'importation." #: ../Doc/reference/import.rst:16 msgid "" @@ -39,6 +45,14 @@ msgid "" "name binding operation of the :keyword:`import` statement. See the :keyword:" "`import` statement for the exact details of that name binding operation." msgstr "" +"L'instruction :keyword:`import` effectue deux opérations ; elle cherche le " +"module dont le nom a été donné puis elle lie le résultat de cette recherche " +"à un nom dans la portée locale. L'opération de recherche de l'instruction :" +"keyword:`import` consiste à appeler la fonction :func:`__import__` avec les " +"arguments adéquats. La valeur renvoyée par :func:`__import__` est utilisée " +"pour effectuer l'opération de liaison avec le nom fourni à l'instruction :" +"keyword:`import`. Reportez-vous à l'instruction :keyword:`import` pour les " +"détails exacts de l'opération de liaison avec le nom." #: ../Doc/reference/import.rst:25 msgid "" @@ -48,6 +62,12 @@ msgid "" "(including :data:`sys.modules`), only the :keyword:`import` statement " "performs a name binding operation." msgstr "" +"Un appel direct à :func:`__import__` effectue seulement la recherche du " +"module et, s'il est trouvé, l'opération de création du module. Bien que des " +"effets collatéraux puissent se produire, tels que l'importation de paquets " +"parents et la mise à jour de divers caches (y compris :data:`sys.modules`), " +"il n'y a que l'instruction :keyword:`import` qui déclenche l'opération de " +"liaison avec le nom." #: ../Doc/reference/import.rst:31 msgid "" @@ -57,6 +77,11 @@ msgid "" "subvert :func:`__import__` and use its own solution to implement import " "semantics." msgstr "" +"Lors de l'appel à :func:`__import__` dans le déroulement de l'instruction " +"d'importation, la fonction native :func:`__import__` est appelée. D'autres " +"mécanismes d'appel au système d'importation (tels que :func:`importlib." +"import_module`) peuvent choisir d'ignorer :func:`__import__` et utiliser " +"leur propre solution pour implémenter la sémantique d'importation." #: ../Doc/reference/import.rst:37 msgid "" @@ -75,10 +100,15 @@ msgid "" "import system is exposed through :data:`sys.meta_path`. In addition, native " "namespace package support has been implemented (see :pep:`420`)." msgstr "" +"Le système d'importation a été mis à jour pour implémenter complètement la " +"deuxième partie de la :pep:`302`. Il n'existe plus de mécanisme implicite " +"d'importation (le système d'importation complet est exposé *via* :data:`sys." +"meta_path`). En complément, la gestion du paquet des noms natifs a été " +"implémenté (voir la :pep:`420`)." #: ../Doc/reference/import.rst:52 msgid ":mod:`importlib`" -msgstr "" +msgstr ":mod:`importlib`" #: ../Doc/reference/import.rst:54 msgid "" @@ -88,6 +118,12 @@ msgid "" "import machinery. Refer to the :mod:`importlib` library documentation for " "additional detail." msgstr "" +"Le module :mod:`importlib` fournit une API riche pour interagir avec le " +"système d'import. Par exemple, :func:`importlib.import_module` fournit une " +"API (que nous vous recommandons) plus simple que la fonction native :func:" +"`__import__` pour mettre en œuvre le mécanisme d'import. Reportez-vous à la " +"documentation de la bibliothèque :mod:`importlib` pour obtenir davantage de " +"détails." #: ../Doc/reference/import.rst:63 msgid "Packages" @@ -100,6 +136,11 @@ msgid "" "else. To help organize modules and provide a naming hierarchy, Python has a " "concept of :term:`packages `." msgstr "" +"Python ne connait qu'un seul type d'objet module et tous les modules sont " +"donc de ce type, que le module soit implémenté en Python, en C ou quoi que " +"ce soit d'autre. Pour aider à l'organisation des modules et fournir une " +"hiérarchie des noms, Python développe le concept de :term:`paquets " +"`." #: ../Doc/reference/import.rst:73 msgid "" @@ -111,6 +152,14 @@ msgid "" "hierarchically, and packages may themselves contain subpackages, as well as " "regular modules." msgstr "" +"Vous pouvez vous représenter les paquets comme des répertoires dans le " +"système de fichiers et les modules comme des fichiers dans ces répertoires. " +"Mais ne prenez pas trop cette analogie au pied de la lettre car les paquets " +"et les modules ne proviennent pas obligatoirement du système de fichiers. " +"Dans le cadre de cette documentation, nous utilisons cette analogie bien " +"pratique des répertoires et des fichiers. Comme les répertoires du système " +"de fichiers, les paquets sont organisés de manière hiérarchique et les " +"paquets peuvent eux-mêmes contenir des sous-paquets ou des modules." #: ../Doc/reference/import.rst:81 msgid "" @@ -119,6 +168,10 @@ msgid "" "of module. Specifically, any module that contains a ``__path__`` attribute " "is considered a package." msgstr "" +"Il est important de garder à l'esprit que tous les paquets sont des modules " +"mais que tous les modules ne sont pas des paquets. Formulé autrement, les " +"paquets sont juste un certain type de modules. Spécifiquement, tout module " +"qui contient un attribut ``__path__`` est réputé être un paquet." #: ../Doc/reference/import.rst:86 msgid "" @@ -128,10 +181,16 @@ msgid "" "`email`, which in turn has a subpackage called :mod:`email.mime` and a " "module within that subpackage called :mod:`email.mime.text`." msgstr "" +"Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom " +"du paquet parent par des points (`.`), à l'instar de la syntaxe standard " +"d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :" +"mod:`sys` et un paquet nommé :mod:`email`, qui a son tour possède un sous-" +"paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:" +"`email.mime.text`." #: ../Doc/reference/import.rst:94 msgid "Regular packages" -msgstr "" +msgstr "Paquets classiques" #: ../Doc/reference/import.rst:99 msgid "" @@ -145,12 +204,21 @@ msgid "" "same Python code that any other module can contain, and Python will add some " "additional attributes to the module when it is imported." msgstr "" +"Python définit deux types de paquets, les :term:`paquets classiques ` et les :term:`paquets espaces de noms `. Les " +"paquets classiques sont les paquets traditionnels tels qu'ils existaient " +"dans Python 3.2 et antérieurs. Un paquet classique est typiquement " +"implémenté sous la forme d'un répertoire contenant un fichier ``__init__." +"py``. Quand un paquet classique est importé, ce fichier ``__init__.py`` est " +"implicitement exécuté." #: ../Doc/reference/import.rst:109 msgid "" "For example, the following file system layout defines a top level ``parent`` " "package with three subpackages::" msgstr "" +"Par exemple, l'arborescence suivante définit un paquet ``parent`` au niveau " +"le plus haut avec trois sous-paquets ::" #: ../Doc/reference/import.rst:121 msgid "" @@ -159,10 +227,14 @@ msgid "" "``parent.three`` will execute ``parent/two/__init__.py`` and ``parent/three/" "__init__.py`` respectively." msgstr "" +"Importer ``parent.one`` exécute implicitement ``parent/__init__.py`` et " +"``parent/one/__init__.py``. Les importations postérieures de ``parent.two`` " +"ou ``parent.three`` respectivement exécutent ``parent/two/__init__.py`` ou " +"``parent/three/__init__.py`` respectivement." #: ../Doc/reference/import.rst:128 msgid "Namespace packages" -msgstr "" +msgstr "Paquets espaces de noms" #: ../Doc/reference/import.rst:134 msgid "" @@ -174,6 +246,14 @@ msgid "" "objects on the file system; they may be virtual modules that have no " "concrete representation." msgstr "" +"Un paquet-espace de noms est la combinaison de plusieurs :term:`portions " +"` où chaque portion fournit un sous-paquet au paquet parent. Les " +"portions peuvent être situées à différents endroits du système de fichiers. " +"Les portions peuvent aussi être stockées dans des fichiers zip, sur le " +"réseau ou à tout autre endroit dans lequel Python cherche pendant " +"l'importation. Les paquets-espaces de noms peuvent correspondre directement " +"à des objets du système de fichiers, ou pas ; ils peuvent être des modules " +"virtuels qui n'ont aucune représentation concrète." #: ../Doc/reference/import.rst:142 msgid "" @@ -183,6 +263,12 @@ msgid "" "that package if the path of their parent package (or :data:`sys.path` for a " "top level package) changes." msgstr "" +"Les paquets-espaces de noms n'utilisent pas une liste ordinaire pour leur " +"attribut ``__path__``. Ils utilisent en lieu et place un type itérable " +"personnalisé qui effectue automatiquement une nouvelle recherche de portions " +"de paquets à la tentative suivante d'importation dans le paquet si le chemin " +"de leur paquet parent (ou :data:`sys.path` pour les paquets de plus haut " +"niveau) change." #: ../Doc/reference/import.rst:148 msgid "" @@ -193,14 +279,22 @@ msgid "" "create a namespace package for the top-level ``parent`` package whenever it " "or one of its subpackages is imported." msgstr "" +"Pour les paquets-espaces de noms, il n'existe pas de fichier ``parent/" +"__init__.py``. En fait, il peut y avoir plusieurs répertoires ``parent`` " +"trouvés pendant le processus d'importation, où chacun est apporté par une " +"portion différente. Ainsi, ``parent/one`` n'est pas forcément physiquement à " +"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de noms " +"pour le paquet de plus haut niveau ``parent`` dès que lui ou l'un de ses " +"sous-paquet est importé." #: ../Doc/reference/import.rst:155 msgid "See also :pep:`420` for the namespace package specification." msgstr "" +"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de noms." #: ../Doc/reference/import.rst:159 msgid "Searching" -msgstr "" +msgstr "Recherche" #: ../Doc/reference/import.rst:161 msgid "" @@ -211,6 +305,11 @@ msgid "" "parameters to the :func:`importlib.import_module` or :func:`__import__` " "functions." msgstr "" +"Pour commencer la recherche, Python a besoin du :term:`nom qualifié " +"` du module (ou du paquet, mais ici cela ne fait pas de " +"différence) que vous souhaitez importer. Le nom peut être donné en argument " +"à l'instruction :keyword:`import` ou comme paramètre aux fonctions :func:" +"`importlib.import_module` ou :func:`__import__`." #: ../Doc/reference/import.rst:167 msgid "" @@ -223,7 +322,7 @@ msgstr "" #: ../Doc/reference/import.rst:174 msgid "The module cache" -msgstr "" +msgstr "Cache des modules" #: ../Doc/reference/import.rst:179 msgid "" @@ -234,6 +333,12 @@ msgid "" "and ``foo.bar.baz``. Each key will have as its value the corresponding " "module object." msgstr "" +"Le premier endroit vérifié pendant la recherche d'une importation est :data:" +"`sys.modules`. Ce tableau de correspondances est utilisé comme cache de tous " +"les modules déjà importés, y compris les chemins intermédiaires. Ainsi, si " +"``truc.machin.bidule`` a déjà été importé, :data:`sys.modules` contient les " +"entrées correspondantes à ``truc``, ``truc.machin`` et ``truc.machin." +"bidule``. À chaque chemin correspond une clé." #: ../Doc/reference/import.rst:186 msgid "" @@ -262,10 +367,15 @@ msgid "" "reload` will reuse the *same* module object, and simply reinitialise the " "module contents by rerunning the module's code." msgstr "" +"Attention cependant : s'il reste une référence à l'objet module et que vous " +"invalidez l'entrée dans le cache de :data:`sys.modules` puis ré-importez le " +"module, les deux objets modules ne seront pas les mêmes. À l'inverse, :func:" +"`importlib.reload` ré-utilise le *même* objet module et ré-initialise " +"simplement le contenu du module en ré-exécutant le code du module." #: ../Doc/reference/import.rst:207 msgid "Finders and loaders" -msgstr "" +msgstr "Chercheurs et chargeurs" #: ../Doc/reference/import.rst:214 msgid "" @@ -278,6 +388,14 @@ msgid "" "they return themselves when they find that they can load the requested " "module." msgstr "" +"Si le module n'est pas trouvé dans :data:`sys.modules`, alors Python utilise " +"son protocole d'importation pour chercher et charger le module. Ce protocole " +"se compose de deux objets conceptuels : les :term:`chercheurs ` et " +"les :term:`chargeurs `. Le travail du chercheur consiste à trouver, " +"à l'aide de différentes stratégies, le module dont le nom a été fourni. Les " +"objets qui implémentent ces deux interfaces sont connus sous le vocable \":" +"term:`importateurs `\" (ils renvoient une référence vers eux-mêmes " +"quand ils trouvent un module qui répond aux attentes)." #: ../Doc/reference/import.rst:222 msgid "" @@ -288,12 +406,21 @@ msgid "" "system paths or zip files. It can also be extended to search for any " "locatable resource, such as those identified by URLs." msgstr "" +"Python inclut plusieurs chercheurs et importateurs par défaut. Le premier " +"sait comment trouver les modules natifs et le deuxième sait comment trouver " +"les modules gelés. Un troisième chercheur recherche les modules dans :term:" +"`import path`. :term:`import path` est une énumération sous forme de liste " +"de chemins ou de fichiers zip. Il peut être étendu pour rechercher aussi " +"dans toute ressource qui dispose d'un identifiant pour la localiser, une URL " +"par exemple." #: ../Doc/reference/import.rst:229 msgid "" "The import machinery is extensible, so new finders can be added to extend " "the range and scope of module searching." msgstr "" +"Le mécanisme d'importation est extensible, vous pouvez donc ajouter de " +"nouveaux chercheurs pour étendre le domaine de recherche des modules." #: ../Doc/reference/import.rst:232 msgid "" @@ -302,6 +429,10 @@ msgid "" "related information, which the import machinery then uses when loading the " "module." msgstr "" +"Les chercheurs ne chargent pas les modules. S'il trouve le module demandé, " +"un chercheur renvoie un :dfn:`spécificateur de module`, qui contient toutes " +"les informations nécessaires pour importer le module ; celui-ci sera alors " +"utilisé par le mécanisme d'importation pour charger le module." #: ../Doc/reference/import.rst:236 msgid "" @@ -309,6 +440,9 @@ msgid "" "detail, including how you can create and register new ones to extend the " "import machinery." msgstr "" +"Les sections suivantes décrivent plus en détail le protocole utilisé par les " +"chercheurs et les chargeurs, y compris la manière de les créer et les " +"enregistrer pour étendre le mécanisme d'importation." #: ../Doc/reference/import.rst:240 msgid "" @@ -316,10 +450,14 @@ msgid "" "directly, whereas now they return module specs which *contain* loaders. " "Loaders are still used during import but have fewer responsibilities." msgstr "" +"Dans les versions précédentes de Python, les chercheurs renvoyaient " +"directement les :term:`chargeurs `. Dorénavant, ils renvoient des " +"spécificateurs de modules qui *contiennent* les chargeurs. Les chargeurs " +"sont encore utilisés lors de l'importation mais ont moins de responsabilités." #: ../Doc/reference/import.rst:246 msgid "Import hooks" -msgstr "" +msgstr "Points d'entrées automatiques pour l'importation" #: ../Doc/reference/import.rst:256 msgid "" @@ -327,6 +465,10 @@ msgid "" "this are the *import hooks*. There are two types of import hooks: *meta " "hooks* and *import path hooks*." msgstr "" +"Le mécanisme d'importation est conçu pour être extensible ; vous pouvez y " +"insérer des *points d'entrée automatique* (*hooks* en anglais). Il existe " +"deux types de points d'entrée automatique pour l'importation : les *méta-" +"points d'entrée* et les *points d'entrée sur le chemin des imports*." #: ../Doc/reference/import.rst:260 msgid "" @@ -336,6 +478,13 @@ msgid "" "modules, or even built-in modules. Meta hooks are registered by adding new " "finder objects to :data:`sys.meta_path`, as described below." msgstr "" +"Les méta-points d'entrée sont appelés au début du processus d'importation, " +"juste après la vérification dans le cache :data:`sys.modules` mais avant " +"tout le reste. Ceci permet aux méta-points d'entrée de surcharger le " +"traitement effectué sur :data:`sys.path`, les modules gelés ou même les " +"modules natifs. L'enregistrement des méta-points d'entrée se fait en " +"ajoutant de nouveaux objets chercheurs à :data:`sys.meta_path`, comme décrit " +"ci-dessous." #: ../Doc/reference/import.rst:266 msgid "" @@ -344,10 +493,15 @@ msgid "" "encountered. Import path hooks are registered by adding new callables to :" "data:`sys.path_hooks` as described below." msgstr "" +"Les points d'entrée sur le chemin des imports sont appelés pendant le " +"traitement de :data:`sys.path` (ou ``package.__path__``), au moment où le " +"chemin qui leur correspond est atteint. Les points d'entrée sur le chemin " +"des imports sont enregistrés en ajoutant de nouveaux appelables à :data:`sys." +"path_hooks`, comme décrit ci-dessous." #: ../Doc/reference/import.rst:273 msgid "The meta path" -msgstr "" +msgstr "Méta-chemins" #: ../Doc/reference/import.rst:279 msgid "" @@ -360,6 +514,15 @@ msgid "" "meta path finder can use any strategy it wants to determine whether it can " "handle the named module or not." msgstr "" +"Quand le module demandé n'est pas trouvé dans :data:`sys.modules`, Python " +"recherche alors dans :data:`sys.meta_path` qui contient une liste d'objets " +"chercheurs dans des méta-chemins. Ces chercheurs sont interrogés dans " +"l'ordre pour voir s'ils savent prendre en charge le module passé en " +"paramètre. Les chercheurs dans les méta-chemins implémentent une méthode :" +"meth:`~importlib.abc.MetaPathFinder.find_spec()` qui prend trois arguments : " +"un nom, un chemin d'import et (optionnellement) un module cible. Un " +"chercheur dans les méta-chemins peut utiliser n'importe quelle stratégie " +"pour déterminer s'il est apte à prendre en charge le module." #: ../Doc/reference/import.rst:288 msgid "" @@ -395,6 +558,16 @@ msgid "" "__path__, None)``. Once ``foo.bar`` has been imported, the final traversal " "will call ``mpf.find_spec(\"foo.bar.baz\", foo.bar.__path__, None)``." msgstr "" +"Le méta-chemin peut être parcouru plusieurs fois pour une seule requête " +"d'importation. Par exemple, si nous supposons qu'aucun des modules concernés " +"n'a déjà été mis en cache, importer ``truc.machin.bidule`` effectue une " +"première importation au niveau le plus haut, en appelant ``c_m_c." +"find_spec(\"truc\", None, None)`` pour chaque chercheur dans les méta-" +"chemins (``c_m_c``). Après que ``truc`` a été importé, ``truc.machin`` est " +"importé en parcourant le méta-chemin une deuxième fois, appelant ``c_m_c." +"find_spec(\"truc.machin\", truc.__path__, None)``. Une fois ``truc.machin`` " +"importé, le parcours final appelle ``c_m_c.find_spec(\"truc.machin.bidule\", " +"truc.machin.__path__, None)``." #: ../Doc/reference/import.rst:315 msgid "" @@ -402,6 +575,9 @@ msgid "" "always return ``None`` when anything other than ``None`` is passed as the " "second argument." msgstr "" +"Quelques chercheurs dans les méta-chemins ne gèrent que les importations de " +"plus haut niveau. Ces importateurs renvoient toujours ``None`` si on leur " +"passe un deuxième argument autre que ``None``." #: ../Doc/reference/import.rst:319 msgid "" @@ -410,6 +586,10 @@ msgid "" "modules, and one that knows how to import modules from an :term:`import " "path` (i.e. the :term:`path based finder`)." msgstr "" +"Le :data:`sys.meta_path` de Python comprend trois chercheurs par défaut : un " +"qui sait importer les modules natifs, un qui sait importer les modules gelés " +"et un qui sait importer les modules depuis un :term:`chemin des imports " +"` (c'est le :term:`chercheur dans path `)." #: ../Doc/reference/import.rst:324 msgid "" @@ -418,10 +598,15 @@ msgid "" "now deprecated. While it will continue to work without change, the import " "machinery will try it only if the finder does not implement ``find_spec()``." msgstr "" +"La méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` des chercheurs " +"dans les méta-chemins a remplacé :meth:`~importlib.abc.MetaPathFinder." +"find_module`, devenue obsolète. Bien qu'elle continue de fonctionner comme " +"avant, le mécanisme d'importation essaie ``find_module()`` uniquement si le " +"chercheur n'implémente pas ``find_spec()``." #: ../Doc/reference/import.rst:333 msgid "Loading" -msgstr "" +msgstr "Chargement" #: ../Doc/reference/import.rst:335 msgid "" @@ -429,16 +614,22 @@ msgid "" "the loader it contains) when loading the module. Here is an approximation " "of what happens during the loading portion of import::" msgstr "" +"Quand un spécificateur de module est trouvé, le mécanisme d'importation " +"l'utilise (et le chargeur qu'il contient) pour charger le module. Voici à " +"peu près ce qui se passe au sein de l'importation pendant la phase de " +"chargement ::" #: ../Doc/reference/import.rst:370 msgid "Note the following details:" -msgstr "" +msgstr "Notez les détails suivants :" #: ../Doc/reference/import.rst:372 msgid "" "If there is an existing module object with the given name in :data:`sys." "modules`, import will have already returned it." msgstr "" +"S'il existe un objet module dans :data:`sys.modules` avec le même nom, " +"import l'aurait déjà renvoyé." #: ../Doc/reference/import.rst:375 msgid "" @@ -448,6 +639,11 @@ msgid "" "prevents unbounded recursion in the worst case and multiple loading in the " "best." msgstr "" +"Le module existe dans :data:`sys.modules` avant que le chargeur exécute le " +"code du module. C'est crucial car le code du module peut (directement ou " +"indirectement) s'importer lui-même ; l'ajouter à :data:`sys.modules` avant " +"évite les récursions infinies dans le pire cas et le chargement multiple " +"dans le meilleur des cas." #: ../Doc/reference/import.rst:381 msgid "" @@ -457,6 +653,11 @@ msgid "" "effect, must remain in the cache. This contrasts with reloading where even " "the failing module is left in :data:`sys.modules`." msgstr "" +"Si le chargement échoue, le module en cause -- et seulement ce module -- est " +"enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys." +"modules` et tout module qui a été chargé avec succès par effet de bord doit " +"rester dans le cache. C'est différent dans le cas d'un rechargement où même " +"le module qui a échoué est conservé dans :data:`sys.modules`." #: ../Doc/reference/import.rst:387 msgid "" @@ -465,6 +666,11 @@ msgid "" "code example above), as summarized in a :ref:`later section `." msgstr "" +"Après que le module est créé mais avant son exécution, le mécanisme " +"d'importation définit les attributs relatifs à l'importation " +"(\"_init_module_attrs\" dans l'exemple de pseudo-code ci-dessus), comme " +"indiqué brièvement dans une :ref:`section ` que nous " +"abordons ensuite." #: ../Doc/reference/import.rst:392 msgid "" @@ -472,12 +678,17 @@ msgid "" "namespace gets populated. Execution is entirely delegated to the loader, " "which gets to decide what gets populated and how." msgstr "" +"L'exécution du module est le moment clé du chargement dans lequel l'espace " +"de noms du module est peuplé. L'exécution est entièrement déléguée au " +"chargeur qui doit décider ce qui est peuplé et comment." #: ../Doc/reference/import.rst:396 msgid "" "The module created during loading and passed to exec_module() may not be the " "one returned at the end of import [#fnlo]_." msgstr "" +"Le modulé créé pendant le chargement et passé à exec_module() peut ne pas " +"être celui qui est renvoyé à la fin de l'importation [#fnlo]_." #: ../Doc/reference/import.rst:399 msgid "" @@ -485,10 +696,13 @@ msgid "" "loaders. These were previously performed by the :meth:`importlib.abc.Loader." "load_module` method." msgstr "" +"Le système d'importation a pris en charge les responsabilités des chargeurs. " +"Celles-ci étaient auparavant effectuées par la méthode :meth:`importlib.abc." +"Loader.load_module`." #: ../Doc/reference/import.rst:405 msgid "Loaders" -msgstr "" +msgstr "Chargeurs" #: ../Doc/reference/import.rst:407 msgid "" @@ -497,10 +711,15 @@ msgid "" "method with a single argument, the module object to execute. Any value " "returned from :meth:`~importlib.abc.Loader.exec_module` is ignored." msgstr "" +"Les chargeurs de modules fournissent la fonction critique du chargement : " +"l'exécution du module. Le mécanisme d'importation appelle la méthode :meth:" +"`importlib.abc.Loader.exec_module` avec un unique argument, l'objet module à " +"exécuter. Toute valeur renvoyée par :meth:`~importlib.abc.Loader." +"exec_module` est ignorée." #: ../Doc/reference/import.rst:412 msgid "Loaders must satisfy the following requirements:" -msgstr "" +msgstr "Les chargeurs doivent satisfaire les conditions suivantes :" #: ../Doc/reference/import.rst:414 msgid "" @@ -508,6 +727,9 @@ msgid "" "dynamically loaded extension), the loader should execute the module's code " "in the module's global name space (``module.__dict__``)." msgstr "" +"Si le module est un module Python (par opposition aux modules natifs ou aux " +"extensions chargées dynamiquement), le chargeur doit exécuter le code du " +"module dans l'espace des noms globaux du module (``module.__dict__``)." #: ../Doc/reference/import.rst:418 msgid "" @@ -515,6 +737,9 @@ msgid "" "`ImportError`, although any other exception raised during :meth:`~importlib." "abc.Loader.exec_module` will be propagated." msgstr "" +"Si le chargeur ne peut pas exécuter le module, il doit lever une :exc:" +"`ImportError`, alors que toute autre exception levée durant :meth:" +"`~importlib.abc.Loader.exec_module` est propagée." #: ../Doc/reference/import.rst:422 msgid "" @@ -522,6 +747,9 @@ msgid "" "the :meth:`~importlib.abc.MetaPathFinder.find_spec` method would just return " "a spec with the loader set to ``self``." msgstr "" +"Souvent, le chercheur et le chargeur sont le même objet ; dans ce cas, la " +"méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` doit juste renvoyer " +"un spécificateur avec le chargeur défini à ``self``." #: ../Doc/reference/import.rst:426 msgid "" @@ -532,6 +760,13 @@ msgid "" "the module object. If the method returns ``None``, the import machinery " "will create the new module itself." msgstr "" +"Les chargeurs de modules peuvent choisir de créer l'objet module pendant le " +"chargement en implémentant une méthode :meth:`~importlib.abc.Loader." +"create_module`. Elle prend un argument, l'objet spécificateur du module et " +"renvoie le nouvel objet du module à utiliser pendant le chargement. Notez " +"que ``create_module()`` n'a besoin de définir aucun attribut sur l'objet " +"module. Si cette méthode renvoie ``None``, le mécanisme d'importation crée " +"le nouveau module lui-même." #: ../Doc/reference/import.rst:433 msgid "The create_module() method of loaders." @@ -543,6 +778,9 @@ msgid "" "`~importlib.abc.Loader.exec_module` and the import machinery assumed all the " "boilerplate responsibilities of loading." msgstr "" +"La méthode :meth:`~importlib.abc.Loader.load_module` a été remplacée par :" +"meth:`~importlib.abc.Loader.exec_module` et le mécanisme d'import assume " +"toutes les responsabilités du chargement." #: ../Doc/reference/import.rst:441 msgid "" @@ -551,6 +789,11 @@ msgid "" "also implement ``exec_module()``. However, ``load_module()`` has been " "deprecated and loaders should implement ``exec_module()`` instead." msgstr "" +"Par compatibilité avec les chargeurs existants, le mécanisme d'importation " +"utilise la méthode ``load_module()`` des chargeurs si elle existe et si le " +"chargeur n'implémente pas ``exec_module()``. Cependant, ``load_module()`` " +"est déclarée obsolète et les chargeurs doivent implémenter ``exec_module()`` " +"à la place." #: ../Doc/reference/import.rst:446 msgid "" @@ -558,6 +801,10 @@ msgid "" "functionality described above in addition to executing the module. All the " "same constraints apply, with some additional clarification:" msgstr "" +"La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités " +"de chargement décrites ci-dessus en plus de l'exécution du module. Toutes " +"les contraintes s'appliquent aussi, avec quelques précisions " +"supplémentaires :" #: ../Doc/reference/import.rst:450 msgid "" @@ -567,12 +814,20 @@ msgid "" "exist in :data:`sys.modules`, the loader must create a new module object and " "add it to :data:`sys.modules`." msgstr "" +"S'il y a un objet module existant avec le même nom dans :data:`sys.modules`, " +"le chargeur doit utiliser le module existant (sinon, :func:`importlib." +"reload` ne fonctionnera pas correctement). Si le module considéré n'est pas " +"trouvé dans :data:`sys.modules`, le chargeur doit créer un nouvel objet " +"module et l'ajouter à :data:`sys.modules`." #: ../Doc/reference/import.rst:456 msgid "" "The module *must* exist in :data:`sys.modules` before the loader executes " "the module code, to prevent unbounded recursion or multiple loading." msgstr "" +"Le module *doit* exister dans :data:`sys.modules` avant que le chargeur " +"n'exécute le code du module, afin d'éviter les récursions infinies ou le " +"chargement multiple." #: ../Doc/reference/import.rst:460 msgid "" @@ -580,6 +835,9 @@ msgid "" "data:`sys.modules`, but it must remove **only** the failing module(s), and " "only if the loader itself has loaded the module(s) explicitly." msgstr "" +"Si le chargement échoue, le chargeur ne doit enlever de :data:`sys.modules` " +"**que** le (ou les) module ayant échoué et seulement si le chargeur lui-même " +"a chargé le module explicitement." #: ../Doc/reference/import.rst:465 msgid "" @@ -590,7 +848,7 @@ msgstr "" #: ../Doc/reference/import.rst:471 msgid "Submodules" -msgstr "" +msgstr "Sous-modules" #: ../Doc/reference/import.rst:473 msgid "" @@ -601,16 +859,25 @@ msgid "" "``spam.foo``, ``spam`` will have an attribute ``foo`` which is bound to the " "submodule. Let's say you have the following directory structure::" msgstr "" +"Quand un sous-module est chargé, quel que soit le mécanisme (par exemple " +"avec les instructions ``import``, ``import-from`` ou avec la fonction native " +"``__import__()``), une liaison est créée dans l'espace de noms du module " +"parent vers l'objet sous-module. Par exemple, si le paquet ``spam`` possède " +"un sous-module ``foo``, après l'importation de ``spam.foo``, ``spam`` " +"possède un attribut ``foo`` qui est lié au sous-module. Supposons que nous " +"ayons l'arborescence suivante ::" #: ../Doc/reference/import.rst:485 msgid "and ``spam/__init__.py`` has the following lines in it::" -msgstr "" +msgstr "et que le contenu de ``spam/__init__.py`` soit ::" #: ../Doc/reference/import.rst:490 msgid "" "then executing the following puts a name binding to ``foo`` and ``bar`` in " "the ``spam`` module::" msgstr "" +"alors exécuter les lignes suivantes crée des liens vers ``foo`` et ``bar`` " +"dans le module ``spam`` ::" #: ../Doc/reference/import.rst:499 msgid "" @@ -620,10 +887,16 @@ msgid "" "foo']`` (as you would after the above import), the latter must appear as the " "``foo`` attribute of the former." msgstr "" +"Connaissant la façon habituelle dont Python effectue les liens, cela peut " +"sembler surprenant. Mais c'est en fait une fonctionnalité fondamentale du " +"système d'importation. Si vous avez quelque part ``sys.modules['spam']`` et " +"``sys.modules['spam.foo']`` (comme dans c'est le cas ci-dessus après " +"l'importation), alors le dernier doit apparaître comme l'attribut ``foo`` du " +"premier." #: ../Doc/reference/import.rst:506 msgid "Module spec" -msgstr "" +msgstr "Spécificateurs de modules" #: ../Doc/reference/import.rst:508 msgid "" @@ -632,6 +905,11 @@ msgid "" "modules. The purpose of a module's spec is to encapsulate this import-" "related information on a per-module basis." msgstr "" +"Le mécanisme d'importation utilise diverses informations de chaque module " +"pendant l'importation, spécialement avant le chargement. La plupart de ces " +"informations sont communes à tous les modules. Le but d'un spécificateur de " +"module est d'encapsuler ces informations relatives à l'importation au sein " +"de chaque module." #: ../Doc/reference/import.rst:513 msgid "" @@ -641,6 +919,12 @@ msgid "" "machinery to perform the boilerplate operations of loading, whereas without " "a module spec the loader had that responsibility." msgstr "" +"Utiliser un spécificateur pendant l'importation permet de transférer l'état " +"entre les composants du système d'importation, par exemple entre le " +"chercheur qui crée le spécificateur de module et le chargeur qui l'exécute. " +"Surtout, cela permet au mécanisme d'importation d'effectuer toutes les " +"opérations classiques de chargement, alors que c'était le chargeur qui en " +"avait la responsabilité quand il n'y avait pas de spécificateur." #: ../Doc/reference/import.rst:519 msgid "" @@ -650,13 +934,16 @@ msgstr "" #: ../Doc/reference/import.rst:527 msgid "Import-related module attributes" -msgstr "" +msgstr "Attributs des modules importés" #: ../Doc/reference/import.rst:529 msgid "" "The import machinery fills in these attributes on each module object during " "loading, based on the module's spec, before the loader executes the module." msgstr "" +"Le mécanisme d'importation renseigne ces attributs pour chaque objet module " +"pendant le chargement, sur la base du spécificateur de module et avant que " +"le chargeur n'exécute le module." #: ../Doc/reference/import.rst:535 msgid "" @@ -664,6 +951,9 @@ msgid "" "module. This name is used to uniquely identify the module in the import " "system." msgstr "" +"L'attribut ``__name__`` doit contenir le nom complètement qualifié du " +"module. Ce nom est utilisé pour identifier de manière non équivoque le " +"module dans le mécanisme d'importation." #: ../Doc/reference/import.rst:541 msgid "" @@ -672,6 +962,11 @@ msgid "" "introspection, but can be used for additional loader-specific functionality, " "for example getting data associated with a loader." msgstr "" +"L'attribut ``__loader__`` doit pointer vers l'objet chargeur que le " +"mécanisme d'importation a utilisé pour charger le module. L'utilisation " +"principale concerne l'introspection, mais il peut être utilisé pour d'autres " +"fonctionnalités relatives au chargement. Par exemple, obtenir des données " +"par l'intermédiaire du chargeur." #: ../Doc/reference/import.rst:548 msgid "" @@ -682,6 +977,13 @@ msgid "" "string for top-level modules, or for submodules, to the parent package's " "name. See :pep:`366` for further details." msgstr "" +"L'attribut ``__package__`` du module doit être défini. Sa valeur doit être " +"une chaîne de caractères, qui peut être la même que son attribut " +"``__name__``. Quand le module est un paquet, la valeur de ``__package__`` " +"doit être définie à la même valeur que son ``__name__``. Quand le module " +"n'est pas un paquet, ``__package__`` doit être la chaîne vide pour les " +"modules de niveau le plus haut, et le nom du paquet parent pour les sous-" +"modules. Voir la :pep:`366` pour plus de détails." #: ../Doc/reference/import.rst:556 msgid "" @@ -708,10 +1010,18 @@ msgid "" "details on the semantics of ``__path__`` are given :ref:`below `." msgstr "" +"Si le module est un paquet (classique ou espace de noms), l'attribut " +"``__path__`` de l'objet module doit être défini. La valeur doit être un " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " +"lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " +"``__path__`` :ref:`plus loin ci-dessous `." #: ../Doc/reference/import.rst:579 msgid "Non-package modules should not have a ``__path__`` attribute." msgstr "" +"Les modules qui ne sont pas des paquets ne doivent pas avoir d'attribut " +"``__path__``." #: ../Doc/reference/import.rst:584 msgid "" @@ -719,6 +1029,10 @@ msgid "" "The import system may opt to leave ``__file__`` unset if it has no semantic " "meaning (e.g. a module loaded from a database)." msgstr "" +"``__file__`` est optionnel. S'il est défini, la valeur de cet attribut doit " +"être une chaîne. Le système d'importation peut décider de laisser " +"``__file__`` indéfini si cela ne fait pas sens de le définir (par exemple, " +"lorsqu'on charge un module depuis une base de données)." #: ../Doc/reference/import.rst:588 msgid "" @@ -728,6 +1042,11 @@ msgid "" "path can simply point to where the compiled file would exist (see :pep:" "`3147`)." msgstr "" +"Si ``__file__`` est défini, il peut être judicieux de définir l'attribut " +"``__cached__`` dont la valeur est le chemin vers une version compilée du " +"code (par exemple, le fichier bytecode). Le fichier n'a pas besoin d'exister " +"pour définir cet attribut : le chemin peut simplement pointer vers l'endroit " +"où le fichier compilé aurait été placé (voir la :pep:`3147`)." #: ../Doc/reference/import.rst:594 msgid "" @@ -737,6 +1056,11 @@ msgid "" "from a cached module but otherwise does not load from a file, that atypical " "scenario may be appropriate." msgstr "" +"Vous pouvez aussi définir ``__cached__`` quand ``__file__`` n'est pas " +"défini. Cependant, ce scénario semble rare. Au final, c'est le chargeur qui " +"utilise les valeurs de ``__file__`` ou ``__cached__``. Donc, si le chargeur " +"peut charger depuis un module mis en cache mais ne peut pas charger depuis " +"un fichier, ce scénario a du sens." #: ../Doc/reference/import.rst:603 msgid "module.__path__" @@ -756,6 +1080,11 @@ msgid "" "during import. However, ``__path__`` is typically much more constrained " "than :data:`sys.path`." msgstr "" +"L'attribut ``__path__`` d'un paquet est utilisé pendant l'importation des " +"sous-paquets. Dans le mécanisme d'importation, son fonctionnement ressemble " +"beaucoup à :data:`sys.path`, c'est-à-dire qu'il fournit une liste " +"d'emplacements où rechercher les modules pendant l'importation. Cependant, " +"``__path__`` est beaucoup plus contraint que :data:`sys.path`." #: ../Doc/reference/import.rst:614 msgid "" @@ -764,6 +1093,10 @@ msgid "" "data:`sys.path_hooks` (described below) are consulted when traversing a " "package's ``__path__``." msgstr "" +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " +"``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " +"donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." #: ../Doc/reference/import.rst:619 msgid "" @@ -774,10 +1107,17 @@ msgid "" "``__path__`` manipulation code; the import machinery automatically sets " "``__path__`` correctly for the namespace package." msgstr "" +"Le fichier ``__init__.py`` d'un paquet peut définir ou modifier l'attribut " +"``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" +"espaces de noms avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, les " +"paquets-espaces de noms n'ont plus besoin d'avoir des fichiers ``__init__." +"py`` qui ne font que de la manipulation de ``__path__`` ; le mécanisme " +"d'importation définit automatiquement ``__path__`` correctement pour un " +"paquet-espace de noms." #: ../Doc/reference/import.rst:627 msgid "Module reprs" -msgstr "" +msgstr "Représentation textuelle d'un module" #: ../Doc/reference/import.rst:629 msgid "" @@ -785,6 +1125,10 @@ msgid "" "attributes set above, and in the module's spec, you can more explicitly " "control the repr of module objects." msgstr "" +"Par défaut, tous les modules ont une représentation textuelle utilisable. " +"Cependant, en utilisant les attributs définis ci-dessus et dans le " +"spécificateur de module, vous pouvez explicitement mieux contrôler " +"l'affichage des objets modules." #: ../Doc/reference/import.rst:633 msgid "" @@ -795,10 +1139,17 @@ msgid "" "__file__``, and ``module.__loader__`` as input into the repr, with defaults " "for whatever information is missing." msgstr "" +"Si le module possède un spécificateur (``__spec__``), le mécanisme " +"d'importation essaie de générer une représentation avec celui-ci. S'il " +"échoue ou s'il n'y a pas de spécificateur, le système d'importation " +"construit une représentation par défaut en utilisant toute information " +"disponible sur le module. Il tente d'utiliser ``module.__name__``, ``module." +"__file__`` et ``module.__loader__`` comme entrées pour la représentation, " +"avec des valeurs par défaut lorsque l'information est manquante." #: ../Doc/reference/import.rst:640 msgid "Here are the exact rules used:" -msgstr "" +msgstr "Les règles exactes utilisées sont :" #: ../Doc/reference/import.rst:642 msgid "" @@ -806,22 +1157,31 @@ msgid "" "used to generate the repr. The \"name\", \"loader\", \"origin\", and " "\"has_location\" attributes are consulted." msgstr "" +"Si le module possède un attribut ``__spec__``, la valeur est utilisée pour " +"générer la représentation. Les attributs \"name\", \"loader\", \"origin\" et " +"\"has_location\" sont consultés." #: ../Doc/reference/import.rst:646 msgid "" "If the module has a ``__file__`` attribute, this is used as part of the " "module's repr." msgstr "" +"Si le module possède un attribut ``__file__``, il est utilisé pour " +"construire la représentation du module." #: ../Doc/reference/import.rst:649 msgid "" "If the module has no ``__file__`` but does have a ``__loader__`` that is not " "``None``, then the loader's repr is used as part of the module's repr." msgstr "" +"Si le module ne possède pas d'attribut ``__file__`` mais possède un " +"``__loader__`` qui n'est pas ``None``, alors la représentation du chargeur " +"est utilisée pour construire la représentation du module." #: ../Doc/reference/import.rst:652 msgid "Otherwise, just use the module's ``__name__`` in the repr." msgstr "" +"Sinon, il utilise juste le ``__name__`` du module dans la représentation." #: ../Doc/reference/import.rst:654 msgid "" @@ -829,6 +1189,10 @@ msgid "" "been deprecated and the module spec is now used by the import machinery to " "generate a module repr." msgstr "" +"L'utilisation de :meth:`loader.module_repr() ` est devenue obsolète et le spécificateur de module est utilisé " +"dorénavant par le mécanisme d'importation pour générer la représentation " +"textuelle du module." #: ../Doc/reference/import.rst:659 msgid "" @@ -837,10 +1201,14 @@ msgid "" "method, if defined, before trying either approach described above. However, " "the method is deprecated." msgstr "" +"Par compatibilité descendante avec Python 3.3, la représentation textuelle " +"du module est générée en appelant la méthode :meth:`~importlib.abc.Loader." +"module_repr` du chargeur, si elle est définie, avant même d'essayer " +"l'approche décrite ci-dessus. Cependant, cette méthode est obsolète." #: ../Doc/reference/import.rst:666 msgid "The Path Based Finder" -msgstr "" +msgstr "Le chercheur dans path" #: ../Doc/reference/import.rst:671 msgid "" @@ -850,6 +1218,12 @@ msgid "" "contains a list of :term:`path entries `. Each path entry names " "a location to search for modules." msgstr "" +"Comme indiqué précédemment, Python est livré par défaut avec plusieurs " +"chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " +"path ` (:class:`~importlib.machinery.PathFinder`), " +"recherche dans le :term:`chemin des imports ` qui contient une " +"liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"emplacement où rechercher des modules." #: ../Doc/reference/import.rst:677 msgid "" @@ -857,6 +1231,10 @@ msgid "" "it traverses the individual path entries, associating each of them with a " "path entry finder that knows how to handle that particular kind of path." msgstr "" +"Le chercheur dans path en tant que tel ne sait pas comment importer quoi que " +"ce soit. Il ne fait que parcourir chaque entrée de \"path\" et associe à " +"chacune d'elle un \"chercheur d'entrée dans path\" qui sait comment gérer le " +"type particulier de chemin considéré." #: ../Doc/reference/import.rst:681 msgid "" @@ -868,6 +1246,14 @@ msgid "" "also handle loading all of these file types (other than shared libraries) " "from zipfiles." msgstr "" +"L'ensemble par défaut des \"chercheurs d'entrée dans path\" implémente toute " +"la sémantique pour trouver des modules dans le système de fichiers, gérer " +"des fichiers spéciaux tels que le code source Python (fichiers ``.py``), le " +"bytecode Python (fichiers ``.pyc``) et les bibliothèques partagées (par " +"exemple les fichiers ``.so``). Quand le module :mod:`zipimport` de la " +"bibliothèque standard le permet, les \"chercheurs d'entrée dans path\" par " +"défaut savent aussi gérer tous ces types de fichiers (autres que les " +"bibliothèques partagées) encapsulés dans des fichiers zip." #: ../Doc/reference/import.rst:688 msgid "" @@ -875,6 +1261,9 @@ msgid "" "to URLs, database queries, or any other location that can be specified as a " "string." msgstr "" +"Les chemins ne sont pas limités au système de fichiers. Ils peuvent faire " +"référence à des URL, des requêtes dans des bases de données ou tout autre " +"emplacement qui peut être spécifié dans une chaîne de caractères." #: ../Doc/reference/import.rst:692 msgid "" @@ -886,6 +1275,15 @@ msgid "" "protocol described below, which was then used to get a loader for the module " "from the web." msgstr "" +"Le chercheur dans path fournit aussi des points d'entrées (ou *hooks*) et " +"des protocoles de manière à pouvoir étendre et personnaliser les types de " +"chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " +"dans des URL réseau, vous pouvez écrire une fonction \"point d'entrée\" qui " +"implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " +"point d'entrée (qui doit être un *callable*) doit renvoyer un :term:" +"`chercheur d'entrée dans path ` qui gère le protocole " +"décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " +"la toile." #: ../Doc/reference/import.rst:700 msgid "" @@ -897,6 +1295,15 @@ msgid "" "In particular, meta path finders operate at the beginning of the import " "process, as keyed off the :data:`sys.meta_path` traversal." msgstr "" +"Avertissement : cette section et la précédente utilisent toutes les deux le " +"terme *chercheur*, dans un cas :term:`chercheur dans les méta-chemins ` et dans l'autre :term:`chercheur d'entrée dans path `. Ces deux types de chercheurs sont très similaires, gèrent " +"des protocoles similaires et fonctionnent de manière semblable pendant le " +"processus d'importation, mais il est important de garder à l'esprit qu'ils " +"sont subtilement différents. En particulier, les chercheurs dans les méta-" +"chemins opèrent au début du processus d'importation, comme clé de parcours " +"de :data:`sys.meta_path`." #: ../Doc/reference/import.rst:708 msgid "" @@ -905,10 +1312,14 @@ msgid "" "removed from :data:`sys.meta_path`, none of the path entry finder semantics " "would be invoked." msgstr "" +"Au contraire, les \"chercheurs d'entrée dans path\" sont, dans un sens, un " +"détail d'implémentation du chercheur dans path et, en fait, si le chercheur " +"dans path était enlevé de :data:`sys.meta_path`, aucune des sémantiques des " +"\"chercheurs d'entrée dans path\" ne serait invoquée." #: ../Doc/reference/import.rst:715 msgid "Path entry finders" -msgstr "" +msgstr "Chercheurs d'entrée dans path" #: ../Doc/reference/import.rst:723 msgid "" @@ -917,6 +1328,12 @@ msgid "" "entry`. Most path entries name locations in the file system, but they need " "not be limited to this." msgstr "" +"Le :term:`chercheur dans path ` (*path based finder* en " +"anglais) est responsable de trouver et charger les modules et les paquets " +"Python dont l'emplacement est spécifié par une chaîne dite :term:`d'entrée " +"dans path `. La plupart de ces entrées désignent des " +"emplacements sur le système de fichiers, mais il n'y a aucune raison de les " +"limiter à ça." #: ../Doc/reference/import.rst:728 msgid "" @@ -925,6 +1342,12 @@ msgid "" "however it exposes additional hooks that can be used to customize how " "modules are found and loaded from the :term:`import path`." msgstr "" +"En tant que chercheur dans les méta-chemins, un :term:`chercheur dans path " +"` implémente le protocole :meth:`~importlib.abc." +"MetaPathFinder.find_spec` décrit précédemment. Cependant, il autorise des " +"points d'entrée (*hooks* en anglais) supplémentaires qui peuvent être " +"utilisés pour personnaliser la façon dont les modules sont trouvés et " +"chargés depuis le :term:`chemin des imports `." #: ../Doc/reference/import.rst:733 msgid "" @@ -933,6 +1356,11 @@ msgid "" "``__path__`` attributes on package objects are also used. These provide " "additional ways that the import machinery can be customized." msgstr "" +"Trois variables sont utilisées par le :term:`chercheur dans path ` : :data:`sys.path`, :data:`sys.path_hooks` et :data:`sys." +"path_importer_cache`. L'attribut ``__path__`` des objets paquets est aussi " +"utilisé. Il permet de personnaliser encore davantage le mécanisme " +"d'importation." #: ../Doc/reference/import.rst:738 msgid "" @@ -946,6 +1374,17 @@ msgid "" "path`; all other data types are ignored. The encoding of bytes entries is " "determined by the individual :term:`path entry finders `." msgstr "" +":data:`sys.path` contient une liste de chaînes de caractères indiquant des " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " +"autres valeurs par défaut qui dépendent de l'installation et de " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" +"\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " +"bases de données où Python doit rechercher des modules. :data:`sys.path` ne " +"doit contenir que des chaînes de caractères ou d'octets ; tous les autres " +"types sont ignorés. L'encodage des entrées de chaînes d'octets est déterminé " +"par chaque :term:`chercheur d'entrée dans path `." #: ../Doc/reference/import.rst:749 msgid "" @@ -958,6 +1397,16 @@ msgid "" "within that package. If the ``path`` argument is ``None``, this indicates a " "top level import and :data:`sys.path` is used." msgstr "" +"Le :term:`chercheur dans path ` est un :term:`chercheur " +"dans les méta-chemins `, donc le mécanisme d'importation " +"commence la recherche dans le :term:`chemin des imports ` par " +"un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` du " +"chercheur dans path, comme décrit précédemment. Quand l'argument ``path`` " +"de :meth:`~importlib.machinery.PathFinder.find_spec` est donné, c'est une " +"liste de chemins à parcourir - typiquement un attribut ``__path__`` pour une " +"importation à l'intérieur d'un paquet. Si l'argument ``path`` est ``None``, " +"cela indique une importation de niveau le plus haut et :data:`sys.path` est " +"utilisée." #: ../Doc/reference/import.rst:758 msgid "" @@ -974,6 +1423,20 @@ msgid "" "cache entries from :data:`sys.path_importer_cache` forcing the path based " "finder to perform the path entry search again [#fnpic]_." msgstr "" +"Le chercheur dans path itère sur chaque entrée dans le \"path\" et, pour " +"chacune, regarde s'il trouve un :term:`chercheur d'entrée dans path ` (:class:`~importlib.abc.PathEntryFinder`) approprié à cette " +"entrée. Comme cette opération est coûteuse (elle peut faire appel à " +"plusieurs `stat()` pour cela), le chercheur dans path maintient un cache de " +"correspondance entre les entrées et les \"chercheurs d'entrée dans path\". " +"Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son nom, " +"ce cache stocke les objets chercheurs plutôt que les simples objets :term:" +"`importateurs `). Ainsi, la recherche coûteuse pour une :term:" +"`entrée de path ` spécifique n'a besoin d'être effectuée qu'une " +"seule fois par le :term:`chercheur d'entrée dans path `. " +"Le code de l'utilisateur peut très bien supprimer les entrées du cache :data:" +"`sys.path_importer_cache`, forçant ainsi le chercheur dans path à effectuer " +"une nouvelle fois la recherche sur chaque entrée [#fnpic]_." #: ../Doc/reference/import.rst:771 msgid "" @@ -990,6 +1453,21 @@ msgid "" "file system encoding, UTF-8, or something else), and if the hook cannot " "decode the argument, it should raise :exc:`ImportError`." msgstr "" +"Si une entrée n'est pas présente dans le cache, le chercheur dans path itère " +"sur chaque *callable* de :data:`sys.path_hooks`. Chaque :term:`point " +"d'entrée sur une entrée de path ` de cette liste est appelé " +"avec un unique argument, l'entrée dans laquelle chercher. L'appelable peut " +"soit renvoyer un :term:`chercheur d'entrée dans path ` " +"apte à prendre en charge l'entrée ou lever une :exc:`ImportError`. Une :exc:" +"`ImportError` est utilisée par le chercheur dans path pour signaler que le " +"point d'entrée n'a pas trouvé de :term:`chercheur d'entrée dans path ` pour cette :term:`entrée `. L'exception est " +"ignorée et l'itération sur le :term:`chemin des imports ` se " +"poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne de " +"caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est à " +"la main du point d'entrée (par exemple, ce peut être l'encodage du système " +"de fichiers, de l'UTF-8 ou autre chose) et, si le point d'entrée n'arrive " +"pas à décoder l'argument, il doit lever une :exc:`ImportError`." #: ../Doc/reference/import.rst:785 msgid "" @@ -1000,6 +1478,13 @@ msgid "" "entry) and return ``None``, indicating that this :term:`meta path finder` " "could not find the module." msgstr "" +"Si l'itération sur :data:`sys.path_hooks` se termine sans qu'aucun :term:" +"`chercheur d'entrée dans path ` ne soit renvoyé, alors la " +"méthode :meth:`~importlib.machinery.PathFinder.find_spec` du chercheur dans " +"path stocke ``None`` dans le :data:`sys.path_importer_cache` (pour indiquer " +"qu'il n'y a pas de chercheur pour cette entrée) et renvoie ``None``, " +"indiquant que ce :term:`chercheur dans les méta-chemins ` " +"n'a pas trouvé le module." #: ../Doc/reference/import.rst:792 msgid "" @@ -1008,6 +1493,11 @@ msgid "" "used to ask the finder for a module spec, which is then used when loading " "the module." msgstr "" +"Si un :term:`chercheur d'entrée dans path ` *est* renvoyé " +"par un des :term:`points d'entrée ` de :data:`sys." +"path_hooks`, alors le protocole suivant est utilisé pour demander un " +"spécificateur de module au chercheur, spécificateur qui sera utilisé pour " +"charger le module." #: ../Doc/reference/import.rst:797 msgid "" @@ -1020,10 +1510,19 @@ msgid "" "machinery.PathFinder.find_spec` will be the actual current working directory " "and not the empty string." msgstr "" +"Le répertoire de travail courant -- noté sous la forme d'une chaîne de " +"caractères vide -- est géré d'une manière légèrement différente des autres " +"entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " +"s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." +"path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " +"courant est vérifiée à chaque recherche de module. Enfin, le chemin utilisé " +"pour :data:`sys.path_importer_cache` et renvoyée par :meth:`importlib." +"machinery.PathFinder.find_spec` est le nom réel du répertoire de travail " +"courant et non pas la chaîne vide." #: ../Doc/reference/import.rst:807 msgid "Path entry finder protocol" -msgstr "" +msgstr "Protocole des chercheurs d'entrée dans path" #: ../Doc/reference/import.rst:809 msgid "" @@ -1031,6 +1530,10 @@ msgid "" "contribute portions to namespace packages, path entry finders must implement " "the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." msgstr "" +"Afin de gérer les importations de modules, l'initialisation des paquets et " +"d'être capables de contribuer aux portions des paquets-espaces de noms, les " +"chercheurs d'entrée dans path doivent implémenter la méthode :meth:" +"`~importlib.abc.PathEntryFinder.find_spec`." #: ../Doc/reference/import.rst:813 msgid "" @@ -1039,6 +1542,11 @@ msgid "" "module. ``find_spec()`` returns a fully populated spec for the module. This " "spec will always have \"loader\" set (with one exception)." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` prend deux " +"arguments, le nom complètement qualifié du module en cours d'importation et " +"(optionnellement) le module cible. ``find_spec()`` renvoie un spécificateur " +"de module pleinement peuplé. Ce spécificateur doit avoir son chargeur " +"(attribut \"loader\" ) défini, à une exception près." #: ../Doc/reference/import.rst:818 msgid "" @@ -1046,6 +1554,10 @@ msgid "" "term:`portion`. the path entry finder sets \"loader\" on the spec to " "``None`` and \"submodule_search_locations\" to a list containing the portion." msgstr "" +"Pour indiquer au mécanisme d'importation que le spécificateur représente " +"une :term:`portion ` d'un espace de noms, le chercheur d'entrée " +"dans path définit le chargeur du spécificateur à ``None`` et l'attribut " +"\"submodule_search_locations\" à une liste contenant la portion." #: ../Doc/reference/import.rst:823 msgid "" @@ -1054,6 +1566,10 @@ msgid "" "find_module`, both of which are now deprecated, but will be used if " "``find_spec()`` is not defined." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` remplace :meth:" +"`~importlib.abc.PathEntryFinder.find_loader` et :meth:`~importlib.abc." +"PathEntryFinder.find_module`, ces deux méthodes étant dorénavant obsolètes " +"mais restant utilisées si ``find_spec()`` n'est pas définie." #: ../Doc/reference/import.rst:829 msgid "" @@ -1062,6 +1578,11 @@ msgid "" "backward compatibility. However, if ``find_spec()`` is implemented on the " "path entry finder, the legacy methods are ignored." msgstr "" +"Les vieux chercheurs d'entrée dans path peuvent implémenter une des deux " +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont " +"toujours prises en compte dans le cadre de la compatibilité descendante. " +"Cependant, si ``find_spec()`` est implémentée par le chercheur d'entrée dans " +"path, les méthodes historiques sont ignorées." #: ../Doc/reference/import.rst:834 msgid "" @@ -1077,6 +1598,18 @@ msgid "" "the loader, the second item of the 2-tuple return value must be a sequence, " "although it can be empty." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_loader` prend un " +"argument, le nom complètement qualifié du module en cours d'importation. " +"``find_loader()`` renvoie un couple dont le premier élément est le chargeur " +"et le second est une :term:`portion ` d'espace de noms. Quand le " +"premier élément (c'est-à-dire le chargeur) est ``None``, cela signifie que, " +"bien que le chercheur d'entrée dans path n'a pas de chargeur pour le module " +"considéré, il sait que cette entrée contribue à une portion d'espace de noms " +"pour le module considéré. C'est presque toujours le cas quand vous demandez " +"à Python d'importer un paquet-espace de noms qui n'est pas présent " +"physiquement sur le système de fichiers. Quand un chercheur d'entrée dans " +"path renvoie ``None`` pour le chargeur, la valeur du second élément du " +"couple renvoyé doit être une séquence, éventuellement vide." #: ../Doc/reference/import.rst:846 msgid "" @@ -1084,6 +1617,9 @@ msgid "" "ignored and the loader is returned from the path based finder, terminating " "the search through the path entries." msgstr "" +"Si ``find_loader()`` renvoie une valeur de chargeur qui n'est pas ``None``, " +"la portion est ignorée et le chargeur est renvoyé par le chercheur dans " +"path, mettant un terme à la recherche dans les chemins." #: ../Doc/reference/import.rst:850 msgid "" @@ -1094,6 +1630,13 @@ msgid "" "(they are expected to record the appropriate path information from the " "initial call to the path hook)." msgstr "" +"À fin de compatibilité descendante avec d'autres implémentations du " +"protocole d'importation, beaucoup de chercheurs d'entrée dans path gèrent " +"aussi la méthode traditionnelle ``find_module()`` que l'on trouve dans les " +"chercheurs dans les méta-chemins. Cependant, les méthodes ``find_module()`` " +"des chercheurs d'entrée dans path ne sont jamais appelées avec un argument " +"``path`` (il est convenu qu'elles enregistrent les informations relatives au " +"chemin approprié au moment de leur appel initial au point d'entrée)." #: ../Doc/reference/import.rst:857 msgid "" @@ -1103,10 +1646,16 @@ msgid "" "entry finder, the import system will always call ``find_loader()`` in " "preference to ``find_module()``." msgstr "" +"La méthode ``find_module()`` des chercheurs d'entrée dans path est obsolète " +"car elle n'autorise pas le chercheur d'entrée dans path à contribuer aux " +"portions d'espaces de noms des paquets-espaces de noms. Si à la fois " +"``find_loader()`` et ``find_module()`` sont définies pour un chercheur " +"d'entrée dans path, le système d'importation utilise toujours " +"``find_loader()`` plutôt que ``find_module()``." #: ../Doc/reference/import.rst:865 msgid "Replacing the standard import system" -msgstr "" +msgstr "Remplacement du système d'importation standard" #: ../Doc/reference/import.rst:867 msgid "" @@ -1114,6 +1663,9 @@ msgid "" "delete the default contents of :data:`sys.meta_path`, replacing them " "entirely with a custom meta path hook." msgstr "" +"La manière la plus fiable de remplacer tout le système d'importation est de " +"supprimer le contenu par défaut de :data:`sys.meta_path` et de le remplacer " +"complètement par un chercheur dans les méta-chemins sur mesure." #: ../Doc/reference/import.rst:871 msgid "" @@ -1123,6 +1675,11 @@ msgid "" "also be employed at the module level to only alter the behaviour of import " "statements within that module." msgstr "" +"S'il convient juste de modifier le comportement de l'instruction import sans " +"affecter les autres API qui utilisent le système d'importation, alors " +"remplacer la fonction native :func:`__import__` peut être suffisant. Cette " +"technique peut aussi être employée au niveau d'un module pour n'altérer le " +"comportement des importations qu'à l'intérieur de ce module." #: ../Doc/reference/import.rst:877 msgid "" @@ -1136,7 +1693,7 @@ msgstr "" #: ../Doc/reference/import.rst:886 msgid "Special considerations for __main__" -msgstr "" +msgstr "Cas particulier de __main__" #: ../Doc/reference/import.rst:888 msgid "" @@ -1148,16 +1705,25 @@ msgid "" "initialized depends on the flags and other options with which the " "interpreter is invoked." msgstr "" +"Le module :mod:`__main__` est un cas particulier pour le système " +"d'importation de Python. Comme indiqué par :ref:`ailleurs `, le " +"module ``__main__`` est initialisé directement au démarrage de " +"l'interpréteur, un peu comme :mod:`sys` et :mod:`builtins`. Cependant, au " +"contraire des deux cités précédemment, ce n'est pas vraiment un module " +"natif. Effectivement, la manière dont est initialisé ``__main__`` dépend des " +"drapeaux et options avec lesquels l'interpréteur est lancé." #: ../Doc/reference/import.rst:899 msgid "__main__.__spec__" -msgstr "" +msgstr "__main__.__spec__" #: ../Doc/reference/import.rst:901 msgid "" "Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " "set appropriately or to ``None``." msgstr "" +"En fonction de la manière dont :mod:`__main__` est initialisé, ``__main__." +"__spec__`` est défini de manière conforme ou mis à ``None``." #: ../Doc/reference/import.rst:904 msgid "" @@ -1166,6 +1732,11 @@ msgid "" "populated when the ``__main__`` module is loaded as part of executing a " "directory, zipfile or other :data:`sys.path` entry." msgstr "" +"Quand Python est démarré avec l'option :option:`-m`, ``__spec__`` est défini " +"à la valeur du spécificateur du module ou paquet correspondant. Python " +"peuple aussi ``__spec__`` quand le module ``__main__`` est chargé en tant " +"que partie de l'exécution d'un répertoire, d'un fichier zip ou d'une entrée " +"de :data:`sys.path`." #: ../Doc/reference/import.rst:909 msgid "" @@ -1173,22 +1744,25 @@ msgid "" "__spec__`` is set to ``None``, as the code used to populate the :mod:" "`__main__` does not correspond directly with an importable module:" msgstr "" +"Dans :ref:`les autres cas `, ``__main__." +"__spec__`` est mis à ``None``, car le code qui peuple :mod:`__main__` ne " +"trouve pas de correspondance directe avec un module que l'on importe :" #: ../Doc/reference/import.rst:913 msgid "interactive prompt" -msgstr "" +msgstr "invite de commande interactive" #: ../Doc/reference/import.rst:914 msgid "-c switch" -msgstr "" +msgstr "option -c de la ligne de commande" #: ../Doc/reference/import.rst:915 msgid "running from stdin" -msgstr "" +msgstr "lecture depuis l'entrée standard" #: ../Doc/reference/import.rst:916 msgid "running directly from a source or bytecode file" -msgstr "" +msgstr "lecture depuis un fichier de code source ou de bytecode" #: ../Doc/reference/import.rst:918 msgid "" @@ -1197,6 +1771,10 @@ msgid "" "the :option:`-m` switch if valid module metadata is desired in :mod:" "`__main__`." msgstr "" +"Notez que ``__main__.__spec__`` vaut toujours ``None`` dans le dernier cas, " +"*même si* le fichier pourrait techniquement être importé directement en tant " +"que module. Utilisez l'option :option:`-m` si vous souhaitez disposer de " +"métadonnées valides du module dans :mod:`__main__`." #: ../Doc/reference/import.rst:923 msgid "" @@ -1206,6 +1784,12 @@ msgid "" "__name__ == \"__main__\":`` checks only execute when the module is used to " "populate the ``__main__`` namespace, and not during normal import." msgstr "" +"Notez aussi que même quand ``__main__`` correspond à un module importable et " +"que ``__main__.__spec__`` est défini en conséquence, ils seront toujours " +"considérés comme des modules *distincts*. Cela est dû au fait que le bloc " +"encadré par ``if __name__ == \"__main__\":`` ne s'exécute que quand le " +"module est utilisé pour peupler l'espace de noms de ``__main__``, et pas " +"durant une importation normale." #: ../Doc/reference/import.rst:931 msgid "Open issues" @@ -1213,7 +1797,7 @@ msgstr "" #: ../Doc/reference/import.rst:933 msgid "XXX It would be really nice to have a diagram." -msgstr "" +msgstr "XXX Ce serait vraiment bien de disposer d'un diagramme." #: ../Doc/reference/import.rst:935 msgid "" @@ -1242,7 +1826,7 @@ msgstr "" #: ../Doc/reference/import.rst:950 msgid "References" -msgstr "" +msgstr "Références" #: ../Doc/reference/import.rst:952 msgid "" @@ -1257,6 +1841,8 @@ msgid "" "The original specification for :data:`sys.meta_path` was :pep:`302`, with " "subsequent extension in :pep:`420`." msgstr "" +"La spécification originale de :data:`sys.meta_path` se trouve dans la :pep:" +"`302`. La :pep:`420` contient des extensions significatives." #: ../Doc/reference/import.rst:960 msgid "" @@ -1264,12 +1850,18 @@ msgid "" "Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as " "an alternative to :meth:`find_module`." msgstr "" +"La :pep:`420` a introduit les :term:`paquets-espaces de noms ` pour Python 3.3. :pep:`420` a aussi introduit le protocole :meth:" +"`recherche du chargeur ` comme une alternative à :meth:" +"`find_module`." #: ../Doc/reference/import.rst:964 msgid "" ":pep:`366` describes the addition of the ``__package__`` attribute for " "explicit relative imports in main modules." msgstr "" +"La :pep:`366` décrit l'ajout de l'attribut ``__package__`` pour les " +"importations relatives explicites dans les modules principaux." #: ../Doc/reference/import.rst:967 msgid "" @@ -1277,10 +1869,13 @@ msgid "" "proposed ``__name__`` for semantics :pep:`366` would eventually specify for " "``__package__``." msgstr "" +"La :pep:`328` a introduit les importations absolues et les importations " +"relatives explicites. Elle a aussi proposé ``__name__`` pour la sémantique " +"que la :pep:`366` attribuait à ``__package__``." #: ../Doc/reference/import.rst:971 msgid ":pep:`338` defines executing modules as scripts." -msgstr "" +msgstr ":pep:`338` définit l'exécution de modules en tant que scripts." #: ../Doc/reference/import.rst:973 msgid "" @@ -1290,6 +1885,11 @@ msgid "" "of several APIs in the import system and also addition of new methods to " "finders and loaders." msgstr "" +":pep:`451` ajoute l'encapsulation dans les objets spécificateurs de l'état " +"des importations, module par module. Elle reporte aussi la majorité des " +"responsabilités des chargeurs vers le mécanisme d'import. Ces changements " +"permettent de supprimer plusieurs API dans le système d'importation et " +"d'ajouter de nouvelles méthodes aux chercheurs et chargeurs." #: ../Doc/reference/import.rst:980 msgid "Footnotes" @@ -1297,7 +1897,7 @@ msgstr "Notes" #: ../Doc/reference/import.rst:981 msgid "See :class:`types.ModuleType`." -msgstr "" +msgstr "Voir :class:`types.ModuleType`." #: ../Doc/reference/import.rst:983 msgid "" @@ -1307,6 +1907,12 @@ msgid "" "replace itself in :data:`sys.modules`. This is implementation-specific " "behavior that is not guaranteed to work in other Python implementations." msgstr "" +"L'implémentation de importlib évite d'utiliser directement la valeur de " +"retour. À la place, elle récupère l'objet module en recherchant le nom du " +"module dans :data:`sys.modules`. L'effet indirect est que le module importé " +"peut remplacer le module de même nom dans :data:`sys.modules`. C'est un " +"comportement spécifique à l'implémentation dont le résultat n'est pas " +"garanti pour les autres implémentations de Python." #: ../Doc/reference/import.rst:990 msgid "" @@ -1315,3 +1921,7 @@ msgid "" "that code be changed to use ``None`` instead. See :ref:`portingpythoncode` " "for more details." msgstr "" +"Dans du code historique, il est possible de trouver des instances de :class:" +"`imp.NullImporter` dans :data:`sys.path_importer_cache`. Il est recommandé " +"de modifier ce code afin d'utiliser ``None`` à la place. Lisez :ref:" +"`portingpythoncode` pour plus de détails." diff --git a/reference/index.po b/reference/index.po index bea7975b..1fda0990 100644 --- a/reference/index.po +++ b/reference/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/reference/index.rst:5 msgid "The Python Language Reference" -msgstr "" +msgstr "La référence du langage Python" #: ../Doc/reference/index.rst:7 msgid "" @@ -31,3 +31,11 @@ msgid "" "picture of how to write a Python extension module, and the :ref:`c-api-" "index` describes the interfaces available to C/C++ programmers in detail." msgstr "" +"Cette documentation décrit la syntaxe et la \"sémantique interne\" du " +"langage. Elle peut être laconique, mais essaye d'être exhautive et exacte. " +"La sémantique des objets natifs secondaires, des fonctions, et des modules " +"est documentée dans :ref:`library-index`. Pour une présentation informelle " +"du langage, voyez plutôt :ref:`tutorial-index`. Pour les développeurs C ou C+" +"+, deux manuels supplémentaires existent : :ref:`extending-index` survole " +"l'écriture d'extensions, et :ref:`c-api-index` décrit l'interface C/C++ en " +"détail." diff --git a/reference/introduction.po b/reference/introduction.po index a416739e..c4ffec83 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -25,6 +25,8 @@ msgid "" "This reference manual describes the Python programming language. It is not " "intended as a tutorial." msgstr "" +"Ce manuel de référence décrit le langage de programmation Python. Il n'a pas " +"vocation à être un tutoriel." #: ../Doc/reference/introduction.rst:11 msgid "" @@ -40,6 +42,19 @@ msgid "" "like to see a more formal definition of the language, maybe you could " "volunteer your time --- or invent a cloning machine :-)." msgstr "" +"Nous essayons d'être le plus précis possible et nous utilisons le français " +"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " +"plutôt que des spécifications formelles, sauf pour la syntaxe et l’analyse " +"lexicale. Nous espérons ainsi rendre ce document plus compréhensible pour un " +"grand nombre de lecteurs, même si cela laisse un peu de place à l’ambiguïté. " +"En conséquence, si vous arrivez de Mars et que vous essayez de ré-" +"implémenter Python à partir de cet unique document, vous devrez faire des " +"hypothèses et, finalement, vous aurez certainement implémenté un langage " +"sensiblement différent. D’un autre côté, si vous utilisez Python et que vous " +"vous demandez quelles règles s’appliquent pour telle partie du langage, vous " +"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " +"définition plus formelle du langage, nous acceptons toutes les bonnes " +"volontés (ou bien inventez une machine pour nous cloner :-)." #: ../Doc/reference/introduction.rst:23 msgid "" @@ -52,6 +67,15 @@ msgid "" "implementation imposes additional limitations. Therefore, you'll find short " "\"implementation notes\" sprinkled throughout the text." msgstr "" +"S’agissant du manuel de référence d’un langage, il est dangereux de rentrer " +"profondément dans les détails d’implémentation ; l’implémentation peut " +"changer et d’autres implémentations du même langage peuvent fonctionner " +"différemment. En même temps, CPython est l’implémentation de Python la plus " +"répandue (bien que d’autres implémentations gagnent en popularité) et " +"certaines de ses bizarreries méritent parfois d’être mentionnées, en " +"particulier lorsque l’implémentation impose des limitations supplémentaires. " +"Par conséquent, vous trouvez de courtes \"notes d’implémentation\" " +"saupoudrées dans le texte." #: ../Doc/reference/introduction.rst:32 msgid "" @@ -60,10 +84,14 @@ msgid "" "modules are mentioned when they interact in a significant way with the " "language definition." msgstr "" +"Chaque implémentation de Python est livrée avec un certain nombre de modules " +"natifs. Ceux-ci sont documentés dans :ref:`library-index`. Quelques modules " +"natifs sont mentionnés quand ils interagissent significativement avec la " +"définition du langage." #: ../Doc/reference/introduction.rst:41 msgid "Alternate Implementations" -msgstr "" +msgstr "Autres implémentations" #: ../Doc/reference/introduction.rst:43 msgid "" @@ -71,10 +99,13 @@ msgid "" "there are some alternate implementations which are of particular interest to " "different audiences." msgstr "" +"Bien qu’il existe une implémentation Python qui soit de loin la plus " +"populaire, il existe d’autres implémentations qui présentent un intérêt " +"particulier pour différents publics." #: ../Doc/reference/introduction.rst:47 msgid "Known implementations include:" -msgstr "" +msgstr "Parmi les implémentations les plus connues, nous pouvons citer :" #: ../Doc/reference/introduction.rst:51 msgid "CPython" @@ -85,6 +116,9 @@ msgid "" "This is the original and most-maintained implementation of Python, written " "in C. New language features generally appear here first." msgstr "" +"C’est l’implémentation originelle et la plus entretenue de Python, écrite en " +"C. Elle implémente généralement en premier les nouvelles fonctionnalités du " +"langage." #: ../Doc/reference/introduction.rst:57 msgid "Jython" @@ -98,6 +132,12 @@ msgid "" "libraries. More information can be found at `the Jython website `_." msgstr "" +"Python implémenté en Java. Cette implémentation peut être utilisée comme " +"langage de script pour les applications Java ou pour créer des applications " +"utilisant des bibliothèques Java. Elle est également souvent utilisée pour " +"créer des tests de bibliothèques Java. Plus d’informations peuvent être " +"trouvées sur `the Jython website `_ (site en " +"anglais)." #: ../Doc/reference/introduction.rst:63 msgid "Python for .NET" @@ -110,6 +150,10 @@ msgid "" "by Brian Lloyd. For more information, see the `Python for .NET home page " "`_." msgstr "" +"Cette implémentation utilise en fait l’implémentation CPython, mais c’est " +"une application .NET et permet un accès aux bibliothèques .NET. Elle a été " +"créée par Brian Lloyd. Pour plus d’informations, consultez la page d’accueil " +"`Python pour .NET `_ (site en anglais)." #: ../Doc/reference/introduction.rst:69 msgid "IronPython" @@ -122,6 +166,11 @@ msgid "" "assemblies. It was created by Jim Hugunin, the original creator of Jython. " "For more information, see `the IronPython website `_." msgstr "" +"Un autre Python pour .NET. Contrairement à Python.NET, il s’agit d’une " +"implémentation Python complète qui génère du code intermédiaire (IL) .NET et " +"compile le code Python directement en assemblages .NET. Il a été créé par " +"Jim Hugunin, le programmeur à l’origine de Jython. Pour plus d’informations, " +"voir `the IronPython website `_ (site en anglais)." #: ../Doc/reference/introduction.rst:77 msgid "PyPy" @@ -137,6 +186,14 @@ msgid "" "information is available on `the PyPy project's home page `_." msgstr "" +"Une implémentation de Python complètement écrite en Python. Elle apporte des " +"fonctionnalités avancées introuvables dans d'autres implémentations, telles " +"que le fonctionnement sans pile (*stackless* en anglais) et un compilateur à " +"la volée (*Just in Time compiler* en anglais). L'un des objectifs du projet " +"est d'encourager l'expérimentation du langage lui-même en facilitant la " +"modification de l'interpréteur (puisqu'il est écrit en Python). Des " +"informations complémentaires sont disponibles sur la `page d'accueil du " +"projet PyPy `_ (site en anglais)." #: ../Doc/reference/introduction.rst:79 msgid "" @@ -146,16 +203,23 @@ msgid "" "implementation-specific documentation to determine what else you need to " "know about the specific implementation you're using." msgstr "" +"Chacune de ces implémentations diffère d'une manière ou d'une autre par " +"rapport au langage décrit dans ce manuel, ou comporte des spécificités que " +"la documentation standard de Python ne couvre pas. Reportez-vous à la " +"documentation spécifique à l'implémentation pour déterminer ce que vous " +"devez savoir sur l'implémentation que vous utilisez." #: ../Doc/reference/introduction.rst:89 msgid "Notation" -msgstr "" +msgstr "Notations" #: ../Doc/reference/introduction.rst:93 msgid "" "The descriptions of lexical analysis and syntax use a modified BNF grammar " "notation. This uses the following style of definition:" msgstr "" +"Les descriptions de l'analyse lexicale et de la syntaxe utilisent une " +"notation de grammaire BNF modifiée. Le style utilisé est le suivant :" #: ../Doc/reference/introduction.rst:100 msgid "" @@ -165,6 +229,11 @@ msgid "" "``'z'``. (This rule is actually adhered to for the names defined in lexical " "and grammar rules in this document.)" msgstr "" +"La première ligne indique qu'un ``name`` est un ``lc_letter`` suivi d'une " +"suite de zéro ou plus ``lc_letter``\\s ou underscores. Un ``lc_letter`` est, " +"à son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " +"effectivement respectée pour les noms définis dans les règles lexicales et " +"grammaticales de ce document)." #: ../Doc/reference/introduction.rst:105 msgid "" @@ -180,6 +249,20 @@ msgid "" "line; rules with many alternatives may be formatted alternatively with each " "line after the first beginning with a vertical bar." msgstr "" +"Chaque règle commence par un nom (qui est le nom que la règle définit) et " +"``::=``. Une barre verticale (``|``) est utilisée pour séparer les " +"alternatives ; c'est l'opérateur le moins prioritaire de cette notation. Une " +"étoile (``*``) signifie zéro ou plusieurs répétitions de l'élément " +"précédent ; de même, un plus (``+``) signifie une ou plusieurs répétitions, " +"et une expression entre crochets (``[ ]``) signifie zéro ou une occurrence " +"(en d'autres termes, l'expression encadrée est facultative). Les opérateurs " +"``*`` et ``+`` agissent aussi étroitement que possible ; les parenthèses " +"sont utilisées pour le regroupement. Les chaînes littérales sont entourées " +"de guillemets anglais ``\"``. L'espace n'est utilisée que pour séparer les " +"lexèmes. Les règles sont normalement contenues sur une seule ligne ; les " +"règles avec de nombreuses alternatives peuvent être formatées avec chaque " +"ligne représentant une alternative (et donc débutant par une barre " +"verticale, sauf la première)." #: ../Doc/reference/introduction.rst:119 msgid "" @@ -190,6 +273,13 @@ msgid "" "the symbol defined; e.g., this could be used to describe the notion of " "'control character' if needed." msgstr "" +"Dans les définitions lexicales (comme dans l'exemple ci-dessus), deux autres " +"conventions sont utilisées : deux caractères littéraux séparés par des " +"points de suspension signifient le choix d'un seul caractère dans la plage " +"donnée (en incluant les bornes) de caractères ASCII. Une phrase entre les " +"signes inférieur et supérieur (``<...>``) donne une description informelle " +"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " +"contrôle\" si nécessaire." #: ../Doc/reference/introduction.rst:126 msgid "" @@ -201,3 +291,10 @@ msgid "" "are lexical definitions; uses in subsequent chapters are syntactic " "definitions." msgstr "" +"Même si la notation utilisée est presque la même, il existe une grande " +"différence entre la signification des définitions lexicales et syntaxiques : " +"une définition lexicale opère sur les caractères individuels de l'entrée, " +"tandis qu'une définition syntaxique opère sur le flux de lexèmes générés par " +"l'analyse lexicale. Toutes les notations sous la forme BNF dans le chapitre " +"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " +"notations dans les chapitres suivants sont des définitions syntaxiques." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 5cf46134..c2ff5f34 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -26,6 +26,10 @@ msgid "" "*tokens*, generated by the *lexical analyzer*. This chapter describes how " "the lexical analyzer breaks a file into tokens." msgstr "" +"Un programme Python est lu par un analyseur syntaxique (*parser* en " +"anglais). En entrée de cet analyseur syntaxique, nous trouvons des lexèmes " +"(*tokens* en anglais), produits par un analyseur lexical. Ce chapitre décrit " +"comment l'analyseur lexical découpe le fichier en lexèmes." #: ../Doc/reference/lexical_analysis.rst:14 msgid "" @@ -34,10 +38,15 @@ msgid "" "`3120` for details. If the source file cannot be decoded, a :exc:" "`SyntaxError` is raised." msgstr "" +"Python lit le texte du programme comme des suites de caractères Unicode ; " +"l'encodage du fichier source peut être spécifié par une déclaration " +"d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " +"Si le fichier source ne peut pas être décodé, une exception :exc:" +"`SyntaxError` (erreur de syntaxe) est levée." #: ../Doc/reference/lexical_analysis.rst:23 msgid "Line structure" -msgstr "" +msgstr "Structure des lignes" #: ../Doc/reference/lexical_analysis.rst:27 msgid "A Python program is divided into a number of *logical lines*." @@ -55,10 +64,16 @@ msgid "" "constructed from one or more *physical lines* by following the explicit or " "implicit *line joining* rules." msgstr "" +"La fin d'une ligne logique est représentée par le lexème NEWLINE. Les " +"instructions ne peuvent pas traverser les limites des lignes logiques, sauf " +"quand NEWLINE est autorisé par la syntaxe (par exemple, entre les " +"instructions des instructions composées). Une ligne logique est constituée " +"d'une ou plusieurs *lignes physiques* en fonction des règles, explicites ou " +"implicites, de *continuation de ligne*." #: ../Doc/reference/lexical_analysis.rst:47 msgid "Physical lines" -msgstr "" +msgstr "Lignes physiques" #: ../Doc/reference/lexical_analysis.rst:49 msgid "" @@ -76,6 +91,9 @@ msgid "" "using the standard C conventions for newline characters (the ``\\n`` " "character, representing ASCII LF, is the line terminator)." msgstr "" +"Lorsque vous encapsulez Python, les chaînes de code source doivent être " +"passées à l'API Python en utilisant les conventions du C standard pour les " +"caractères de fin de ligne : le caractère ``\\n``, dont le code ASCII est LF." #: ../Doc/reference/lexical_analysis.rst:64 msgid "Comments" @@ -88,10 +106,17 @@ msgid "" "end of the logical line unless the implicit line joining rules are invoked. " "Comments are ignored by the syntax; they are not tokens." msgstr "" +"Un commentaire commence par le caractère croisillon (``#``, *hash* en " +"anglais et qui ressemble au symbole musical dièse, c'est pourquoi il est " +"souvent improprement appelé caractère dièse) situé en dehors d'une chaine de " +"caractères littérale et se termine à la fin de la ligne physique. Un " +"commentaire signifie la fin de la ligne logique à moins qu'une règle de " +"continuation de ligne implicite ne s'applique. Les commentaires sont ignorés " +"au niveau syntaxique, ce ne sont pas des lexèmes." #: ../Doc/reference/lexical_analysis.rst:77 msgid "Encoding declarations" -msgstr "" +msgstr "Déclaration d'encodage" #: ../Doc/reference/lexical_analysis.rst:81 msgid "" @@ -102,14 +127,21 @@ msgid "" "line of its own. If it is the second line, the first line must also be a " "comment-only line. The recommended forms of an encoding expression are ::" msgstr "" +"Si un commentaire placé sur la première ou deuxième ligne du script Python " +"correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"de cette expression désigne l'encodage du fichier source. Cette déclaration " +"d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " +"ligne, la première ligne doit aussi être une ligne composée uniquement d'un " +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" #: ../Doc/reference/lexical_analysis.rst:90 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "" +msgstr "qui est reconnue aussi par GNU Emacs et ::" #: ../Doc/reference/lexical_analysis.rst:94 msgid "which is recognized by Bram Moolenaar's VIM." -msgstr "" +msgstr "qui est reconnue par VIM de Bram Moolenaar." #: ../Doc/reference/lexical_analysis.rst:96 msgid "" @@ -118,6 +150,12 @@ msgid "" "(``b'\\xef\\xbb\\xbf'``), the declared file encoding is UTF-8 (this is " "supported, among others, by Microsoft's :program:`notepad`)." msgstr "" +"Si aucune déclaration d'encodage n'est trouvée, l'encodage par défaut est " +"utilisé : UTF-8. En plus, si les premiers octets du fichier sont " +"l'indicateur d'ordre des octets UTF-8 (``b'\\xef\\xbb\\xbf'``, *BOM* en " +"anglais pour *byte order mark*), le fichier est considéré comme étant en " +"UTF-8 (cette convention est reconnue, entre autres, par :program:`notepad` " +"de Microsoft)." #: ../Doc/reference/lexical_analysis.rst:101 msgid "" @@ -125,10 +163,13 @@ msgid "" "The encoding is used for all lexical analysis, including string literals, " "comments and identifiers." msgstr "" +"Si un encodage est déclaré, le nom de l'encodage doit être reconnu par " +"Python. L'encodage est utilisé pour toute l'analyse lexicale, y compris les " +"chaînes de caractères, les commentaires et les identifiants." #: ../Doc/reference/lexical_analysis.rst:111 msgid "Explicit line joining" -msgstr "" +msgstr "Continuation de ligne explicite" #: ../Doc/reference/lexical_analysis.rst:115 msgid "" @@ -138,6 +179,13 @@ msgid "" "following forming a single logical line, deleting the backslash and the " "following end-of-line character. For example::" msgstr "" +"Deux lignes physiques, ou plus, peuvent être jointes pour former une seule " +"ligne logique en utilisant la barre oblique inversée (``\\``) selon la règle " +"suivante : quand la ligne physique se termine par une barre oblique inversée " +"qui ne fait pas partie d'une chaine de caractères ou d'un commentaire, la " +"ligne immédiatement suivante lui est adjointe pour former une seule ligne " +"logique, en supprimant la barre oblique inversée et le caractère de fin de " +"ligne. Par exemple ::" #: ../Doc/reference/lexical_analysis.rst:126 msgid "" @@ -147,16 +195,27 @@ msgid "" "physical lines using a backslash). A backslash is illegal elsewhere on a " "line outside a string literal." msgstr "" +"Une ligne que se termine par une barre oblique inversée ne peut pas avoir de " +"commentaire. La barre oblique inversée ne permet pas de continuer un " +"commentaire. La barre oblique inversée ne permet pas de continuer un lexème, " +"sauf s'il s'agit d'une chaîne de caractères (par exemple, les lexèmes autres " +"que les chaînes de caractères ne peuvent pas être répartis sur plusieurs " +"lignes en utilisant une barre oblique inversée). La barre oblique inversée " +"n'est pas autorisée ailleurs sur la ligne, en dehors d'une chaîne de " +"caractères." #: ../Doc/reference/lexical_analysis.rst:136 msgid "Implicit line joining" -msgstr "" +msgstr "Continuation de ligne implicite" #: ../Doc/reference/lexical_analysis.rst:138 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" msgstr "" +"Les expressions entre parenthèses, crochets ou accolades peuvent être " +"réparties sur plusieurs lignes sans utiliser de barre oblique inversée. Par " +"exemple ::" #: ../Doc/reference/lexical_analysis.rst:146 msgid "" @@ -166,6 +225,13 @@ msgid "" "continued lines can also occur within triple-quoted strings (see below); in " "that case they cannot carry comments." msgstr "" +"Les lignes continuées implicitement peuvent avoir des commentaires. " +"L'indentation des lignes de continuation n'est pas importante. Une ligne " +"blanche est autorisée comme ligne de continuation. Il ne doit pas y avoir de " +"lexème NEWLINE entre des lignes implicitement continuées. Les lignes " +"continuées implicitement peuvent être utilisées dans des chaînes entre " +"triples guillemets (voir ci-dessous) ; dans ce cas, elles ne peuvent pas " +"avoir de commentaires." #: ../Doc/reference/lexical_analysis.rst:156 msgid "Blank lines" @@ -181,6 +247,13 @@ msgid "" "containing not even whitespace or a comment) terminates a multi-line " "statement." msgstr "" +"Une ligne logique qui ne contient que des espaces, tabulations, caractères " +"de saut de page (*formfeed* en anglais) ou commentaires est ignorée (c'est-à-" +"dire que le lexème NEWLINE n'est pas produit). Pendant l'édition interactive " +"d'instructions, la gestion des lignes vierges peut différer en fonction de " +"l'implémentation de la boucle REPL. Dans l'interpréteur standard, une ligne " +"complètement vierge (c'est-à-dire ne contenant strictement rien, même pas " +"une espace ou un commentaire) termine une instruction multi-lignes." #: ../Doc/reference/lexical_analysis.rst:171 msgid "Indentation" @@ -192,9 +265,9 @@ msgid "" "used to compute the indentation level of the line, which in turn is used to " "determine the grouping of statements." msgstr "" -"Des espaces ou tabulations au début d’une ligne logique sont utilisés pour " +"Des espaces ou tabulations au début d’une ligne logique sont utilisées pour " "connaître le niveau d’indentation de la ligne, qui est ensuite utilisé pour " -"définir l’ordre des déclarations." +"déterminer comment les instructions sont groupées." #: ../Doc/reference/lexical_analysis.rst:179 msgid "" @@ -206,6 +279,14 @@ msgid "" "lines using backslashes; the whitespace up to the first backslash determines " "the indentation." msgstr "" +"Les tabulations sont remplacées (de la gauche vers la droite) par une à huit " +"espaces de manière à ce que le nombre de caractères remplacés soit un " +"multiple de huit (nous avons ainsi la même règle que celle d'Unix). Le " +"nombre total d'espaces précédant le premier caractère non blanc détermine " +"alors le niveau d'indentation de la ligne. L'indentation ne peut pas être " +"répartie sur plusieurs lignes physiques à l'aide de barres obliques " +"inversées ; les espaces jusqu'à la première barre oblique inversée " +"déterminent l'indentation." #: ../Doc/reference/lexical_analysis.rst:187 msgid "" @@ -213,6 +294,10 @@ msgid "" "spaces in a way that makes the meaning dependent on the worth of a tab in " "spaces; a :exc:`TabError` is raised in that case." msgstr "" +"L'indentation est déclarée inconsistante et rejetée si, dans un même fichier " +"source, le mélange des tabulations et des espaces est tel que la " +"signification dépend du nombre d'espaces que représente une tabulation. Une " +"exception :exc:`TabError` est levée dans ce cas." #: ../Doc/reference/lexical_analysis.rst:191 msgid "" @@ -221,6 +306,11 @@ msgid "" "the indentation in a single source file. It should also be noted that " "different platforms may explicitly limit the maximum indentation level." msgstr "" +"**Note de compatibilité entre les plateformes :** en raison de la nature des " +"éditeurs de texte sur les plateformes non Unix, il n'est pas judicieux " +"d'utiliser un mélange d'espaces et de tabulations pour l'indentation dans un " +"seul fichier source. Il convient également de noter que des plateformes " +"peuvent explicitement limiter le niveau d'indentation maximal." #: ../Doc/reference/lexical_analysis.rst:196 msgid "" @@ -229,12 +319,18 @@ msgid "" "occurring elsewhere in the leading whitespace have an undefined effect (for " "instance, they may reset the space count to zero)." msgstr "" +"Un caractère de saut de page peut être présent au début de la ligne ; il est " +"ignoré pour les calculs d'indentation ci-dessus. Les caractères de saut de " +"page se trouvant ailleurs avec les espaces en tête de ligne ont un effet " +"indéfini (par exemple, ils peuvent remettre à zéro le nombre d'espaces)." #: ../Doc/reference/lexical_analysis.rst:203 msgid "" "The indentation levels of consecutive lines are used to generate INDENT and " "DEDENT tokens, using a stack, as follows." msgstr "" +"Les niveaux d'indentation de lignes consécutives sont utilisés pour générer " +"les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon :" #: ../Doc/reference/lexical_analysis.rst:206 msgid "" @@ -249,16 +345,28 @@ msgid "" "generated. At the end of the file, a DEDENT token is generated for each " "number remaining on the stack that is larger than zero." msgstr "" +"Avant que la première ligne du fichier ne soit lue, un \"zéro\" est posé sur " +"la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " +"strictement croissants de bas en haut. Au début de chaque ligne logique, le " +"niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " +"sont égaux, il ne se passe rien. S'il est plus grand, il est empilé et un " +"lexème INDENT est produit. S'il est plus petit, il *doit* être l'un des " +"nombres présents dans la pile ; tous les nombres de la pile qui sont plus " +"grands sont retirés et, pour chaque nombre retiré, un lexème DEDENT est " +"produit. À la fin du fichier, un lexème DEDENT est produit pour chaque " +"nombre supérieur à zéro restant sur la pile." #: ../Doc/reference/lexical_analysis.rst:217 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" msgstr "" +"Voici un exemple de code Python correctement indenté (bien que très " +"confus) ::" #: ../Doc/reference/lexical_analysis.rst:232 msgid "The following example shows various indentation errors::" -msgstr "" +msgstr "L'exemple suivant montre plusieurs erreurs d'indentation ::" #: ../Doc/reference/lexical_analysis.rst:242 msgid "" @@ -266,10 +374,13 @@ msgid "" "error is found by the lexical analyzer --- the indentation of ``return r`` " "does not match a level popped off the stack.)" msgstr "" +"En fait, les trois premières erreurs sont détectées par l'analyseur " +"syntaxique ; seule la dernière erreur est trouvée par l'analyseur lexical " +"(l'indentation de ``return r`` ne correspond à aucun niveau dans la pile)." #: ../Doc/reference/lexical_analysis.rst:250 msgid "Whitespace between tokens" -msgstr "" +msgstr "Espaces entre lexèmes" #: ../Doc/reference/lexical_analysis.rst:252 msgid "" @@ -279,10 +390,16 @@ msgid "" "concatenation could otherwise be interpreted as a different token (e.g., ab " "is one token, but a b is two tokens)." msgstr "" +"Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " +"caractères \"blancs\" espace, tabulation et saut de page peuvent être " +"utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " +"nécessaire entre deux lexèmes que si leur concaténation pourrait être " +"interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " +"b comporte deux lexèmes)." #: ../Doc/reference/lexical_analysis.rst:262 msgid "Other tokens" -msgstr "" +msgstr "Autres lexèmes" #: ../Doc/reference/lexical_analysis.rst:264 msgid "" @@ -293,16 +410,24 @@ msgid "" "comprises the longest possible string that forms a legal token, when read " "from left to right." msgstr "" +"Outre NEWLINE, INDENT et DEDENT, il existe les catégories de lexèmes " +"suivantes : *identifiants*, *mots clés*, *littéraux*, *opérateurs* et " +"*délimiteurs*. Les blancs (autres que les fins de lignes, vus auparavant) ne " +"sont pas des lexèmes mais servent à délimiter les lexèmes. Quand une " +"ambiguïté existe, le lexème correspond à la plus grande chaîne possible qui " +"forme un lexème licite, en lisant de la gauche vers la droite." #: ../Doc/reference/lexical_analysis.rst:274 msgid "Identifiers and keywords" -msgstr "" +msgstr "Identifiants et mots-clés" #: ../Doc/reference/lexical_analysis.rst:278 msgid "" "Identifiers (also referred to as *names*) are described by the following " "lexical definitions." msgstr "" +"Les identifiants (aussi appelés *noms*) sont décrits par les définitions " +"lexicales suivantes." #: ../Doc/reference/lexical_analysis.rst:281 msgid "" @@ -310,6 +435,9 @@ msgid "" "UAX-31, with elaboration and changes as defined below; see also :pep:`3131` " "for further details." msgstr "" +"La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"pep:`3131` pour plus de détails." #: ../Doc/reference/lexical_analysis.rst:285 msgid "" @@ -318,6 +446,10 @@ msgid "" "letters ``A`` through ``Z``, the underscore ``_`` and, except for the first " "character, the digits ``0`` through ``9``." msgstr "" +"Dans l'intervalle ASCII (U+0001..U+007F), les caractères licites pour les " +"identifiants sont les mêmes que pour Python 2.x : les lettres minuscules et " +"majuscules de ``A`` à ``Z``, le souligné (ou *underscore*) ``_`` et, sauf " +"pour le premier caractère, les chiffres de ``0`` à ``9``." #: ../Doc/reference/lexical_analysis.rst:290 msgid "" @@ -326,54 +458,65 @@ msgid "" "version of the Unicode Character Database as included in the :mod:" "`unicodedata` module." msgstr "" +"Python 3.0 introduit des caractères supplémentaires en dehors de " +"l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " +"classification utilise la version de la \"base de données des caractères " +"Unicode\" telle qu'incluse dans le module :mod:`unicodedata`." #: ../Doc/reference/lexical_analysis.rst:294 msgid "Identifiers are unlimited in length. Case is significant." msgstr "" +"Les identifiants n'ont pas de limite de longueur. La casse est prise en " +"compte." #: ../Doc/reference/lexical_analysis.rst:303 msgid "The Unicode category codes mentioned above stand for:" -msgstr "" +msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" #: ../Doc/reference/lexical_analysis.rst:305 msgid "*Lu* - uppercase letters" -msgstr "" +msgstr "*Lu* -- lettre majuscules" #: ../Doc/reference/lexical_analysis.rst:306 msgid "*Ll* - lowercase letters" -msgstr "" +msgstr "*Ll* -- lettres minuscules" #: ../Doc/reference/lexical_analysis.rst:307 msgid "*Lt* - titlecase letters" msgstr "" +"*Lt* -- lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" #: ../Doc/reference/lexical_analysis.rst:308 msgid "*Lm* - modifier letters" -msgstr "" +msgstr "*Lm* -- lettres modificatives avec chasse" #: ../Doc/reference/lexical_analysis.rst:309 msgid "*Lo* - other letters" -msgstr "" +msgstr "*Lo* -- autres lettres" #: ../Doc/reference/lexical_analysis.rst:310 msgid "*Nl* - letter numbers" -msgstr "" +msgstr "*Nl* -- nombres lettres (par exemple, les nombres romains)" #: ../Doc/reference/lexical_analysis.rst:311 msgid "*Mn* - nonspacing marks" msgstr "" +"*Mn* -- symboles que l'on combine avec d'autres (accents ou autres) sans " +"générer d'espace (*nonspacing marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:312 msgid "*Mc* - spacing combining marks" msgstr "" +"*Mc* -- symboles que l'on combine avec d'autres en générant une espace " +"(*spacing combining marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:313 msgid "*Nd* - decimal numbers" -msgstr "" +msgstr "*Nd* -- chiffres (arabes et autres)" #: ../Doc/reference/lexical_analysis.rst:314 msgid "*Pc* - connector punctuations" -msgstr "" +msgstr "*Pc* -- connecteurs (tirets et autres lignes)" #: ../Doc/reference/lexical_analysis.rst:315 msgid "" @@ -384,13 +527,16 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:318 msgid "*Other_ID_Continue* - likewise" -msgstr "" +msgstr "*Other_ID_Continue* -- pareillement" #: ../Doc/reference/lexical_analysis.rst:320 msgid "" "All identifiers are converted into the normal form NFKC while parsing; " "comparison of identifiers is based on NFKC." msgstr "" +"Tous les identifiants sont convertis dans la forme normale NFKC pendant " +"l'analyse syntaxique : la comparaison des identifiants se base sur leur " +"forme NFKC." #: ../Doc/reference/lexical_analysis.rst:323 msgid "" @@ -398,6 +544,9 @@ msgid "" "Unicode 4.1 can be found at https://www.dcl.hpi.uni-potsdam.de/home/loewis/" "table-3131.html." msgstr "" +"Un fichier HTML, ne faisant pas référence, listant tous les caractères " +"valides pour Unicode 4.1 se trouve à https://www.dcl.hpi.uni-potsdam.de/home/" +"loewis/table-3131.html." #: ../Doc/reference/lexical_analysis.rst:331 msgid "Keywords" @@ -409,10 +558,13 @@ msgid "" "language, and cannot be used as ordinary identifiers. They must be spelled " "exactly as written here:" msgstr "" +"Les identifiants suivants sont des mots réservés par le langage et ne " +"peuvent pas être utilisés en tant qu'identifiants normaux. Ils doivent être " +"écrits exactement comme ci-dessous :" #: ../Doc/reference/lexical_analysis.rst:354 msgid "Reserved classes of identifiers" -msgstr "" +msgstr "Classes réservées pour les identifiants" #: ../Doc/reference/lexical_analysis.rst:356 msgid "" @@ -420,10 +572,13 @@ msgid "" "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" +"Certaines classes d'identifiants (outre les mots-clés) ont une signification " +"particulière. Ces classes se reconnaissent par des caractères de " +"soulignement en tête et en queue d'identifiant :" #: ../Doc/reference/lexical_analysis.rst:370 msgid "``_*``" -msgstr "" +msgstr "``_*``" #: ../Doc/reference/lexical_analysis.rst:361 msgid "" @@ -433,6 +588,11 @@ msgid "" "interactive mode, ``_`` has no special meaning and is not defined. See " "section :ref:`import`." msgstr "" +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " +"particulière et n'est pas défini. Voir la section :ref:`import`." #: ../Doc/reference/lexical_analysis.rst:368 msgid "" @@ -440,10 +600,13 @@ msgid "" "to the documentation for the :mod:`gettext` module for more information on " "this convention." msgstr "" +"Le nom ``_`` est souvent utilisé pour internationaliser l'affichage ; " +"reportez-vous à la documentation du module :mod:`gettext` pour plus " +"d'informations sur cette convention." #: ../Doc/reference/lexical_analysis.rst:378 msgid "``__*__``" -msgstr "" +msgstr "``__*__``" #: ../Doc/reference/lexical_analysis.rst:373 msgid "" @@ -454,10 +617,18 @@ msgid "" "names, in any context, that does not follow explicitly documented use, is " "subject to breakage without warning." msgstr "" +"Noms définis par le système. Ces noms sont définis par l'interpréteur et son " +"implémentation (y compris la bibliothèque standard). Les noms actuels " +"définis par le système sont abordés dans la section :ref:`specialnames`, " +"mais aussi ailleurs. D'autres noms seront probablement définis dans les " +"futures versions de Python. Toute utilisation de noms de la forme ``__*__``, " +"dans n'importe quel contexte, qui n'est pas conforme à ce qu'indique " +"explicitement la documentation, est sujette à des mauvaises surprises sans " +"avertissement." #: ../Doc/reference/lexical_analysis.rst:385 msgid "``__*``" -msgstr "" +msgstr "``__*``" #: ../Doc/reference/lexical_analysis.rst:381 msgid "" @@ -466,22 +637,31 @@ msgid "" "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"utilisés dans le contexte d'une définition de classe, sont réécrits sous une " +"forme modifiée pour éviter les conflits de noms entre les attributs \"privés" +"\" des classes de base et les classes dérivées. Voir la section :ref:`atom-" +"identifiers`." #: ../Doc/reference/lexical_analysis.rst:390 msgid "Literals" -msgstr "" +msgstr "Littéraux" #: ../Doc/reference/lexical_analysis.rst:394 msgid "Literals are notations for constant values of some built-in types." msgstr "" +"Les littéraux sont des notations pour indiquer des valeurs constantes de " +"certains types natifs." #: ../Doc/reference/lexical_analysis.rst:400 msgid "String and Bytes literals" -msgstr "" +msgstr "Littéraux de chaînes de caractères et de suites d'octets" #: ../Doc/reference/lexical_analysis.rst:404 msgid "String literals are described by the following lexical definitions:" msgstr "" +"Les chaînes de caractères littérales sont définies par les définitions " +"lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:428 msgid "" @@ -491,6 +671,11 @@ msgid "" "defined by the encoding declaration; it is UTF-8 if no encoding declaration " "is given in the source file; see section :ref:`encodings`." msgstr "" +"Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"reste du littéral. Le jeu de caractères source est défini par la déclaration " +"d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " +"dans le fichier source ; voir la section :ref:`encodings`." #: ../Doc/reference/lexical_analysis.rst:436 msgid "" @@ -501,6 +686,14 @@ msgid "" "is used to escape characters that otherwise have a special meaning, such as " "newline, backslash itself, or the quote character." msgstr "" +"Description en français : les deux types de littéraux peuvent être encadrés " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils " +"peuvent aussi être encadrés par une paire de trois guillemets simples ou une " +"paire de trois guillemets doubles (on appelle alors généralement ces chaînes " +"*entre triples guillemets*). La barre oblique inversée peut être utilisée " +"pour échapper des caractères qui auraient sinon une signification spéciale, " +"tels que le retour à la ligne, la barre oblique inversée elle-même ou le " +"guillemet utilisé pour délimiter la chaîne." #: ../Doc/reference/lexical_analysis.rst:443 msgid "" @@ -509,6 +702,11 @@ msgid "" "may only contain ASCII characters; bytes with a numeric value of 128 or " "greater must be expressed with escapes." msgstr "" +"Les littéraux de suites d'octets sont toujours préfixés par ``'b'`` ou " +"``'B'`` ; cela crée une instance de type :class:`bytes` au lieu du type :" +"class:`str`. Ils ne peuvent contenir que des caractères ASCII ; les octets " +"dont la valeur est supérieure ou égale à 128 doivent être exprimés à l'aide " +"d'échappements." #: ../Doc/reference/lexical_analysis.rst:448 msgid "" @@ -525,12 +723,21 @@ msgid "" "Given that Python 2.x's raw unicode literals behave differently than Python " "3.x's the ``'ur'`` syntax is not supported." msgstr "" +"Les chaînes et suites d'octets littérales peuvent être préfixées par la " +"lettre ``'r'`` ou ``'R'`` ; de telles chaînes sont appelées :dfn:`chaines " +"brutes` (*raw strings* en anglais) et traitent la barre oblique inversée " +"comme un caractère normal. En conséquence, les chaînes littérales ``'\\U'`` " +"et ``'\\u'`` ne sont pas considérées comme spéciales. Comme les littéraux " +"Unicode de Python 2.x se comportent différemment, la syntaxe ``'ur'`` n'est " +"pas reconnue en Python 3.x." #: ../Doc/reference/lexical_analysis.rst:458 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." msgstr "" +"le préfixe ``'rb'`` a été ajouté comme synonyme de ``'br'`` pour les " +"littéraux de suites d'octets." #: ../Doc/reference/lexical_analysis.rst:462 msgid "" @@ -538,6 +745,9 @@ msgid "" "simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" "`414` for more information." msgstr "" +"le support du préfixe historique pour les chaînes Unicode a été réintroduit " +"afin de simplifier la maintenance de code compatible Python 2.x et 3.x. Voir " +"la :pep:`414` pour davantage d'informations." #: ../Doc/reference/lexical_analysis.rst:467 msgid "" @@ -546,6 +756,11 @@ msgid "" "literal. (A \"quote\" is the character used to open the literal, i.e. " "either ``'`` or ``\"``.)" msgstr "" +"Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " +"peuvent ne pas être échappés (et sont donc pris en compte), mais trois " +"guillemets non échappés à la suite terminent le littéral (on entend par " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"``'`` ou ``\"``)." #: ../Doc/reference/lexical_analysis.rst:473 msgid "" @@ -553,11 +768,15 @@ msgid "" "and bytes literals are interpreted according to rules similar to those used " "by Standard C. The recognized escape sequences are:" msgstr "" +"À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " +"d'échappement dans les littéraux de chaînes et suites d'octets sont " +"interprétées comme elles le seraient par le C Standard. Les séquences " +"d'échappement reconnues sont :" #: ../Doc/reference/lexical_analysis.rst:478 #: ../Doc/reference/lexical_analysis.rst:511 msgid "Escape Sequence" -msgstr "" +msgstr "Séquence d'échappement" #: ../Doc/reference/lexical_analysis.rst:478 #: ../Doc/reference/lexical_analysis.rst:511 @@ -575,7 +794,7 @@ msgstr "``\\newline``" #: ../Doc/reference/lexical_analysis.rst:480 msgid "Backslash and newline ignored" -msgstr "" +msgstr "barre oblique inversée et retour à la ligne ignorés" #: ../Doc/reference/lexical_analysis.rst:482 msgid "``\\\\``" @@ -583,7 +802,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:482 msgid "Backslash (``\\``)" -msgstr "" +msgstr "barre oblique inversée (``\\``)" #: ../Doc/reference/lexical_analysis.rst:484 msgid "``\\'``" @@ -591,7 +810,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:484 msgid "Single quote (``'``)" -msgstr "" +msgstr "guillemet simple (``'``)" #: ../Doc/reference/lexical_analysis.rst:486 msgid "``\\\"``" @@ -599,7 +818,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:486 msgid "Double quote (``\"``)" -msgstr "" +msgstr "guillemet double (``\"``)" #: ../Doc/reference/lexical_analysis.rst:488 msgid "``\\a``" @@ -607,7 +826,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:488 msgid "ASCII Bell (BEL)" -msgstr "" +msgstr "cloche ASCII (BEL)" #: ../Doc/reference/lexical_analysis.rst:490 msgid "``\\b``" @@ -615,7 +834,7 @@ msgstr "``\\b``" #: ../Doc/reference/lexical_analysis.rst:490 msgid "ASCII Backspace (BS)" -msgstr "" +msgstr "retour arrière ASCII (BS)" #: ../Doc/reference/lexical_analysis.rst:492 msgid "``\\f``" @@ -623,7 +842,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:492 msgid "ASCII Formfeed (FF)" -msgstr "" +msgstr "saut de page ASCII (FF)" #: ../Doc/reference/lexical_analysis.rst:494 msgid "``\\n``" @@ -631,7 +850,7 @@ msgstr "``\\n``" #: ../Doc/reference/lexical_analysis.rst:494 msgid "ASCII Linefeed (LF)" -msgstr "" +msgstr "saut de ligne ASCII (LF)" #: ../Doc/reference/lexical_analysis.rst:496 msgid "``\\r``" @@ -639,7 +858,7 @@ msgstr "``\\r``" #: ../Doc/reference/lexical_analysis.rst:496 msgid "ASCII Carriage Return (CR)" -msgstr "" +msgstr "retour à la ligne ASCII (CR)" #: ../Doc/reference/lexical_analysis.rst:498 msgid "``\\t``" @@ -647,7 +866,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:498 msgid "ASCII Horizontal Tab (TAB)" -msgstr "" +msgstr "tabulation horizontale ASCII (TAB)" #: ../Doc/reference/lexical_analysis.rst:500 msgid "``\\v``" @@ -655,7 +874,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:500 msgid "ASCII Vertical Tab (VT)" -msgstr "" +msgstr "tabulation verticale ASCII (VT)" #: ../Doc/reference/lexical_analysis.rst:502 msgid "``\\ooo``" @@ -663,7 +882,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:502 msgid "Character with octal value *ooo*" -msgstr "" +msgstr "caractère dont le code est *ooo* en octal" #: ../Doc/reference/lexical_analysis.rst:502 msgid "(1,3)" @@ -675,7 +894,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:505 msgid "Character with hex value *hh*" -msgstr "" +msgstr "caractère dont le code est *ooo* en hexadécimal" #: ../Doc/reference/lexical_analysis.rst:505 msgid "(2,3)" @@ -684,6 +903,8 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:508 msgid "Escape sequences only recognized in string literals are:" msgstr "" +"Les séquences d'échappement reconnues seulement dans les chaînes littérales " +"sont :" #: ../Doc/reference/lexical_analysis.rst:513 msgid "``\\N{name}``" @@ -691,7 +912,7 @@ msgstr "``\\N{name}``" #: ../Doc/reference/lexical_analysis.rst:513 msgid "Character named *name* in the Unicode database" -msgstr "" +msgstr "caractère dont le nom est *name* dans la base de données Unicode" #: ../Doc/reference/lexical_analysis.rst:513 msgid "\\(4)" @@ -703,7 +924,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:516 msgid "Character with 16-bit hex value *xxxx*" -msgstr "" +msgstr "caractère dont le code est *xxxx* en hexadécimal" #: ../Doc/reference/lexical_analysis.rst:516 msgid "\\(5)" @@ -715,7 +936,7 @@ msgstr "``\\Uxxxxxxxx``" #: ../Doc/reference/lexical_analysis.rst:519 msgid "Character with 32-bit hex value *xxxxxxxx*" -msgstr "" +msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits" #: ../Doc/reference/lexical_analysis.rst:519 msgid "\\(6)" @@ -723,15 +944,18 @@ msgstr "\\(6)" #: ../Doc/reference/lexical_analysis.rst:523 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/reference/lexical_analysis.rst:526 msgid "As in Standard C, up to three octal digits are accepted." msgstr "" +"Comme dans le C Standard, jusqu'à trois chiffres en base huit sont acceptés." #: ../Doc/reference/lexical_analysis.rst:529 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" +"Contrairement au C Standard, il est obligatoire de fournir deux chiffres " +"hexadécimaux." #: ../Doc/reference/lexical_analysis.rst:532 msgid "" @@ -739,20 +963,25 @@ msgid "" "given value. In a string literal, these escapes denote a Unicode character " "with the given value." msgstr "" +"Dans un littéral de suite d'octets, un échappement hexadécimal ou octal est " +"un octet dont la valeur est donnée. Dans une chaîne littérale, un " +"échappement est un caractère Unicode dont le code est donné." #: ../Doc/reference/lexical_analysis.rst:537 msgid "Support for name aliases [#]_ has been added." -msgstr "" +msgstr "Ajout du support pour les alias de noms [#]_." #: ../Doc/reference/lexical_analysis.rst:541 msgid "Exactly four hex digits are required." -msgstr "" +msgstr "Exactement quatre chiffres hexadécimaux sont requis." #: ../Doc/reference/lexical_analysis.rst:544 msgid "" "Any Unicode character can be encoded this way. Exactly eight hex digits are " "required." msgstr "" +"N'importe quel caractère Unicode peut être encodé de cette façon. Exactement " +"huit chiffres hexadécimaux sont requis." #: ../Doc/reference/lexical_analysis.rst:550 msgid "" @@ -763,6 +992,14 @@ msgid "" "that the escape sequences only recognized in string literals fall into the " "category of unrecognized escapes for bytes literals." msgstr "" +"Contrairement au C standard, toutes les séquences d'échappement non " +"reconnues sont laissées inchangées dans la chaîne, c'est-à-dire que *la " +"barre oblique inversée est laissée dans le résultat* (ce comportement est " +"utile en cas de débogage : si une séquence d'échappement est mal tapée, la " +"sortie résultante est plus facilement reconnue comme source de l'erreur). " +"Notez bien également que les séquences d'échappement reconnues uniquement " +"dans les littéraux de chaînes de caractères ne sont pas reconnues pour les " +"littéraux de suites d'octets." #: ../Doc/reference/lexical_analysis.rst:557 msgid "" @@ -776,10 +1013,22 @@ msgid "" "interpreted as those two characters as part of the literal, *not* as a line " "continuation." msgstr "" +"Même dans une chaîne littérale brute, les guillemets peuvent être échappés " +"avec une barre oblique inversée mais la barre oblique inversée reste dans le " +"résultat ; par exemple, ``r\"\\\"\"`` est une chaîne de caractères valide " +"composée de deux caractères : une barre oblique inversée et un guillemet " +"double ; ``r\"\\\"`` n'est pas une chaîne de caractères valide (même une " +"chaîne de caractères brute ne peut pas se terminer par un nombre impair de " +"barres obliques inversées). Plus précisément, *une chaîne littérale brute ne " +"peut pas se terminer par une seule barre oblique inversée* (puisque la barre " +"oblique inversée échappe le guillemet suivant). Notez également qu'une " +"simple barre oblique inversée suivie d'un saut de ligne est interprétée " +"comme deux caractères faisant partie du littéral et *non* comme une " +"continuation de ligne." #: ../Doc/reference/lexical_analysis.rst:570 msgid "String literal concatenation" -msgstr "" +msgstr "Concaténation de chaînes de caractères" #: ../Doc/reference/lexical_analysis.rst:572 msgid "" @@ -790,6 +1039,14 @@ msgid "" "number of backslashes needed, to split long strings conveniently across long " "lines, or even to add comments to parts of strings, for example::" msgstr "" +"Plusieurs chaînes de caractères ou suites d'octets adjacentes (séparées par " +"des blancs), utilisant éventuellement des conventions de guillemets " +"différentes, sont autorisées. La signification est la même que leur " +"concaténation. Ainsi, ``\"hello\" 'world'`` est l'équivalent de ``" +"\"helloworld\"``. Cette fonctionnalité peut être utilisée pour réduire le " +"nombre de barres obliques inverses, pour diviser de longues chaînes de " +"caractères sur plusieurs lignes ou même pour ajouter des commentaires à des " +"portions de chaînes de caractères. Par exemple ::" #: ../Doc/reference/lexical_analysis.rst:583 msgid "" @@ -802,7 +1059,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:592 msgid "Numeric literals" -msgstr "" +msgstr "Littéraux numériques" #: ../Doc/reference/lexical_analysis.rst:598 msgid "" @@ -810,6 +1067,10 @@ msgid "" "and imaginary numbers. There are no complex literals (complex numbers can " "be formed by adding a real number and an imaginary number)." msgstr "" +"Il existe trois types de littéraux numériques : les entiers, les nombres à " +"virgule flottante et les nombres imaginaires. Il n'y a pas de littéraux " +"complexes (les nombres complexes peuvent être construits en ajoutant un " +"nombre réel et un nombre imaginaire)." #: ../Doc/reference/lexical_analysis.rst:602 msgid "" @@ -817,20 +1078,26 @@ msgid "" "actually an expression composed of the unary operator '``-``' and the " "literal ``1``." msgstr "" +"Notez que les littéraux numériques ne comportent pas de signe ; une phrase " +"telle que ``-1`` est en fait une expression composée de l'opérateur unitaire " +"'``-``' et du littéral ``1``." #: ../Doc/reference/lexical_analysis.rst:610 msgid "Integer literals" -msgstr "" +msgstr "Entiers littéraux" #: ../Doc/reference/lexical_analysis.rst:612 msgid "Integer literals are described by the following lexical definitions:" msgstr "" +"Les entiers littéraux sont décrits par les définitions lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:626 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory." msgstr "" +"Il n'y a pas de limite pour la longueur des entiers littéraux, sauf celle " +"relative à la capacité mémoire." #: ../Doc/reference/lexical_analysis.rst:629 msgid "" @@ -838,19 +1105,25 @@ msgid "" "is for disambiguation with C-style octal literals, which Python used before " "version 3.0." msgstr "" +"Notez que placer des zéros en tête de nombre pour un nombre décimal " +"différent de zéro n'est pas autorisé. Cela permet d'éviter l’ambigüité avec " +"les littéraux en base octale selon le style C que Python utilisait avant la " +"version 3.0." #: ../Doc/reference/lexical_analysis.rst:633 msgid "Some examples of integer literals::" -msgstr "" +msgstr "Quelques exemples d'entiers littéraux ::" #: ../Doc/reference/lexical_analysis.rst:642 msgid "Floating point literals" -msgstr "" +msgstr "Nombres à virgule flottante littéraux" #: ../Doc/reference/lexical_analysis.rst:644 msgid "" "Floating point literals are described by the following lexical definitions:" msgstr "" +"Les nombres à virgule flottante littéraux sont décrits par les définitions " +"lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:654 msgid "" @@ -869,11 +1142,13 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:669 msgid "Imaginary literals" -msgstr "" +msgstr "Imaginaires littéraux" #: ../Doc/reference/lexical_analysis.rst:671 msgid "Imaginary literals are described by the following lexical definitions:" msgstr "" +"Les nombres imaginaires sont décrits par les définitions lexicales " +"suivantes :" #: ../Doc/reference/lexical_analysis.rst:676 msgid "" @@ -883,6 +1158,12 @@ msgid "" "nonzero real part, add a floating point number to it, e.g., ``(3+4j)``. " "Some examples of imaginary literals::" msgstr "" +"Un littéral imaginaire produit un nombre complexe dont la partie réelle est " +"``0.0``. Les nombres complexes sont représentés comme une paire de nombres à " +"virgule flottante et possèdent les mêmes restrictions concernant les plages " +"autorisées. Pour créer un nombre complexe dont la partie réelle est non " +"nulle, ajoutez un nombre à virgule flottante à votre littéral imaginaire. " +"Par exemple ``(3+4j)``. Voici d'autres exemples de littéraux imaginaires ::" #: ../Doc/reference/lexical_analysis.rst:688 msgid "Operators" @@ -890,15 +1171,15 @@ msgstr "Opérateurs" #: ../Doc/reference/lexical_analysis.rst:692 msgid "The following tokens are operators:" -msgstr "" +msgstr "Les lexèmes suivants sont des opérateurs :" #: ../Doc/reference/lexical_analysis.rst:705 msgid "Delimiters" -msgstr "" +msgstr "Délimiteurs" #: ../Doc/reference/lexical_analysis.rst:709 msgid "The following tokens serve as delimiters in the grammar:" -msgstr "" +msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire :" #: ../Doc/reference/lexical_analysis.rst:718 msgid "" @@ -907,18 +1188,29 @@ msgid "" "second half of the list, the augmented assignment operators, serve lexically " "as delimiters, but also perform an operation." msgstr "" +"Le point peut aussi apparaître dans les littéraux de nombres à virgule " +"flottante et imaginaires. Une suite de trois points possède une " +"signification spéciale : c'est une ellipse littérale. La deuxième partie de " +"la liste, les opérateurs d'assignation augmentés, servent de délimiteurs " +"pour l'analyseur lexical mais sont aussi des opérateurs." #: ../Doc/reference/lexical_analysis.rst:723 msgid "" "The following printing ASCII characters have special meaning as part of " "other tokens or are otherwise significant to the lexical analyzer:" msgstr "" +"Les caractères ASCII suivants ont une signification spéciale en tant que " +"partie d'autres lexèmes ou ont une signification particulière pour " +"l'analyseur lexical :" #: ../Doc/reference/lexical_analysis.rst:730 msgid "" "The following printing ASCII characters are not used in Python. Their " "occurrence outside string literals and comments is an unconditional error:" msgstr "" +"Les caractères ASCII suivants ne sont pas utilisés en Python. S'ils " +"apparaissent en dehors de chaines littérales ou de commentaires, ils " +"produisent une erreur :" #: ../Doc/reference/lexical_analysis.rst:739 msgid "Footnotes" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index b15a652c..de4ef48e 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/reference/simple_stmts.rst:6 msgid "Simple statements" -msgstr "" +msgstr "Les instructions simples" #: ../Doc/reference/simple_stmts.rst:10 msgid "" @@ -26,10 +26,13 @@ msgid "" "statements may occur on a single line separated by semicolons. The syntax " "for simple statements is:" msgstr "" +"Une instruction simple est contenue dans une seule ligne logique. Plusieurs " +"instructions simples peuvent être écrites sur une seule ligne, séparées par " +"des points-virgules. La syntaxe d'une instruction simple est :" #: ../Doc/reference/simple_stmts.rst:34 msgid "Expression statements" -msgstr "" +msgstr "Les expressions" #: ../Doc/reference/simple_stmts.rst:41 msgid "" @@ -39,12 +42,20 @@ msgid "" "uses of expression statements are allowed and occasionally useful. The " "syntax for an expression statement is:" msgstr "" +"Les expressions sont utilisées (généralement de manière interactive) comme " +"instructions pour calculer et écrire des valeurs, appeler une procédure (une " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"procédures renvoient la valeur ``None``). D'autres utilisations des " +"expressions sont autorisées et parfois utiles. La syntaxe pour une " +"expression en tant qu'instruction est :" #: ../Doc/reference/simple_stmts.rst:50 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." msgstr "" +"Ce genre d'instruction évalue la liste d'expressions (qui peut se limiter à " +"une seule expression)." #: ../Doc/reference/simple_stmts.rst:62 msgid "" @@ -53,22 +64,30 @@ msgid "" "written to standard output on a line by itself (except if the result is " "``None``, so that procedure calls do not cause any output.)" msgstr "" +"En mode interactif, si la valeur n'est pas ``None``, elle est convertie en " +"chaîne en utilisant la fonction native :func:`repr` et la chaîne résultante " +"est écrite sur la sortie standard sur sa propre ligne. Si le résultat est " +"``None``, rien n'est écrit ce qui est usuel pour les appels de procédures." #: ../Doc/reference/simple_stmts.rst:70 msgid "Assignment statements" -msgstr "" +msgstr "Les assignations" #: ../Doc/reference/simple_stmts.rst:80 msgid "" "Assignment statements are used to (re)bind names to values and to modify " "attributes or items of mutable objects:" msgstr "" +"Les assignations sont utilisées pour (re-)lier des noms à des valeurs et " +"modifier des attributs ou des éléments d'objets muables :" #: ../Doc/reference/simple_stmts.rst:94 msgid "" "(See section :ref:`primaries` for the syntax definitions for *attributeref*, " "*subscription*, and *slicing*.)" msgstr "" +"Voir la section :ref:`primaries` pour la définition des syntaxes de " +"*attributeref*, *subscription* et *slicing*." #: ../Doc/reference/simple_stmts.rst:97 msgid "" @@ -77,6 +96,10 @@ msgid "" "tuple) and assigns the single resulting object to each of the target lists, " "from left to right." msgstr "" +"Une assignation évalue la liste d'expressions (gardez en mémoire que ce peut " +"être une simple expression ou une liste dont les éléments sont séparés par " +"des virgules, cette dernière produisant un n-uplet) et assigne l'unique " +"objet résultant à chaque liste cible, de la gauche vers la droite." #: ../Doc/reference/simple_stmts.rst:106 msgid "" @@ -88,22 +111,33 @@ msgid "" "exceptions raised are given with the definition of the object types (see " "section :ref:`types`)." msgstr "" +"Une assignation est définie récursivement en fonction de la forme de la " +"cible (une liste). Quand la cible est une partie d'un objet muable (une " +"référence à un attribut, une sélection ou une tranche), l'objet muable doit " +"effectuer l'assignation au final et décider de sa validité, voire lever une " +"exception si l'assignation n'est pas acceptable. Les règles suivies par les " +"différents types et les exceptions levées sont données dans les définitions " +"des types d'objets (voir la section :ref:`types`)." #: ../Doc/reference/simple_stmts.rst:115 msgid "" "Assignment of an object to a target list, optionally enclosed in parentheses " "or square brackets, is recursively defined as follows." msgstr "" +"L'assignation d'un objet à une liste cible, optionnellement entourée par des " +"parenthèses ou des crochets, est définie récursivement comme suit." #: ../Doc/reference/simple_stmts.rst:118 msgid "If the target list is empty: The object must also be an empty iterable." -msgstr "" +msgstr "si la liste cible est vide : l'objet doit aussi être un itérable vide." #: ../Doc/reference/simple_stmts.rst:120 msgid "" "If the target list is a single target in parentheses: The object is assigned " "to that target." msgstr "" +"si la liste cible est une simple cible entre parenthèses : l'objet est " +"assigné à cette cible." #: ../Doc/reference/simple_stmts.rst:123 msgid "" @@ -112,6 +146,11 @@ msgid "" "items as there are targets in the target list, and the items are assigned, " "from left to right, to the corresponding targets." msgstr "" +"Si la liste cible est une liste de cibles dont les éléments sont séparés par " +"des virgules, ou une cible unique entourée par des crochets : l'objet doit " +"être un itérable avec le même nombre d'éléments qu'il y a de cibles dans la " +"liste cible ; les éléments sont alors assignés, de la gauche vers la droite, " +"aux cibles correspondantes." #: ../Doc/reference/simple_stmts.rst:128 msgid "" @@ -123,6 +162,14 @@ msgid "" "after the starred target. A list of the remaining items in the iterable is " "then assigned to the starred target (the list can be empty)." msgstr "" +"Si la liste cible contient une cible préfixée par un astérisque, appelée " +"cible *étoilée* (*starred target* en anglais) : l'objet doit être un " +"itérable avec au moins autant d'éléments qu'il y a de cibles dans la liste " +"cible, moins un. Les premiers éléments de l'itérable sont assignés, de la " +"gauche vers la droite, aux cibles avant la cible étoilée. Les éléments de " +"queue de l'itérable sont assignés aux cibles après la cible étoilée. Une " +"liste des éléments restants dans l'itérable est alors assignée à la cible " +"étoilée (cette liste peut être vide)." #: ../Doc/reference/simple_stmts.rst:136 msgid "" @@ -130,15 +177,20 @@ msgid "" "are targets in the target list, and the items are assigned, from left to " "right, to the corresponding targets." msgstr "" +"Sinon : l'objet doit être un itérable avec le même nombre d'éléments qu'il y " +"a de cibles dans la liste cible ; les éléments sont assignés, de la gauche " +"vers la droite, vers les cibles correspondantes." #: ../Doc/reference/simple_stmts.rst:140 msgid "" "Assignment of an object to a single target is recursively defined as follows." msgstr "" +"L'assignation d'un objet vers une cible unique est définie récursivement " +"comme suit." #: ../Doc/reference/simple_stmts.rst:142 msgid "If the target is an identifier (name):" -msgstr "" +msgstr "Si la cible est une variable (un nom) :" #: ../Doc/reference/simple_stmts.rst:144 msgid "" @@ -146,12 +198,17 @@ msgid "" "statement in the current code block: the name is bound to the object in the " "current local namespace." msgstr "" +"si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" +"`nonlocal` (respectivement) du bloc de code courant : le nom est lié à " +"l'objet dans l'espace courant des noms locaux." #: ../Doc/reference/simple_stmts.rst:148 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" +"Sinon : le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"espace de noms plus large déterminé par :keyword:`nonlocal`, respectivement." #: ../Doc/reference/simple_stmts.rst:153 msgid "" @@ -159,6 +216,10 @@ msgid "" "count for the object previously bound to the name to reach zero, causing the " "object to be deallocated and its destructor (if it has one) to be called." msgstr "" +"Le lien du nom est modifié si le nom était déjà lié. Ceci peut faire que le " +"compteur de références de l'objet auquel le nom était précédemment lié tombe " +"à zéro, entrainant la dé-allocation de l'objet et l'appel de son destructeur " +"(s'il existe)." #: ../Doc/reference/simple_stmts.rst:159 msgid "" @@ -169,6 +230,12 @@ msgid "" "if it cannot perform the assignment, it raises an exception (usually but not " "necessarily :exc:`AttributeError`)." msgstr "" +"Si la cible est une référence à un attribut : l'expression primaire de la " +"référence est évaluée. Elle doit produire un objet avec des attributs que " +"l'on peut assigner : si ce n'est pas le cas, une :exc:`TypeError` est levée. " +"Python demande alors à cet objet d'assigner l'attribut donné ; si ce n'est " +"pas possible, une exception est levée (habituellement, mais pas " +"nécessairement, :exc:`AttributeError`)." #: ../Doc/reference/simple_stmts.rst:168 msgid "" @@ -181,12 +248,24 @@ msgid "" "to a class attribute, the LHS creates a new instance attribute as the target " "of the assignment::" msgstr "" +"Note : si l'objet est une instance de classe et que la référence à " +"l'attribut apparaît des deux côtés de l'opérateur d'assignation, " +"l'expression \"à droite\", ``a.x`` peut accéder soit à l'attribut d'instance " +"ou (si cet attribut d'instance n'existe pas) à l'attribut de classe. " +"L'expression cible \"à gauche\" ``a.x`` est toujours définie comme un " +"attribut d'instance, en le créant si nécessaire. Ainsi, les deux occurrences " +"de ``a.x`` ne font pas nécessairement référence au même attribut : si " +"l'expression \"à droite\" fait référence à un attribut de classe, " +"l'expression \"à gauche\" crée un nouvel attribut d'instance comme cible de " +"l'assignation ::" #: ../Doc/reference/simple_stmts.rst:182 msgid "" "This description does not necessarily apply to descriptor attributes, such " "as properties created with :func:`property`." msgstr "" +"Cette description ne s'applique pas nécessairement aux attributs des " +"descripteurs, telles que les propriétés créées avec :func:`property`." #: ../Doc/reference/simple_stmts.rst:189 msgid "" @@ -195,6 +274,10 @@ msgid "" "list) or a mapping object (such as a dictionary). Next, the subscript " "expression is evaluated." msgstr "" +"Si la cible est une sélection : l'expression primaire de la référence est " +"évaluée. Elle doit produire soit un objet séquence mutable (telle qu'une " +"liste) ou un objet tableau de correspondances (tel qu'un dictionnaire). " +"Ensuite, l'expression de la sélection est évaluée." #: ../Doc/reference/simple_stmts.rst:198 msgid "" @@ -206,6 +289,14 @@ msgid "" "`IndexError` is raised (assignment to a subscripted sequence cannot add new " "items to a list)." msgstr "" +"Si la primaire est un objet séquence mutable (telle qu'une liste), la " +"sélection doit produire un entier. S'il est négatif, la longueur de la " +"séquence lui est ajoutée. La valeur résultante doit être un entier positif " +"ou nul, plus petit que la longueur de la séquence, et Python demande à la " +"séquence d'assigner l'objet à l'élément se trouvant à cet indice. Si " +"l'indice est hors limites, une :exc:`IndexError` est levée (une assignation " +"à une sélection dans une séquence ne peut pas ajouter de nouveaux éléments à " +"une liste)." #: ../Doc/reference/simple_stmts.rst:209 msgid "" @@ -216,12 +307,20 @@ msgid "" "the same key value, or insert a new key/value pair (if no key with the same " "value existed)." msgstr "" +"Si la primaire est un objet tableau de correspondances (tel qu'un " +"dictionnaire), la sélection doit être d'un type compatible avec le type des " +"clés ; Python demande alors au tableau de correspondances de créer un couple " +"clé-valeur qui associe la sélection à l'objet assigné. Ceci peut remplacer " +"une correspondance déjà existante pour une clé donnée ou insérer un nouveau " +"couple clé-valeur." #: ../Doc/reference/simple_stmts.rst:215 msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"les arguments appropriés." #: ../Doc/reference/simple_stmts.rst:220 msgid "" @@ -237,6 +336,18 @@ msgid "" "be different from the length of the assigned sequence, thus changing the " "length of the target sequence, if the target sequence allows it." msgstr "" +"Si la cible est une tranche : l'expression primaire de la référence est " +"évaluée. Elle doit produire un objet séquence mutable (telle qu'une liste). " +"L'objet assigné doit être un objet séquence du même type. Ensuite, les " +"expressions de la borne inférieure et de la borne supérieure sont évaluées, " +"dans la mesure où elles sont spécifiées (les valeurs par défaut sont zéro et " +"la longueur de la séquence). Les bornes doivent être des entiers. Si une " +"borne est négative, la longueur de la séquence lui est ajoutée. Les bornes " +"résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " +"séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " +"la tranche avec les éléments de la séquence à assigner. La longueur de la " +"tranche peut être différent de la longueur de la séquence à assigner, ce qui " +"modifie alors la longueur de la séquence cible, si celle-ci le permet." #: ../Doc/reference/simple_stmts.rst:234 msgid "" @@ -244,6 +355,9 @@ msgid "" "same as for expressions, and invalid syntax is rejected during the code " "generation phase, causing less detailed error messages." msgstr "" +"Dans l'implémentation actuelle, la syntaxe pour les cibles est similaire à " +"celle des expressions. Toute syntaxe invalide est rejetée pendant la phase " +"de génération de code, ce qui produit des messages d'erreurs moins détaillés." #: ../Doc/reference/simple_stmts.rst:238 msgid "" @@ -253,30 +367,40 @@ msgid "" "variables occur left-to-right, sometimes resulting in confusion. For " "instance, the following program prints ``[0, 2]``::" msgstr "" +"Bien que la définition de l'assignation implique que le passage entre le " +"côté gauche et le côté droit soient \"simultanés\" (par exemple, ``a, b = b, " +"a`` permute les deux variables), le passage *à l'intérieur* des collections " +"de variables que l'on assigne intervient de la gauche vers la droite, ce qui " +"peut entraîner quelques confusions. Par exemple, le programme suivant " +"affiche ``[0, 2]`` ::" #: ../Doc/reference/simple_stmts.rst:252 msgid ":pep:`3132` - Extended Iterable Unpacking" -msgstr "" +msgstr ":pep:`3132` -- dépaquetage étendu d'itérable" #: ../Doc/reference/simple_stmts.rst:253 msgid "The specification for the ``*target`` feature." -msgstr "" +msgstr "Spécification de la fonctionnalité ``*cible``." #: ../Doc/reference/simple_stmts.rst:259 msgid "Augmented assignment statements" -msgstr "" +msgstr "Les assignations augmentées" #: ../Doc/reference/simple_stmts.rst:277 msgid "" "Augmented assignment is the combination, in a single statement, of a binary " "operation and an assignment statement:" msgstr "" +"Une assignation augmentée est la combinaison, dans une seule instruction, " +"d'une opération binaire et d'une assignation :" #: ../Doc/reference/simple_stmts.rst:286 msgid "" "(See section :ref:`primaries` for the syntax definitions of the last three " "symbols.)" msgstr "" +"Voir la section :ref:`primaries` pour la définition des syntaxes des trois " +"derniers symboles." #: ../Doc/reference/simple_stmts.rst:289 msgid "" @@ -286,6 +410,11 @@ msgid "" "operands, and assigns the result to the original target. The target is only " "evaluated once." msgstr "" +"Une assignation augmentée évalue la cible (qui, au contraire des " +"assignations normales, ne peut pas être un dépaquetage) et la liste " +"d'expressions, effectue l'opération binaire (spécifique au type " +"d'assignation) sur les deux opérandes et assigne le résultat à la cible " +"originale. La cible n'est évaluée qu'une seule fois." #: ../Doc/reference/simple_stmts.rst:294 msgid "" @@ -295,6 +424,12 @@ msgid "" "operation is performed *in-place*, meaning that rather than creating a new " "object and assigning that to the target, the old object is modified instead." msgstr "" +"Une assignation augmentée comme ``x += 1`` peut être ré-écrite en ``x = x + " +"1`` pour obtenir un effet similaire, mais pas exactement équivalent. Dans la " +"version augmentée. ``x`` n'est évalué qu'une seule fois. Aussi, lorsque " +"c'est possible, l'opération concrète est effectuée *sur place*, c'est-à-dire " +"que plutôt que de créer un nouvel objet et l'assigner à la cible, c'est le " +"vieil objet qui est modifié." #: ../Doc/reference/simple_stmts.rst:300 msgid "" @@ -303,6 +438,10 @@ msgid "" "first looks-up ``a[i]``, then it evaluates ``f(x)`` and performs the " "addition, and lastly, it writes the result back to ``a[i]``." msgstr "" +"Au contraire des assignations normales, les assignations augmentées évaluent " +"la partie gauche *avant* d'évaluer la partie droite. Par exemple, ``a[i] += " +"f(x)`` commence par s'intéresser à ``a[i]``, puis Python évalue ``f(x)``, " +"effectue l'addition et, enfin, écrit le résultat dans ``a[i]``." #: ../Doc/reference/simple_stmts.rst:305 msgid "" @@ -312,6 +451,12 @@ msgid "" "possible *in-place* behavior, the binary operation performed by augmented " "assignment is the same as the normal binary operations." msgstr "" +"À l'exception de l'assignation de tuples et de cibles multiples dans une " +"seule instruction, l'assignation effectuée par une assignation augmentée est " +"traitée de la même manière qu'une assignation normale. De même, à " +"l'exception du comportement possible *sur place*, l'opération binaire " +"effectuée par assignation augmentée est la même que les opérations binaires " +"normales." #: ../Doc/reference/simple_stmts.rst:311 msgid "" @@ -319,25 +464,31 @@ msgid "" "class and instance attributes ` applies as for regular " "assignments." msgstr "" +"Pour les cibles qui sont des références à des attributs, la même :ref:`mise " +"en garde sur les attributs de classe et d'instances ` " +"s'applique que pour les assignations normales." #: ../Doc/reference/simple_stmts.rst:318 msgid "The :keyword:`assert` statement" -msgstr "" +msgstr "L'instruction :keyword:`assert`" #: ../Doc/reference/simple_stmts.rst:324 msgid "" "Assert statements are a convenient way to insert debugging assertions into a " "program:" msgstr "" +"Les instructions ``assert`` sont une manière pratique d'insérer des tests de " +"débogage au sein d'un programme :" #: ../Doc/reference/simple_stmts.rst:330 msgid "The simple form, ``assert expression``, is equivalent to ::" -msgstr "" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:335 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:344 msgid "" @@ -350,16 +501,27 @@ msgid "" "unnecessary to include the source code for the expression that failed in the " "error message; it will be displayed as part of the stack trace." msgstr "" +"Ces équivalences supposent que :const:`__debug__` et :exc:`AssertionError` " +"font référence aux variables natives ainsi nommées. Dans l'implémentation " +"actuelle, la variable native :const:`__debug__` vaut ``True`` dans des " +"circonstances normales, ``False`` quand les optimisations sont demandées " +"(ligne de commande avec l'option -O). Le générateur de code actuel ne " +"produit aucun code pour une instruction assert quand vous demandez les " +"optimisations à la compilation. Notez qu'il est superflu d'inclure le code " +"source dans le message d'erreur pour l'expression qui a échoué : il est " +"affiché dans la pile d'appels." #: ../Doc/reference/simple_stmts.rst:353 msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"native est déterminée au moment où l'interpréteur démarre." #: ../Doc/reference/simple_stmts.rst:360 msgid "The :keyword:`pass` statement" -msgstr "" +msgstr "L'instruction :keyword:`pass`" #: ../Doc/reference/simple_stmts.rst:370 msgid "" @@ -367,6 +529,10 @@ msgid "" "happens. It is useful as a placeholder when a statement is required " "syntactically, but no code needs to be executed, for example::" msgstr "" +":keyword:`pass` est une opération vide --- quand elle est exécutée, rien ne " +"se passe. Elle est utile comme bouche-trou lorsqu'une instruction est " +"syntaxiquement requise mais qu'aucun code ne doit être exécuté. Par " +"exemple ::" #: ../Doc/reference/simple_stmts.rst:382 msgid "The :keyword:`del` statement" @@ -377,12 +543,17 @@ msgid "" "Deletion is recursively defined very similar to the way assignment is " "defined. Rather than spelling it out in full details, here are some hints." msgstr "" +"La suppression est récursivement définie de la même manière que " +"l'assignation. Plutôt que de détailler cela de manière approfondie, voici " +"quelques indices." #: ../Doc/reference/simple_stmts.rst:395 msgid "" "Deletion of a target list recursively deletes each target, from left to " "right." msgstr "" +"La suppression d'une liste cible (*target_list* dans la grammaire ci-dessus) " +"supprime récursivement chaque cible, de la gauche vers la droite." #: ../Doc/reference/simple_stmts.rst:401 msgid "" @@ -391,6 +562,10 @@ msgid "" "statement in the same code block. If the name is unbound, a :exc:" "`NameError` exception will be raised." msgstr "" +"La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " +"locaux, ou l'espace des noms globaux si ce nom apparaît dans une " +"instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " +"lié, une exception :exc:`NameError` est levée." #: ../Doc/reference/simple_stmts.rst:408 msgid "" @@ -399,34 +574,47 @@ msgid "" "to assignment of an empty slice of the right type (but even this is " "determined by the sliced object)." msgstr "" +"La suppression d'une référence à un attribut, une sélection ou une tranche " +"est passée à l'objet primaire concerné : la suppression d'une tranche est en " +"général équivalente à l'assignation d'une tranche vide du type adéquat (mais " +"ceci est au final déterminé par l'objet que l'on tranche)." #: ../Doc/reference/simple_stmts.rst:413 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block." msgstr "" +"Auparavant, il était illégal de supprimer un nom dans l'espace des noms " +"locaux si celui-ci apparaissait comme variable libre dans un bloc imbriqué." #: ../Doc/reference/simple_stmts.rst:421 msgid "The :keyword:`return` statement" -msgstr "" +msgstr "L'instruction :keyword:`return`" #: ../Doc/reference/simple_stmts.rst:431 msgid "" ":keyword:`return` may only occur syntactically nested in a function " "definition, not within a nested class definition." msgstr "" +":keyword:`return` ne peut être placée qu'à l'intérieur d'une définition de " +"fonction, pas à l'intérieur d'une définition de classe." #: ../Doc/reference/simple_stmts.rst:434 msgid "" "If an expression list is present, it is evaluated, else ``None`` is " "substituted." msgstr "" +"Si une liste d'expressions (*expression_list* dans la grammaire ci-dessus) " +"est présente, elle est évaluée, sinon ``None`` est utilisée comme valeur par " +"défaut." #: ../Doc/reference/simple_stmts.rst:436 msgid "" ":keyword:`return` leaves the current function call with the expression list " "(or ``None``) as return value." msgstr "" +":keyword:`return` quitte l'appel à la fonction courante avec la liste " +"d'expressions (ou ``None``) comme valeur de retour." #: ../Doc/reference/simple_stmts.rst:441 msgid "" @@ -434,6 +622,9 @@ msgid "" "a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really leaving the function." msgstr "" +"Quand :keyword:`return` fait sortir d'une instruction :keyword:`try` avec " +"une clause :keyword:`finally`, cette clause :keyword:`finally` est exécutée " +"avant de réellement quitter la fonction." #: ../Doc/reference/simple_stmts.rst:445 msgid "" @@ -442,6 +633,11 @@ msgid "" "returned value (if any) is used as an argument to construct :exc:" "`StopIteration` and becomes the :attr:`StopIteration.value` attribute." msgstr "" +"Dans une fonction générateur, l'instruction :keyword:`return` indique que le " +"générateur est terminé et provoque la levée d'une :exc:`StopIteration`. La " +"valeur de retour (s'il y en a une) est utilisée comme argument pour " +"construire l'exception :exc:`StopIteration` et devient l'attribut :attr:" +"`StopIteration.value`." #: ../Doc/reference/simple_stmts.rst:454 msgid "The :keyword:`yield` statement" @@ -454,10 +650,15 @@ msgid "" "parentheses that would otherwise be required in the equivalent yield " "expression statement. For example, the yield statements ::" msgstr "" +"L'instruction :keyword:`yield` est sémantiquement équivalente à une :ref:" +"`expression yield `. L'instruction *yield* peut être utilisée " +"pour omettre les parenthèses qui seraient autrement requises dans " +"l'instruction équivalente d'expression yield. Par exemple, les instructions " +"yield ::" #: ../Doc/reference/simple_stmts.rst:474 msgid "are equivalent to the yield expression statements ::" -msgstr "" +msgstr "sont équivalentes aux instructions expressions yield ::" #: ../Doc/reference/simple_stmts.rst:479 msgid "" @@ -466,12 +667,19 @@ msgid "" "function. Using yield in a function definition is sufficient to cause that " "definition to create a generator function instead of a normal function." msgstr "" +"Les expressions et les instructions yield sont utilisées seulement dans la " +"définition des fonctions :term:`générateurs ` et apparaissent " +"uniquement dans le corps de la fonction générateur. L'utilisation de yield " +"dans la définition d'une fonction est suffisant pour que cette définition " +"crée une fonction générateur au lieu d'une fonction normale." #: ../Doc/reference/simple_stmts.rst:484 msgid "" "For full details of :keyword:`yield` semantics, refer to the :ref:" "`yieldexpr` section." msgstr "" +"Pour tous les détails sur la sémantique de :keyword:`yield`, reportez-vous à " +"la section :ref:`yieldexpr`." #: ../Doc/reference/simple_stmts.rst:490 msgid "The :keyword:`raise` statement" @@ -484,6 +692,10 @@ msgid "" "current scope, a :exc:`RuntimeError` exception is raised indicating that " "this is an error." msgstr "" +"Si aucune expression n'est présente, :keyword:`raise` propage la dernière " +"exception active dans la portée courante. Si aucune exception n'est active " +"dans la portée courante, une exception :exc:`RuntimeError` est levée, " +"indiquant que c'est une erreur." #: ../Doc/reference/simple_stmts.rst:506 msgid "" @@ -492,12 +704,18 @@ msgid "" "`BaseException`. If it is a class, the exception instance will be obtained " "when needed by instantiating the class with no arguments." msgstr "" +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"exception. Ce doit être une sous-classe ou une instance de :class:" +"`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " +"en instanciant la classe sans argument (au moment voulu)." #: ../Doc/reference/simple_stmts.rst:511 msgid "" "The :dfn:`type` of the exception is the exception instance's class, the :dfn:" "`value` is the instance itself." msgstr "" +"Le :dfn:`type` de l'exception est la classe de l'instance de l'exception, " +"la :dfn:`value` est l'instance elle-même." #: ../Doc/reference/simple_stmts.rst:516 msgid "" @@ -507,6 +725,12 @@ msgid "" "using the :meth:`with_traceback` exception method (which returns the same " "exception instance, with its traceback set to its argument), like so::" msgstr "" +"Normalement, un objet *trace d'appels* est créé automatiquement quand une " +"exception est levée et il lui est rattaché comme attribut :attr:" +"`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " +"définir votre propre trace d'appels d'un seul coup en utilisant la méthode " +"des exceptions :meth:`with_traceback` (qui renvoie la même instance " +"d'exception avec sa trace d'appels passée en argument), comme ceci ::" #: ../Doc/reference/simple_stmts.rst:528 msgid "" @@ -516,6 +740,11 @@ msgid "" "is writable). If the raised exception is not handled, both exceptions will " "be printed::" msgstr "" +"La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " +"fournissez, la seconde \"expression\" doit être une autre classe ou instance " +"d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" +"`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " +"deux exceptions sont affichées ::" #: ../Doc/reference/simple_stmts.rst:549 msgid "" @@ -523,6 +752,10 @@ msgid "" "exception handler or a :keyword:`finally` clause: the previous exception is " "then attached as the new exception's :attr:`__context__` attribute::" msgstr "" +"Un mécanisme similaire est mis en œuvre implicitement si une exception est " +"levée à l'intérieur d'un gestionnaire d'exception ou d'une clause :keyword:" +"`finally` : la première exception est rattachée à l'attribut :attr:" +"`__context__` de la nouvelle exception ::" #: ../Doc/reference/simple_stmts.rst:568 msgid "" @@ -530,10 +763,13 @@ msgid "" "`exceptions`, and information about handling exceptions is in section :ref:" "`try`." msgstr "" +"Des informations complémentaires sur les exceptions sont disponibles dans la " +"section :ref:`exceptions` et sur la gestion des exceptions dans la section :" +"ref:`try`." #: ../Doc/reference/simple_stmts.rst:575 msgid "The :keyword:`break` statement" -msgstr "" +msgstr "L'instruction :keyword:`break`" #: ../Doc/reference/simple_stmts.rst:586 msgid "" @@ -541,18 +777,25 @@ msgid "" "keyword:`while` loop, but not nested in a function or class definition " "within that loop." msgstr "" +"Une instruction :keyword:`break` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe à l'intérieur de cette boucle." #: ../Doc/reference/simple_stmts.rst:593 msgid "" "It terminates the nearest enclosing loop, skipping the optional :keyword:" "`else` clause if the loop has one." msgstr "" +"Elle termine la boucle la plus imbriquée, shuntant l'éventuelle clause :" +"keyword:`else` de la boucle." #: ../Doc/reference/simple_stmts.rst:596 msgid "" "If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " "target keeps its current value." msgstr "" +"Si une boucle :keyword:`for` est terminée par un :keyword:`break`, la cible " +"qui contrôle la boucle garde sa valeur." #: ../Doc/reference/simple_stmts.rst:601 msgid "" @@ -560,10 +803,13 @@ msgid "" "a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really leaving the loop." msgstr "" +"Quand :keyword:`break` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`finally` est exécutée avant de quitter la boucle." #: ../Doc/reference/simple_stmts.rst:609 msgid "The :keyword:`continue` statement" -msgstr "" +msgstr "L'instruction :keyword:`continue`" #: ../Doc/reference/simple_stmts.rst:621 msgid "" @@ -572,6 +818,11 @@ msgid "" "or :keyword:`finally` clause within that loop. It continues with the next " "cycle of the nearest enclosing loop." msgstr "" +"L'instruction :keyword:`continue` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe ni dans une clause :keyword:`finally`, à l'intérieur " +"de cette boucle. Elle fait continuer le flot d'exécution au prochain cycle " +"de la boucle la plus imbriquée." #: ../Doc/reference/simple_stmts.rst:626 msgid "" @@ -579,26 +830,34 @@ msgid "" "with a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really starting the next loop cycle." msgstr "" +"Quand :keyword:`continue` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`finally` est exécutée avant de commencer le cycle suivant de la " +"boucle." #: ../Doc/reference/simple_stmts.rst:635 msgid "The :keyword:`import` statement" -msgstr "" +msgstr "L'instruction :keyword:`import`" #: ../Doc/reference/simple_stmts.rst:654 msgid "" "The basic import statement (no :keyword:`from` clause) is executed in two " "steps:" msgstr "" +"L'instruction de base *import* (sans clause :keyword:`from`) est exécutée en " +"deux étapes :" #: ../Doc/reference/simple_stmts.rst:657 msgid "find a module, loading and initializing it if necessary" -msgstr "" +msgstr "trouve un module, le charge et l'initialise si nécessaire" #: ../Doc/reference/simple_stmts.rst:658 msgid "" "define a name or names in the local namespace for the scope where the :" "keyword:`import` statement occurs." msgstr "" +"définit un ou des noms (*name* dans la grammaire ci-dessus) dans l'espace " +"des noms locaux de la portée où l'instruction :keyword:`import` apparaît." #: ../Doc/reference/simple_stmts.rst:661 msgid "" @@ -606,6 +865,9 @@ msgid "" "steps are carried out separately for each clause, just as though the clauses " "had been separated out into individual import statements." msgstr "" +"Quand l'instruction contient plusieurs clauses (séparées par des virgules), " +"les deux étapes sont menées séparément pour chaque clause, comme si les " +"clauses étaient séparées dans des instructions d'importations individuelles." #: ../Doc/reference/simple_stmts.rst:666 msgid "" @@ -617,18 +879,30 @@ msgid "" "could not be located, *or* that an error occurred while initializing the " "module, which includes execution of the module's code." msgstr "" +"Les détails de la première étape, de recherche et de chargement des modules " +"sont décrits largement dans la section relative au :ref:`système " +"d'importation `, qui décrit également les différents types de " +"paquets et modules qui peuvent être importés, de même que les points " +"d'entrée pouvant être utilisés pour personnaliser le système d'importation. " +"Notez que des erreurs dans cette étape peuvent indiquer soit que le module " +"n'a pas été trouvé, soit qu'une erreur s'est produite lors de " +"l'initialisation du module, ce qui comprend l'exécution du code du module." #: ../Doc/reference/simple_stmts.rst:674 msgid "" "If the requested module is retrieved successfully, it will be made available " "in the local namespace in one of three ways:" msgstr "" +"Si le module requis est bien récupéré, il est mis à disposition de l'espace " +"de noms locaux suivant l'une des trois façons suivantes :" #: ../Doc/reference/simple_stmts.rst:679 msgid "" "If the module name is followed by :keyword:`as`, then the name following :" "keyword:`as` is bound directly to the imported module." msgstr "" +"Si le nom du module est suivi d'un :keyword:`as`, le nom suivant :keyword:" +"`as` est lié directement au module importé." #: ../Doc/reference/simple_stmts.rst:681 msgid "" @@ -636,6 +910,9 @@ msgid "" "module, the module's name is bound in the local namespace as a reference to " "the imported module" msgstr "" +"si aucun autre nom n'est spécifié et que le module en cours d'importation " +"est un module de niveau le plus haut, le nom du module est lié dans l'espace " +"des noms locaux au module importé ;" #: ../Doc/reference/simple_stmts.rst:684 msgid "" @@ -644,34 +921,43 @@ msgid "" "namespace as a reference to the top level package. The imported module must " "be accessed using its full qualified name rather than directly" msgstr "" +"si le module en cours d'importation n'est *pas* un module de plus haut " +"niveau, alors le nom du paquet de plus haut niveau qui contient ce module " +"est lié dans l'espace des noms locaux au paquet de plus haut niveau. Vous " +"pouvez accéder au module importé en utilisant son nom pleinement qualifié et " +"non directement." #: ../Doc/reference/simple_stmts.rst:695 msgid "The :keyword:`from` form uses a slightly more complex process:" -msgstr "" +msgstr "La forme :keyword:`from` utilise un processus un peu plus complexe :" #: ../Doc/reference/simple_stmts.rst:697 msgid "" "find the module specified in the :keyword:`from` clause, loading and " "initializing it if necessary;" msgstr "" +"trouve le module spécifié dans la clause :keyword:`from`, le charge et " +"l'initialise si nécessaire ;" #: ../Doc/reference/simple_stmts.rst:699 msgid "for each of the identifiers specified in the :keyword:`import` clauses:" -msgstr "" +msgstr "pour chaque nom spécifié dans les clauses :keyword:`import` :" #: ../Doc/reference/simple_stmts.rst:701 msgid "check if the imported module has an attribute by that name" -msgstr "" +msgstr "vérifie si le module importé possède un attribut avec ce nom ;" #: ../Doc/reference/simple_stmts.rst:702 msgid "" "if not, attempt to import a submodule with that name and then check the " "imported module again for that attribute" msgstr "" +"si non, essaie d'importer un sous-module avec ce nom puis vérifie si le " +"module importé possède lui-même cet attribut ;" #: ../Doc/reference/simple_stmts.rst:704 msgid "if the attribute is not found, :exc:`ImportError` is raised." -msgstr "" +msgstr "si l'attribut n'est pas trouvé, une :exc:`ImportError` est levée." #: ../Doc/reference/simple_stmts.rst:705 msgid "" @@ -679,6 +965,9 @@ msgid "" "the name in the :keyword:`as` clause if it is present, otherwise using the " "attribute name" msgstr "" +"sinon, une référence à cette valeur est stockée dans l'espace des noms " +"locaux, en utilisant le nom de la clause :keyword:`as` si elle est présente, " +"sinon en utilisant le nom de l'attribut." #: ../Doc/reference/simple_stmts.rst:709 msgid "Examples::" @@ -690,6 +979,9 @@ msgid "" "defined in the module are bound in the local namespace for the scope where " "the :keyword:`import` statement occurs." msgstr "" +"Si la liste des noms est remplacée par une étoile (``'*'``), tous les noms " +"publics définis dans le module sont liés dans l'espace des noms locaux de la " +"portée où apparaît l'instruction :keyword:`import`." #: ../Doc/reference/simple_stmts.rst:723 msgid "" @@ -703,6 +995,17 @@ msgid "" "is intended to avoid accidentally exporting items that are not part of the " "API (such as library modules which were imported and used within the module)." msgstr "" +"Les *noms publics* définis par un module sont déterminés en cherchant dans " +"l'espace de noms du module une variable nommée ``__all__`` ; Si elle est " +"définie, elle doit être une séquence de chaînes désignant les noms définis " +"ou importés par ce module. Les noms donnés dans ``__all__`` sont tous " +"considérés publics et doivent exister. Si ``__all__`` n'est pas définie, " +"l'ensemble des noms publics contient tous les noms trouvés dans l'espace des " +"noms du module qui ne commencent pas par un caractère souligné (``_``). " +"``__all__`` doit contenir toute l'API publique. Elle est destinée à éviter " +"l'export accidentel d'éléments qui ne font pas partie de l'API (tels que des " +"modules de bibliothèques qui ont été importés et utilisé à l'intérieur du " +"module)." #: ../Doc/reference/simple_stmts.rst:733 msgid "" @@ -710,6 +1013,9 @@ msgid "" "allowed at the module level. Attempting to use it in class or function " "definitions will raise a :exc:`SyntaxError`." msgstr "" +"La forme d'\\ *import* avec astérisque --- ``from module import *`` --- est " +"autorisée seulement au niveau du module. Si vous essayez de l'utiliser dans " +"une définition de classe ou de fonction, cela lève une :exc:`SyntaxError`." #: ../Doc/reference/simple_stmts.rst:740 msgid "" @@ -727,16 +1033,33 @@ msgid "" "``pkg.subpkg2.mod``. The specification for relative imports is contained " "within :pep:`328`." msgstr "" +"Quand vous spécifiez les modules à importer, vous n'avez pas besoin de " +"spécifier les noms absolus des modules. Quand un module ou un paquet est " +"contenu dans un autre paquet, il est possible d'effectuer une importation " +"relative à l'intérieur du même paquet de plus haut niveau sans avoir à " +"mentionner le nom du paquet. En utilisant des points en entête du module ou " +"du paquet spécifié après :keyword:`from`, vous pouvez spécifier combien de " +"niveaux vous souhaitez remonter dans la hiérarchie du paquet courant sans " +"spécifier de nom exact. Un seul point en tête signifie le paquet courant où " +"se situe le module qui effectue l'importation. Deux points signifient de " +"remonter d'un niveau. Trois points, remonter de deux niveaux et ainsi de " +"suite. Ainsi, si vous exécutez ``from . import mod`` dans un module du " +"paquet ``pkg``, vous importez finalement ``pkg.mod``. Et si vous exécutez " +"``from ..souspkg2 import mod`` depuis ``pkg.souspkg1``, vous importez " +"finalement ``pkg.souspkg2.mod``. La spécification des importations relatives " +"se situe dans la :pep:`328`." #: ../Doc/reference/simple_stmts.rst:753 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." msgstr "" +":func:`importlib.import_module` est fournie pour gérer les applications qui " +"déterminent dynamiquement les modules à charger." #: ../Doc/reference/simple_stmts.rst:760 msgid "Future statements" -msgstr "" +msgstr "L'instruction future" #: ../Doc/reference/simple_stmts.rst:764 msgid "" @@ -744,6 +1067,10 @@ msgid "" "module should be compiled using syntax or semantics that will be available " "in a specified future release of Python where the feature becomes standard." msgstr "" +"Une :dfn:`instruction future` est une directive à l'attention du compilateur " +"afin qu'un module particulier soit compilé en utilisant une syntaxe ou une " +"sémantique qui sera disponible dans une future version de Python où cette " +"fonctionnalité est devenue un standard." #: ../Doc/reference/simple_stmts.rst:768 msgid "" @@ -752,28 +1079,35 @@ msgid "" "of the new features on a per-module basis before the release in which the " "feature becomes standard." msgstr "" +"L'instruction *future* a vocation à faciliter les migrations vers les " +"futures versions de Python qui introduisent des changements incompatibles au " +"langage. Cela permet l'utilisation de nouvelles fonctionnalités module par " +"module avant qu'une version n'officialise cette fonctionnalité comme un " +"standard." #: ../Doc/reference/simple_stmts.rst:781 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" msgstr "" +"Une instruction *future* doit apparaître en haut du module. Les seules " +"lignes autorisées avant une instruction *future* sont :" #: ../Doc/reference/simple_stmts.rst:784 msgid "the module docstring (if any)," -msgstr "" +msgstr "la chaîne de documentation du module (si elle existe)," #: ../Doc/reference/simple_stmts.rst:785 msgid "comments," -msgstr "" +msgstr "des commentaires," #: ../Doc/reference/simple_stmts.rst:786 msgid "blank lines, and" -msgstr "" +msgstr "des lignes vides et" #: ../Doc/reference/simple_stmts.rst:787 msgid "other future statements." -msgstr "" +msgstr "d'autres instructions *future*." #: ../Doc/reference/simple_stmts.rst:791 msgid "" @@ -782,6 +1116,12 @@ msgid "" "and ``with_statement``. They are all redundant because they are always " "enabled, and only kept for backwards compatibility." msgstr "" +"Les fonctionnalités (*feature* dans la grammaire ci-dessus) reconnues par " +"Python 3.0 sont ``absolute_import``, ``division``, ``generators``, " +"``unicode_literals``, ``print_function``, ``nested_scopes`` et " +"``with_statement``. Elles sont toutes redondantes car elles sont de toute " +"manière activées ; elles ne sont conservées que par souci de compatibilité " +"descendante." #: ../Doc/reference/simple_stmts.rst:796 msgid "" @@ -792,6 +1132,13 @@ msgid "" "case the compiler may need to parse the module differently. Such decisions " "cannot be pushed off until runtime." msgstr "" +"Une instruction *future* est reconnue et traitée spécialement au moment de " +"la compilation : les modifications à la sémantique des constructions de base " +"sont souvent implémentées en générant un code différent. Il peut même " +"arriver qu'une nouvelle fonctionnalité ait une syntaxe incompatible (tel " +"qu'un nouveau mot réservé) ; dans ce cas, le compilateur a besoin d'analyser " +"le module de manière différente. De telles décisions ne peuvent pas être " +"différées au moment de l'exécution." #: ../Doc/reference/simple_stmts.rst:803 msgid "" @@ -799,6 +1146,9 @@ msgid "" "defined, and raises a compile-time error if a future statement contains a " "feature not known to it." msgstr "" +"Pour une version donnée, le compilateur sait quelles fonctionnalités ont été " +"définies et lève une erreur à la compilation si une instruction *future* " +"contient une fonctionnalité qui lui est inconnue." #: ../Doc/reference/simple_stmts.rst:807 msgid "" @@ -806,22 +1156,30 @@ msgid "" "is a standard module :mod:`__future__`, described later, and it will be " "imported in the usual way at the time the future statement is executed." msgstr "" +"La sémantique à l'exécution est la même que pour toute autre instruction " +"d'importation : il existe un module standard :mod:`__future__`, décrit plus " +"loin, qui est importé comme les autres au moment ou l'instruction *future* " +"est exécutée." #: ../Doc/reference/simple_stmts.rst:811 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." msgstr "" +"La sémantique particulière à l'exécution dépend des fonctionnalités " +"apportées par l'instruction *future*." #: ../Doc/reference/simple_stmts.rst:814 msgid "Note that there is nothing special about the statement::" -msgstr "" +msgstr "Notez que l'instruction suivante est tout à fait normale ::" #: ../Doc/reference/simple_stmts.rst:818 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." msgstr "" +"Ce n'est pas une instruction *future* ; c'est une instruction d'importation " +"ordinaire qui n'a aucune sémantique particulière ou restriction de syntaxe." #: ../Doc/reference/simple_stmts.rst:821 msgid "" @@ -831,6 +1189,12 @@ msgid "" "statement. This can be controlled by optional arguments to :func:`compile` " "--- see the documentation of that function for details." msgstr "" +"Le code compilé par des appels aux fonctions natives :func:`exec` et :func:" +"`compile` dans un module :mod:`M` comportant une instruction *future* " +"utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " +"l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " +"à :func:`compile` --- voir la documentation de cette fonction pour les " +"détails." #: ../Doc/reference/simple_stmts.rst:827 msgid "" @@ -840,18 +1204,24 @@ msgid "" "and the script includes a future statement, it will be in effect in the " "interactive session started after the script is executed." msgstr "" +"Une instruction *future* entrée à l'invite de l'interpréteur interactif est " +"effective pour le reste de la session de l'interpréteur. Si l'interpréteur " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"être exécuté et que ce script contient une instruction *future*, elle est " +"effective pour la session interactive qui démarre après l'exécution du " +"script." #: ../Doc/reference/simple_stmts.rst:835 msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` - Back to the __future__" +msgstr ":pep:`236` -- retour vers le __future__" #: ../Doc/reference/simple_stmts.rst:836 msgid "The original proposal for the __future__ mechanism." -msgstr "" +msgstr "La proposition originale pour le mécanisme de __future__." #: ../Doc/reference/simple_stmts.rst:842 msgid "The :keyword:`global` statement" -msgstr "" +msgstr "L'instruction :keyword:`global`" #: ../Doc/reference/simple_stmts.rst:851 msgid "" @@ -861,12 +1231,20 @@ msgid "" "variable without :keyword:`global`, although free variables may refer to " "globals without being declared global." msgstr "" +"L'instruction :keyword:`global` est une déclaration qui couvre l'ensemble du " +"bloc de code courant. Elle signifie que les noms (*identifier* dans la " +"grammaire ci-dessus) listés doivent être interprétés comme globaux. Il est " +"impossible d'assigner une variable globale sans :keyword:`global`, mais " +"rappelez-vous que les variables libres peuvent faire référence à des " +"variables globales sans avoir été déclarées en tant que telles." #: ../Doc/reference/simple_stmts.rst:857 msgid "" "Names listed in a :keyword:`global` statement must not be used in the same " "code block textually preceding that :keyword:`global` statement." msgstr "" +"Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " +"utilisés, dans le même bloc de code, avant l'instruction :keyword:`global`." #: ../Doc/reference/simple_stmts.rst:860 msgid "" @@ -896,7 +1274,7 @@ msgstr "" #: ../Doc/reference/simple_stmts.rst:887 msgid "The :keyword:`nonlocal` statement" -msgstr "" +msgstr "L'instruction :keyword:`nonlocal`" #: ../Doc/reference/simple_stmts.rst:898 msgid "" @@ -906,6 +1284,13 @@ msgid "" "local namespace first. The statement allows encapsulated code to rebind " "variables outside of the local scope besides the global (module) scope." msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms listés font référence " +"aux variables liées précédemment, dans la portée la plus petite entourant " +"l'instruction, à l'exception des variables globales. C'est important car le " +"comportement par défaut pour les liaisons consiste à chercher d'abord dans " +"l'espace des noms locaux. Cette instruction permet à du code encapsulé de se " +"lier à des variables en dehors de la portée locale du code mais sans avoir " +"de portée globale (c'est-à-dire de niveau module)." #: ../Doc/reference/simple_stmts.rst:908 msgid "" @@ -914,17 +1299,24 @@ msgid "" "enclosing scope (the scope in which a new binding should be created cannot " "be determined unambiguously)." msgstr "" +"Les noms (*identifier* dans la grammaire ci-dessus) listés dans " +"l'instruction :keyword:`nonlocal`, au contraire de ceux listés dans une " +"instruction :keyword:`global`, doivent faire référence à des liaisons pré-" +"existantes dans les portées englobantes (en effet, la portée dans laquelle " +"devrait être créée la liaison ne peut pas être déterminée *a priori*)." #: ../Doc/reference/simple_stmts.rst:913 msgid "" "Names listed in a :keyword:`nonlocal` statement must not collide with pre-" "existing bindings in the local scope." msgstr "" +"Les noms listés dans l'instruction :keyword:`nonlocal` ne doivent entrer en " +"collision avec des liaisons déjà établies dans la portée locale." #: ../Doc/reference/simple_stmts.rst:918 msgid ":pep:`3104` - Access to Names in Outer Scopes" -msgstr "" +msgstr ":pep:`3104` -- Accès à des noms en dehors de la portée locale" #: ../Doc/reference/simple_stmts.rst:919 msgid "The specification for the :keyword:`nonlocal` statement." -msgstr "" +msgstr "Les spécifications pour l'instruction :keyword:`nonlocal`." diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index f84f369d..323c0e27 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/reference/toplevel_components.rst:6 msgid "Top-level components" -msgstr "" +msgstr "Composants de plus haut niveau" #: ../Doc/reference/toplevel_components.rst:10 msgid "" @@ -27,10 +27,14 @@ msgid "" "interactively, from a module source file, etc. This chapter gives the " "syntax used in these cases." msgstr "" +"L'entrée de l'interpréteur Python peut provenir d'un certain nombre de " +"sources : d'un script passé en entrée standard ou en argument de programme, " +"tapée de manière interactive, à partir d'un fichier source de module, etc. " +"Ce chapitre donne la syntaxe utilisée dans ces différents cas." #: ../Doc/reference/toplevel_components.rst:19 msgid "Complete Python programs" -msgstr "" +msgstr "Programmes Python complets" #: ../Doc/reference/toplevel_components.rst:28 msgid "" @@ -43,12 +47,23 @@ msgid "" "`__main__`. The latter is used to provide the local and global namespace " "for execution of the complete program." msgstr "" +"Bien que les spécifications d'un langage n'ont pas à préciser comment " +"l'interpréteur du langage est invoqué, il est utile d'avoir des notions sur " +"ce qu'est un programme Python complet. Un programme Python complet est " +"exécuté dans un environnement dont l'initialisation est minimale : tous les " +"modules intégrés et standard sont disponibles mais aucun n'a été initialisé, " +"à l'exception de :mod:`sys` (divers services système), :mod:`builtins` " +"(fonctions natives, exceptions et ``None``) et :mod:`__main__`. Ce dernier " +"est utilisé pour avoir des espaces de noms locaux et globaux pour " +"l'exécution du programme complet." #: ../Doc/reference/toplevel_components.rst:36 msgid "" "The syntax for a complete Python program is that for file input, described " "in the next section." msgstr "" +"La syntaxe d'un programme Python complet est celle d'un fichier d'entrée, " +"dont la description est donnée dans la section suivante." #: ../Doc/reference/toplevel_components.rst:43 msgid "" @@ -58,6 +73,11 @@ msgid "" "identical to that of a complete program; each statement is executed in the " "namespace of :mod:`__main__`." msgstr "" +"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " +"il ne lit et n'exécute pas un programme complet mais lit et exécute une " +"seule instruction (éventuellement composée) à la fois. L'environnement " +"initial est identique à celui d'un programme complet ; chaque instruction " +"est exécutée dans l'espace de noms de :mod:`__main__`." #: ../Doc/reference/toplevel_components.rst:54 msgid "" @@ -67,38 +87,51 @@ msgid "" "standard input is a tty device, the interpreter enters interactive mode; " "otherwise, it executes the file as a complete program." msgstr "" +"Sous Unix, un programme complet peut être transmis à l'interpréteur sous " +"trois formes : avec l'option :option:`-c` *chaîne* en ligne de commande, " +"avec un fichier passé comme premier argument de ligne de commande ou comme " +"entrée standard. Si le fichier ou l'entrée standard est un périphérique " +"tty, l'interpréteur entre en mode interactif ; sinon, il exécute le fichier " +"comme un programme complet." #: ../Doc/reference/toplevel_components.rst:64 msgid "File input" -msgstr "" +msgstr "Fichier d'entrée" #: ../Doc/reference/toplevel_components.rst:66 msgid "All input read from non-interactive files has the same form:" msgstr "" +"Toutes les entrées lues à partir de fichiers non interactifs sont de la même " +"forme :" #: ../Doc/reference/toplevel_components.rst:71 msgid "This syntax is used in the following situations:" -msgstr "" +msgstr "Cette syntaxe est utilisée dans les situations suivantes :" #: ../Doc/reference/toplevel_components.rst:73 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" +"lors de l'analyse d'un programme Python complet (à partir d'un fichier ou " +"d'une chaîne de caractères) ;" #: ../Doc/reference/toplevel_components.rst:75 msgid "when parsing a module;" -msgstr "" +msgstr "lors de l'analyse d'un module ;" #: ../Doc/reference/toplevel_components.rst:77 msgid "when parsing a string passed to the :func:`exec` function;" msgstr "" +"lors de l'analyse d'une chaîne de caractères passée à la fonction :func:" +"`exec`." #: ../Doc/reference/toplevel_components.rst:83 msgid "Interactive input" -msgstr "" +msgstr "Entrée interactive" #: ../Doc/reference/toplevel_components.rst:85 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" +"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" #: ../Doc/reference/toplevel_components.rst:90 msgid "" @@ -106,13 +139,19 @@ msgid "" "in interactive mode; this is needed to help the parser detect the end of the " "input." msgstr "" +"Notez qu'une instruction composée (de niveau supérieur) doit être suivie " +"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " +"l'analyseur à détecter la fin de l'entrée." #: ../Doc/reference/toplevel_components.rst:97 msgid "Expression input" -msgstr "" +msgstr "Entrée d'expression" #: ../Doc/reference/toplevel_components.rst:102 msgid "" ":func:`eval` is used for expression input. It ignores leading whitespace. " "The string argument to :func:`eval` must have the following form:" msgstr "" +":func:`eval` est utilisée pour évaluer les expressions entrées. Elle ignore " +"les espaces en tête. L'argument de :func:`eval`, de type chaîne de " +"caractères, doit être de la forme suivante :" diff --git a/sphinx.po b/sphinx.po index a2d8a0a8..99d57b39 100644 --- a/sphinx.po +++ b/sphinx.po @@ -39,7 +39,7 @@ msgstr "La Python Software Foundation est une organisation à but non lucratif." #: ../Doc/tools/templates/layout.html:109 msgid "Please donate." -msgstr "Les dons sont les bienvenus." +msgstr "Les dons sont bienvenus." #: ../Doc/tools/templates/layout.html:111 msgid "Last updated on %(last_updated)s." @@ -54,15 +54,15 @@ msgid "" "Created using Sphinx " "%(sphinx_version)s." msgstr "" -"Crée via Sphinx %(sphinx_version)s." +"Créé via Sphinx %(sphinx_version)s." #: ../Doc/tools/templates/customsourcelink.html:3 msgid "This Page" -msgstr "Cette Page" +msgstr "Cette page" #: ../Doc/tools/templates/customsourcelink.html:5 msgid "Report a Bug" -msgstr "Rapporter un bug" +msgstr "Signalement de bug" #: ../Doc/tools/templates/customsourcelink.html:7 msgid "Show Source" @@ -74,7 +74,7 @@ msgstr "Téléchargement" #: ../Doc/tools/templates/indexsidebar.html:2 msgid "Download these documents" -msgstr "Télécharger ces documentations" +msgstr "Téléchargement de ces documentations" #: ../Doc/tools/templates/indexsidebar.html:3 msgid "Docs for other versions" @@ -106,25 +106,25 @@ msgstr "Guide du débutant" #: ../Doc/tools/templates/indexsidebar.html:15 msgid "Book List" -msgstr "Liste de Livres" +msgstr "Liste de livres" #: ../Doc/tools/templates/indexsidebar.html:16 msgid "Audio/Visual Talks" -msgstr "Discours audiovisuels" +msgstr "Documents multimédia" #: ../Doc/tools/templates/indexcontent.html:3 msgid "Parts of the documentation:" -msgstr "La documentation:" +msgstr "La documentation :" #: ../Doc/tools/templates/indexcontent.html:6 msgid "What's new in Python %(version)s?" -msgstr "Quoi de neuf avec Python %(version)s ?" +msgstr "Les nouveautés de Python %(version)s" #: ../Doc/tools/templates/indexcontent.html:7 msgid "" "or all \"What's new\" documents since 2.0" msgstr "" -"ou tous les \"Quoi de neuf\" depuis la 2.0" +"ou toutes les nouveautés depuis la 2.0" #: ../Doc/tools/templates/indexcontent.html:8 msgid "Tutorial" @@ -136,7 +136,7 @@ msgstr "démarrez ici" #: ../Doc/tools/templates/indexcontent.html:10 msgid "Library Reference" -msgstr "Référence de la Bibliothèque" +msgstr "Référence de la bibliothèque" #: ../Doc/tools/templates/indexcontent.html:11 msgid "keep this under your pillow" @@ -144,7 +144,7 @@ msgstr "gardez-ça sous votre oreiller" #: ../Doc/tools/templates/indexcontent.html:12 msgid "Language Reference" -msgstr "Référence du Langage" +msgstr "Référence du langage" #: ../Doc/tools/templates/indexcontent.html:13 msgid "describes syntax and language elements" @@ -152,11 +152,11 @@ msgstr "décrit la syntaxe et les éléments du langage" #: ../Doc/tools/templates/indexcontent.html:14 msgid "Python Setup and Usage" -msgstr "Installation et Utilisation de Python" +msgstr "Installation et utilisation de Python" #: ../Doc/tools/templates/indexcontent.html:15 msgid "how to use Python on different platforms" -msgstr "comment utiliser Python sur différentes plateformes" +msgstr "Utilisation de Python sur différentes plateformes" #: ../Doc/tools/templates/indexcontent.html:16 msgid "Python HOWTOs" @@ -168,15 +168,15 @@ msgstr "documents explorant certains sujets en profondeur" #: ../Doc/tools/templates/indexcontent.html:19 msgid "Installing Python Modules" -msgstr "L'installation de modules Python" +msgstr "Installation de modules Python" #: ../Doc/tools/templates/indexcontent.html:20 msgid "installing from the Python Package Index & other sources" -msgstr "Installer depuis le *Python Package Index* & d'autres sources" +msgstr "Installation depuis le *Python Package Index* ou d'autres sources" #: ../Doc/tools/templates/indexcontent.html:21 msgid "Distributing Python Modules" -msgstr "Distribuer des Modules Python" +msgstr "Distribuer des modules Python" #: ../Doc/tools/templates/indexcontent.html:22 msgid "publishing modules for installation by others" @@ -184,7 +184,7 @@ msgstr "publier des modules pour que d'autres puissent les installer" #: ../Doc/tools/templates/indexcontent.html:23 msgid "Extending and Embedding" -msgstr "Améliorer et Intégrer" +msgstr "Amélioration et intégration" #: ../Doc/tools/templates/indexcontent.html:24 msgid "tutorial for C/C++ programmers" @@ -208,7 +208,7 @@ msgstr "foire aux questions (avec les réponses !)" #: ../Doc/tools/templates/indexcontent.html:32 msgid "Indices and tables:" -msgstr "Indexes et tables des matières:" +msgstr "Index et tables des matières :" #: ../Doc/tools/templates/indexcontent.html:35 msgid "Global Module Index" @@ -220,11 +220,11 @@ msgstr "accès rapide à tous les modules" #: ../Doc/tools/templates/indexcontent.html:37 msgid "General Index" -msgstr "Index Général" +msgstr "Index général" #: ../Doc/tools/templates/indexcontent.html:38 msgid "all functions, classes, terms" -msgstr "toutes les fonctions, classes, et termes" +msgstr "toutes les fonctions, classes et termes" #: ../Doc/tools/templates/indexcontent.html:39 msgid "Glossary" @@ -232,7 +232,7 @@ msgstr "Glossaire" #: ../Doc/tools/templates/indexcontent.html:40 msgid "the most important terms explained" -msgstr "les mots les plus importants expliqués" +msgstr "Explication des mots les plus importants" #: ../Doc/tools/templates/indexcontent.html:42 msgid "Search page" @@ -240,7 +240,7 @@ msgstr "Page de recherche" #: ../Doc/tools/templates/indexcontent.html:43 msgid "search this documentation" -msgstr "chercher dans cette documentation" +msgstr "recherche dans cette documentation" #: ../Doc/tools/templates/indexcontent.html:44 msgid "Complete Table of Contents" @@ -248,7 +248,7 @@ msgstr "Table des matières complète" #: ../Doc/tools/templates/indexcontent.html:45 msgid "lists all sections and subsections" -msgstr "liste toute les sections et sous-sections" +msgstr "liste complète des sections et sous-sections" #: ../Doc/tools/templates/indexcontent.html:49 msgid "Meta information:" @@ -256,7 +256,7 @@ msgstr "Méta informations :" #: ../Doc/tools/templates/indexcontent.html:52 msgid "Reporting bugs" -msgstr "Rapporter des bugs" +msgstr "Signalement de bug" #: ../Doc/tools/templates/indexcontent.html:53 msgid "About the documentation" @@ -264,4 +264,4 @@ msgstr "À propos de la documentation" #: ../Doc/tools/templates/indexcontent.html:55 msgid "History and License of Python" -msgstr "Histoire et Licence de Python" +msgstr "Histoire et licence de Python" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index d47cf5c7..2e74d6a5 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -41,16 +41,16 @@ msgid "" "executed commands is written to standard output." msgstr "" "Quand une erreur se produit, l'interpréteur affiche un message d'erreur et " -"le suivit de la pile. En mode interactif, il revient à l'invite de commande " -"primaire; si l'entrée provient d'un fichier, l'interpréteur se termine avec " -"un état de sortie non nul après avoir affiché le suivit de la pile. (Les " +"la trace d'appels. En mode interactif, il revient à l'invite de commande " +"primaire ; si l'entrée provient d'un fichier, l'interpréteur se termine avec " +"un code de sortie non nul après avoir affiché la trace d'appels (les " "exceptions gérées par une clause :keyword:`except` dans une instruction :" -"keyword:`try` ne sont pas des erreurs dans ce contexte.) Certaines erreurs " -"sont inconditionnellement fatales et cause une sortie avec un état non nul; " -"les incohérences internes et, dans certains cas, les pénuries de mémoires, " -"sont traitées de la sorte. Tous les messages d'erreur sont écrits sur la " -"sortie d'erreur standard; les sorties normales issues des commandes " -"exécutées sont écrites sur la sortie standard." +"keyword:`try` ne sont pas considérées comme des erreurs dans ce contexte). " +"Certaines erreurs sont inconditionnellement fatales et provoquent la fin du " +"programme avec un code de sortie non nul ; les incohérences internes et, " +"dans certains cas, les pénuries de mémoire sont traitées de la sorte. Tous " +"les messages d'erreur sont écrits sur le flux d'erreur standard ; " +"l'affichage normal des commandes exécutées est écrit sur la sortie standard." #: ../Doc/tutorial/appendix.rst:28 msgid "" @@ -62,7 +62,7 @@ msgid "" msgstr "" "Taper le caractère d'interruption (généralement :kbd:`Ctrl+C` ou :kbd:" "`Supprimer`) au niveau de l'invite de commande primaire annule l'entrée et " -"revient à l'invite. [#]_ Saisir une interruption tandis qu'une commande " +"revient à l'invite [#]_. Saisir une interruption tandis qu'une commande " "s'exécute lève une exception :exc:`KeyboardInterrupt` qui peut être gérée " "par une instruction :keyword:`try`." @@ -76,7 +76,7 @@ msgid "" "like shell scripts, by putting the line ::" msgstr "" "Sur les systèmes Unix, un script Python peut être rendu directement " -"exécutable comme un script shell en ajoutant la ligne : ::" +"exécutable, comme un script shell, en ajoutant la ligne : ::" #: ../Doc/tutorial/appendix.rst:45 msgid "" @@ -88,18 +88,19 @@ msgid "" "``'#'``, is used to start a comment in Python." msgstr "" "(en supposant que l'interpréteur est dans le :envvar:`PATH` de " -"l'utilisateur) au début du script et en rendant le fichier exécutable. ``#!" -"`` doivent être les deux premiers caractères du fichier. Sur certaines " +"l'utilisateur) au début du script et en rendant le fichier exécutable. " +"``'#!'`` doivent être les deux premiers caractères du fichier. Sur certaines " "plateformes, cette première ligne doit finir avec une fin de ligne de type " "Unix (``'\\n'``) et pas de type Windows (``'\\r\\n'``). Notez que le " -"caractère dièse, ``'#'``, est utilisé pour initier un commentaire en Python." +"caractère croisillon, ``'#'``, est utilisé pour initier un commentaire en " +"Python." #: ../Doc/tutorial/appendix.rst:52 msgid "" "The script can be given an executable mode, or permission, using the :" "program:`chmod` command." msgstr "" -"Un script peut être rendu utilisable en utilisant la commande :program:" +"Un script peut être rendu exécutable en utilisant la commande :program:" "`chmod`." #: ../Doc/tutorial/appendix.rst:59 @@ -110,15 +111,15 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"Sur les système windows il n'y a pas de \"mode executable\". L'installateur " -"Python associe automatiquement les fichier en ``.py`` avec ``python.exe`` de " -"telle sorte qu'un double clic sur un fichier Python le lance comme un " -"script. L'extension peut aussi être ``.pyw``, dans ce cas, la console " +"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " +"de telle sorte qu'un double clic sur un fichier Python le lance comme un " +"script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " "n'apparait pas." #: ../Doc/tutorial/appendix.rst:69 msgid "The Interactive Startup File" -msgstr "La configuration du mode interactif" +msgstr "Configuration du mode interactif" #: ../Doc/tutorial/appendix.rst:71 msgid "" @@ -129,10 +130,10 @@ msgid "" "the :file:`.profile` feature of the Unix shells." msgstr "" "En mode interactif, il peut être pratique de faire exécuter quelques " -"commandes au lancement de l'interprète. C'est possible en configurant la " -"variable d'environnement :envvar:`PYTHONSTARTUP`\" avec le nom d'un fichier " -"contenant les instructions à exécuter, à la même manière du :file:`.profile` " -"dans un shell Unix." +"commandes au lancement de l’interpréteur. Configurez la variable " +"d'environnement :envvar:`PYTHONSTARTUP` avec le nom d'un fichier contenant " +"les instructions à exécuter, à la même manière du :file:`.profile` pour un " +"shell Unix." #: ../Doc/tutorial/appendix.rst:77 msgid "" @@ -144,14 +145,14 @@ msgid "" "qualification in the interactive session. You can also change the prompts " "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" -"Ce fichier n'est lu qu'en mode interactif, pas quand Python lis les " +"Ce fichier n'est lu qu'en mode interactif, pas quand Python lit les " "instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " -"explicitement comme fichier source (qui d'ailleurs se compterait comme une " -"session interactive). Les instructions de ce fichier, sont exécutées dans le " -"même espace de noms que vos commandes, donc les objets définis et modules " -"importés peuvent être utilisées directement dans la session interactive. " -"Dans ce fichier il est aussi possible de changer les prompts ``sys.ps1`` et " -"``sys.ps2``." +"explicitement comme fichier source (pour tout le reste, Python se comporte " +"alors comme dans une session interactive). Les instructions de ce fichier " +"sont exécutées dans le même espace de noms que vos commandes, donc les " +"objets définis et modules importés peuvent être utilisés directement dans la " +"session interactive. Dans ce fichier, il est aussi possible de changer les " +"invites de commande ``sys.ps1`` et ``sys.ps2``." #: ../Doc/tutorial/appendix.rst:85 msgid "" @@ -161,15 +162,15 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the " "script::" msgstr "" -"Si vous voulez exécuter d'autres fichiers dans le dossier courant, vous " -"pouvez le programmer dans le fichier global, par exemple: ``if os.\"\"path." -"isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. Et si vous " -"voulez exécuter le fichier depuis un script, vous devez le faire " -"explicitement." +"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " +"vous pouvez le programmer dans le fichier de démarrage global, par exemple " +"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." +"pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " +"depuis un script, vous devez le faire explicitement dans le script : ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" -msgstr "Les modules de Personnalisation" +msgstr "Modules de personnalisation" #: ../Doc/tutorial/appendix.rst:104 msgid "" @@ -178,10 +179,10 @@ msgid "" "location of your user site-packages directory. Start Python and run this " "code::" msgstr "" -"Python peut être personnalisé via les modules :mod:`sitecustomize` et :mod:" -"`usercustomize`. Pour découvrir comment ils fonctionnent vous devez d'abord " -"les trouver, ils sont dans un dossier appelé user site-packages. Démarrez " -"Python et exécutez : code::" +"Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" +"`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " +"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " +"Démarrez Python et exécutez ce code : ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -190,9 +191,9 @@ msgid "" "unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" -"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` \" et y " -"écrire ce que vous voulez. Il sera toujours pris en compte par Python peut " -"importe le mode, sauf si il est démarré avec l'option :option:`-s`, qui " +"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y " +"écrire ce que vous voulez. Il est toujours pris en compte par Python, peu " +"importe le mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui " "désactive l'import automatique." #: ../Doc/tutorial/appendix.rst:116 @@ -202,7 +203,7 @@ msgid "" "imported before :mod:`usercustomize`. See the documentation of the :mod:" "`site` module for more details." msgstr "" -":mod:`sitecustomize` fonctionne de la même manière, mais plus typiquement " +":mod:`sitecustomize` fonctionne de la même manière mais est généralement " "créé par un administrateur et stocké dans le dossier site-packages global. " "Il est importé avant :mod:`usercustomize`. Pour plus de détails, consultez " "la documentation de :mod:`site`." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index f2153ec1..cd32c566 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -28,12 +28,12 @@ msgid "" "of photo files in a complicated way. Perhaps you'd like to write a small " "custom database, or a specialized GUI application, or a simple game." msgstr "" -"Si vous faites beaucoup de travail sur ordinateur, vous finirez par vouloir " -"automatiser certaines tâches. Par exemple vous pouvez avoir besoin " -"d'effectuer une recherche et un remplacement sur un grand nombre de fichiers " -"de texte, ou de renommer et réorganiser des photos d'une manière " -"sophistiquée. Peut-être avez-vous besoin de créer une petite base de données " -"ou une application graphique, ou un simple jeu." +"Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " +"automatiser certaines tâches : par exemple, effectuer une recherche et un " +"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " +"réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " +"être créer une petite base de données, une application graphique ou un " +"simple jeu." #: ../Doc/tutorial/appetite.rst:13 msgid "" @@ -44,14 +44,14 @@ msgid "" "written a program that could use an extension language, and you don't want " "to design and implement a whole new language for your application." msgstr "" -"Si vous êtes un développeur professionnel, vous pouvez avoir besoin de " -"travailler avec certaines bibliothèques C/C++/Java, mais vous trouvez que le " -"cycle habituel écriture/compilation/test/recompilation est trop lourd. Peut-" -"être écrivez-vous une suite de tests pour une telle bibliothèque et trouvez-" -"vous que l'écriture du code de test est pénible. Ou bien vous avez écrit un " -"logiciel qui a besoin d'être extensible grâce à un langage de script, mais " -"vous ne voulez pas concevoir ni implémenter un nouveau langage pour votre " -"application." +"Quand on est un développeur professionnel, le besoin peut se faire sentir de " +"travailler avec des bibliothèques C/C++/Java, mais on trouve que le cycle " +"habituel écriture/compilation/test/recompilation est trop lourd. Vous " +"écrivez peut-être une suite de tests pour une telle bibliothèque et vous " +"trouvez que l'écriture du code de test est pénible. Ou bien vous avez écrit " +"un logiciel qui a besoin d'être extensible grâce à un langage de script, " +"mais vous ne voulez pas concevoir ni implémenter un nouveau langage pour " +"votre application." #: ../Doc/tutorial/appetite.rst:20 msgid "Python is just the language for you." @@ -71,9 +71,9 @@ msgstr "" "fichiers et modifier des données textuelles, mais pas pour une application " "ayant une interface graphique ni pour des jeux. Vous pouvez écrire un " "programme en C/C++/Java, mais cela peut prendre beaucoup de temps, ne serait-" -"ce que pour avoir une première maquette. Python est plus facile à utiliser, " -"il est disponible sous Windows, Mac OS X et Unix, et il vous aidera à " -"terminer plus rapidement votre travail." +"ce que pour avoir une première maquette. Python est plus facile à utiliser " +"et il vous aidera à terminer plus rapidement votre travail, que ce soit sous " +"Windows, Mac OS X ou Unix." #: ../Doc/tutorial/appetite.rst:29 msgid "" @@ -86,16 +86,16 @@ msgid "" "problem domain than Awk or even Perl, yet many things are at least as easy " "in Python as in those languages." msgstr "" -"Python est facile à utiliser, mais c'est un vrai langage de programmation, " -"offrant une bien meilleure structure et prise en charge des grands " -"programmes que les scripts shell ou les fichiers batch. D'un autre coté, " -"Python offre beaucoup plus de méthodes de vérification d'erreurs que le " -"langage C et, étant un *langage de très haut niveau*, il possède nativement " -"des types de données très évolués tels que des tableaux flexibles ou des " +"Python reste facile à utiliser, mais c'est un vrai langage de " +"programmation : il offre une bien meilleure structure et prise en charge des " +"grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " +"Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " +"tant que *langage de très haut niveau*, il possède nativement des types de " +"données très évolués tels que les tableaux de taille variable ou les " "dictionnaires. Grâce à ses types de données plus universels, Python est " -"utilisable pour des domaines beaucoup plus variés que Awk ou même Perl. " -"Pourtant, de nombreuses choses sont au moins aussi faciles en Python que " -"dans ces langages." +"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être Awk " +"ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au moins " +"aussi facilement en Python que dans ces langages." #: ../Doc/tutorial/appetite.rst:37 msgid "" @@ -107,12 +107,11 @@ msgid "" "interface toolkits like Tk." msgstr "" "Python vous permet de découper votre programme en modules qui peuvent être " -"réutilisés dans d'autres programmes en Python. Il est fourni avec une vaste " -"collection de modules standards que vous pouvez utiliser comme base de vos " +"réutilisés dans d'autres programmes Python. Il est fourni avec une grande " +"variété de modules standards que vous pouvez utiliser comme base de vos " "programmes, ou comme exemples pour apprendre à programmer. Certains de ces " -"modules fournissent des services tels que les entrées/sorties, les appels " -"système, les sockets, et même des accès aux outils comme Tk pour créer des " -"interfaces graphiques." +"modules donnent accès aux entrées/sorties, aux appels système, aux sockets " +"réseaux et même aux outils comme Tk pour créer des interfaces graphiques." #: ../Doc/tutorial/appetite.rst:44 msgid "" @@ -124,12 +123,12 @@ msgid "" "calculator." msgstr "" "Python est un langage interprété, ce qui peut vous faire gagner un temps " -"considérable pendant le développement du programme car aucune compilation ni " -"édition de liens n'est nécessaire. L'interpréteur peut être utilisé de " -"manière interactive, pour vous permettre d'expérimenter avec les " +"considérable pendant le développement de vos programmes car aucune " +"compilation ni édition de liens n'est nécessaire. L'interpréteur peut être " +"utilisé de manière interactive, pour vous permettre d'expérimenter les " "fonctionnalités du langage, d'écrire des programmes jetables ou de tester " -"des fonctions lors d'un développement incrémental. Il constitue aussi une " -"calculatrice de bureau pratique." +"des fonctions lors d'un développement incrémental. C'est aussi une " +"calculatrice de bureau bien pratique." #: ../Doc/tutorial/appetite.rst:50 msgid "" @@ -138,8 +137,8 @@ msgid "" "Java programs, for several reasons:" msgstr "" "Python permet d'écrire des programmes compacts et lisibles. Les programmes " -"écrits en Python sont généralement beaucoup plus court que l'équivalent en " -"C, C++, ou Java, pour plusieurs raisons :" +"écrits en Python sont généralement beaucoup plus courts que leurs " +"équivalents en C, C++ ou Java. Et ceci pour plusieurs raisons :" #: ../Doc/tutorial/appetite.rst:54 msgid "" @@ -171,14 +170,14 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" -"Python est *extensible* : si vous savez écrire un programme en C, il est " -"aisé d'ajouter à l'interpréteur une nouvelle fonction primitive ou un " -"module, soit pour effectuer des opérations critiques à vitesse maximale, " -"soit pour lier des programmes en Python à des bibliothèques disponibles " -"uniquement sous forme binaire (par exemple des bibliothèques graphiques " -"dédiées à un matériel). Une fois que vous êtes à l'aise avec ces principes, " -"vous pouvez relier l'interpréteur Python à une application écrite en C et " -"l'utiliser comme un langage d'extensions ou de commandes pour cette " +"Python est *extensible* : si vous savez écrire un programme en C, une " +"nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " +"afin de l'étendre, que ce soit pour effectuer des opérations critiques à " +"vitesse maximale ou pour lier des programmes en Python à des bibliothèques " +"disponibles uniquement sous forme binaire (par exemple des bibliothèques " +"graphiques dédiées à un matériel). Une fois que vous êtes à l'aise avec ces " +"principes, vous pouvez relier l'interpréteur Python à une application écrite " +"en C et l'utiliser comme un langage d'extensions ou de commandes pour cette " "application." #: ../Doc/tutorial/appetite.rst:70 @@ -187,10 +186,10 @@ msgid "" "Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" -"À ce sujet, le nom du langage provient de l'émission de la BBC « Monty " -"Python's Flying Circus » et n'a rien à voir avec les reptiles. Faire " -"référence aux sketchs des Monty Python dans de la documentation n'est pas " -"seulement permis, c'est encouragé !" +"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " +"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " +"sketchs des Monty Python dans la documentation n'est pas seulement permis, " +"c'est encouragé !" #: ../Doc/tutorial/appetite.rst:74 msgid "" @@ -198,10 +197,10 @@ msgid "" "more detail. Since the best way to learn a language is to use it, the " "tutorial invites you to play with the Python interpreter as you read." msgstr "" -"Votre soudain enthousiasme à propos de Python va vous pousser à l'examiner " -"un peu plus en détail. Comme la meilleure façon d'apprendre un langage est " -"de l'utiliser, le tutoriel vous invite à jouer avec l'interpréteur pendant " -"la lecture." +"Maintenant que vos papilles ont été chatouillées, nous allons pouvoir " +"rentrer dans le vif du sujet Python. Et comme la meilleure façon d'apprendre " +"un langage est de l'utiliser, ce tutoriel vous invite à jouer avec " +"l'interpréteur au fur et à mesure de votre lecture." #: ../Doc/tutorial/appetite.rst:78 msgid "" @@ -209,9 +208,9 @@ msgid "" "This is rather mundane information, but essential for trying out the " "examples shown later." msgstr "" -"Dans le prochain chapitre, nous allons expliquer comment utiliser " -"l'interpréteur. Ce n'est pas la section la plus passionnante, mais c'est un " -"passage obligé pour tester les exemples montrés plus loin." +"Dans le prochain chapitre, nous expliquons l'utilisation de l'interpréteur. " +"Ce n'est pas la section la plus passionnante, mais c'est un passage obligé " +"pour que vous puissiez mettre en pratique les exemples donnés plus loin." #: ../Doc/tutorial/appetite.rst:82 msgid "" @@ -221,6 +220,7 @@ msgid "" "advanced concepts like exceptions and user-defined classes." msgstr "" "Le reste du tutoriel présente diverses fonctionnalités du langage et du " -"système Python au travers d'exemples, depuis les simples expressions, " -"instructions ou types de données, jusqu'aux fonctions et modules, pour " -"finalement aborder des concepts avancés comme les exceptions et les classes." +"système Python au travers d'exemples, en commençant par les expressions " +"simples, les instructions et les types de données, jusqu'à aborder des " +"concepts avancés comme les exceptions et les classes, en passant par les " +"fonctions et modules." diff --git a/tutorial/classes.po b/tutorial/classes.po index 1295f178..3330a94d 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -33,18 +33,17 @@ msgid "" "nature of Python: they are created at runtime, and can be modified further " "after creation." msgstr "" -"Le mécanisme des classes Python ajoute au langage la notion de classes avec " -"un minimum de syntaxe et de sémantique nouvelles. C'est un mélange des " -"mécanismes rencontrés dans C++ et Modula-3. De la même manière que pour les " -"modules, les classes Python ne posent pas de barrière rigide entre leur " -"définition et l'utilisateur, mais s'appuient sur le respect de l'utilisateur " -"à ne pas causer d'effraction dans la définition. Cependant, les " -"fonctionnalités les plus importantes des classes sont conservées avec toutes " -"leur puissance : le mécanisme d'héritage autorise d'avoir plusieurs classes " -"de base, une classe dérivée peut surcharger toutes les méthodes de sa (ou " -"ses) classe(s) de base et une méthode peut faire appel à la méthode d'une " -"classe de base portant le même nom. Les objets peuvent contenir un nombre " -"arbitraire de données." +"La notion de classes en Python s'inscrit dans le langage avec un minimum de " +"syntaxe et de sémantique nouvelles. C'est un mélange des mécanismes " +"rencontrés dans C++ et Modula-3. Les classes fournissent toutes les " +"fonctionnalités standards de la programmation orientée objet : l'héritage de " +"classes autorise les héritages multiples, une classe dérivée peut surcharger " +"les méthodes de sa ou ses classes de base et une méthode peut appeler la " +"méthode d'une classe de base qui possède le même nom. Les objets peuvent " +"contenir n'importe quel nombre ou type de données. De la même manière que " +"les modules, les classes participent à la nature dynamique de Python : elles " +"sont créées pendant l'exécution et peuvent être modifiées après leur " +"création." #: ../Doc/tutorial/classes.rst:17 msgid "" @@ -62,16 +61,16 @@ msgid "" msgstr "" "Dans la terminologie C++, les membres des classes (y compris les données) " "sont *publics* (sauf exception, voir :ref:`tut-private`) et toutes les " -"fonctions membres sont *virtuelles*. Comme avec Modulo-3, il n'y a aucune " -"façon d'accéder aux membres d'un objet à partir de ses méthodes : une " -"méthode est déclarée avec un premier argument explicite représentant " -"l'objet, et cet argument est transmis de manière implicite lors de l'appel. " -"Comme avec Smalltalk, les classes elles-mêmes sont des objets. Il existe " -"ainsi une sémantique pour les importer et les renommer. Au contraire de C++ " -"et Modulo-3, les types de base peuvent être utilisés comme classes de base " -"pour que l'utilisateur puisse les étendre. Enfin, comme en C++, la plupart " -"des opérateurs de base avec une syntaxe spéciale (opérateurs arithmétiques, " -"sous-indiçage, etc.) peuvent être redéfinis pour les instances de classes." +"fonctions membres sont *virtuelles*. Comme avec Modula-3, il n'y a aucune " +"façon d'accéder aux membres d'un objet à partir de ses méthodes : une " +"méthode est déclarée avec un premier argument explicite représentant l'objet " +"et cet argument est transmis de manière implicite lors de l'appel. Comme " +"avec Smalltalk, les classes elles-mêmes sont des objets. Il existe ainsi une " +"sémantique pour les importer et les renommer. Au contraire de C++ et " +"Modula-3, les types natifs peuvent être utilisés comme classes de base pour " +"être étendus par l'utilisateur. Enfin, comme en C++, la plupart des " +"opérateurs natifs avec une syntaxe spéciale (opérateurs arithmétiques, sous-" +"indiçage, etc.) peuvent être redéfinis pour les instances de classes." #: ../Doc/tutorial/classes.rst:28 msgid "" @@ -80,15 +79,15 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"(Par manque d'une terminologie universellement acceptée pour parler des " -"classes, nous ferons un usage occasionnel des termes de Smalltalk et C++. " -"Nous voulions utiliser les termes de Modula-3 puisque sa sémantique orientée " -"objet est plus proche de celle de Python que de C++, mais il est probable " -"que seul un petit nombre de lecteurs soit susceptibles de les connaître.)" +"Par manque d'ontologie pour parler des classes, nous utilisons parfois des " +"termes de Smalltalk et C++. Nous voulions utiliser les termes de Modula-3 " +"puisque sa sémantique orientée objet est plus proche de celle de Python que C" +"++, mais il est probable que seul un petit nombre de lecteurs les " +"connaissent." #: ../Doc/tutorial/classes.rst:37 msgid "A Word About Names and Objects" -msgstr "Quelques mots au sujet des noms et objets" +msgstr "Objets et noms : préambule" #: ../Doc/tutorial/classes.rst:39 msgid "" @@ -106,20 +105,19 @@ msgid "" "different argument passing mechanisms as in Pascal." msgstr "" "Les objets possèdent une existence propre et plusieurs noms peuvent être " -"utilisés (dans divers contextes) pour faire référence au même objet. Ceux-ci " -"sont connus sous le nom d'alias dans d'autres langages. Ceci est " -"habituellement peu apprécié lors d'un premier coup d'œil à Python et peut " -"être ignoré lorsqu'on travaille avec des types de base non mutables " -"(nombres, chaînes, tuples). Cependant, les alias ont éventuellement des " -"effets surprenants sur la sémantique d'un code Python mettant en jeu des " -"objets mutables comme les listes, les dictionnaires et la plupart des autres " -"types. C'est généralement utilisé au bénéfice du programme car les alias se " -"comportent, d'un certain point de vue, comme des pointeurs. Par exemple, " -"transmettre un objet n'a aucun coût car c'est simplement un pointeur qui est " -"transmis par l'implémentation ; et si une fonction modifie un objet passé en " -"argument, le code à l'origine de l'appel verra le changement. Ceci élimine " -"le besoin d'avoir deux mécanismes de transmission d'arguments comme en " -"Pascal." +"utilisés (dans divers contextes) pour faire référence à un même objet. Ce " +"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " +"pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " +"travaille avec des types de base immuables (nombres, chaînes, tuples). " +"Cependant, les alias peuvent produire des effets surprenants sur la " +"sémantique d'un code Python mettant en jeu des objets muables comme les " +"listes, les dictionnaires et la plupart des autres types. En général, leur " +"utilisation est bénéfique au programme car les alias se comportent, d'un " +"certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " +"n'a aucun coût car c'est simplement un pointeur qui est transmis par " +"l'implémentation ; et si une fonction modifie un objet passé en argument, le " +"code à l'origine de l'appel voit le changement. Ceci élimine le besoin " +"d'avoir deux mécanismes de transmission d'arguments comme en Pascal." #: ../Doc/tutorial/classes.rst:55 msgid "Python Scopes and Namespaces" @@ -133,15 +131,15 @@ msgid "" "understand what's going on. Incidentally, knowledge about this subject is " "useful for any advanced Python programmer." msgstr "" -"Avant de présenter les classes, nous devons parler un peu de la notion de " -"portée en Python. Les définitions de classes font d'habiles manipulations " -"avec les espaces de noms, et vous devez savoir comment les portées et les " -"espaces de noms fonctionnent. Soit dit en passant, toute connaissance sur ce " -"sujet est aussi utile aux développeurs Python expérimentés." +"Avant de présenter les classes, nous devons aborder la notion de portée en " +"Python. Les définitions de classes font d'habiles manipulations avec les " +"espaces de noms, vous devez donc savoir comment les portées et les espaces " +"de noms fonctionnent. Soit dit en passant, la connaissance de ce sujet est " +"aussi utile aux développeurs Python expérimentés." #: ../Doc/tutorial/classes.rst:63 msgid "Let's begin with some definitions." -msgstr "Tout d'abord, quelques définitions." +msgstr "Commençons par quelques définitions." #: ../Doc/tutorial/classes.rst:65 msgid "" @@ -157,19 +155,19 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" -"Un *espace de nom* est une table de correspondance entre des noms et des " +"Un *espace de noms* est une table de correspondance entre des noms et des " "objets. La plupart des espaces de noms sont actuellement implémentés sous " "forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " "pour les performances) et peut changer dans le futur. Comme exemples " "d'espaces de noms, nous pouvons citer les primitives (fonctions comme :func:" -"`abs`, et les noms des exceptions de base) ; les noms globaux dans un " +"`abs` et les noms des exceptions de base) ; les noms globaux dans un " "module ; et les noms locaux lors d'un appel de fonction. D'une certaine " "manière, l'ensemble des attributs d'un objet forme lui-même un espace de " -"noms. La chose importante à retenir à propos des espaces de noms est qu'il " -"n'y a absolument aucun lien entre les noms de plusieurs espaces de noms ; " -"par exemple, deux modules différents peuvent définir une fonction " -"``maximize`` sans qu'il y ait de confusion. Les utilisateurs des modules " -"doivent préfixer le nom de la fonction avec celui du module." +"noms. L'important à retenir concernant les espaces de noms est qu'il n'y a " +"absolument aucun lien entre les noms de différents espaces de noms ; par " +"exemple, deux modules différents peuvent définir une fonction ``maximize`` " +"sans qu'il n'y ait de confusion. Les utilisateurs des modules doivent " +"préfixer le nom de la fonction avec celui du module." #: ../Doc/tutorial/classes.rst:76 msgid "" @@ -184,11 +182,11 @@ msgstr "" "À ce propos, nous utilisons le mot *attribut* pour tout nom suivant un " "point. Par exemple, dans l'expression ``z.real``, ``real`` est un attribut " "de l'objet ``z``. Rigoureusement parlant, les références à des noms dans des " -"modules sont des références d'attributs : dans l'expression ``modname." -"funcname``, ``modname`` est un objet module et ``funcname`` est un attribut " -"de cet objet. Dans ces conditions, il existe une correspondance directe " -"entre les attributs du module et les noms globaux définis dans le module : " -"ils partagent le même espace de noms ! [#]_" +"modules sont des références d'attributs : dans l'expression ``nommodule." +"nomfonction``, ``nommodule`` est un objet module et ``nomfonction`` est un " +"attribut de cet objet. Dans ces conditions, il existe une correspondance " +"directe entre les attributs du module et les noms globaux définis dans le " +"module : ils partagent le même espace de noms [#]_ !" #: ../Doc/tutorial/classes.rst:84 msgid "" @@ -198,12 +196,12 @@ msgid "" "the :keyword:`del` statement. For example, ``del modname.the_answer`` will " "remove the attribute :attr:`the_answer` from the object named by ``modname``." msgstr "" -"Les attributs peuvent être seulement lisibles ou aussi modifiables. S'ils " -"sont modifiables, l'affectation à un attribut est possible. Les attributs de " -"modules sont modifiables : vous pouvez écrire ``modname.the_answer = 42``. " +"Les attributs peuvent être en lecture seule ou modifiables. S'ils sont " +"modifiables, l'affectation à un attribut est possible. Les attributs de " +"modules sont modifiables : vous pouvez écrire ``nommodule.la_reponse = 42``. " "Les attributs modifiables peuvent aussi être effacés avec l'instruction :" -"keyword:`del`. Par exemple, ``del modname.the_answer`` supprime l'attribut :" -"attr:`the_answer` de l'objet nommé ``modname``." +"keyword:`del`. Par exemple, ``del nommodule.la_reponse`` supprime " +"l'attribut :attr:`la_reponse` de l'objet nommé ``nommodule``." #: ../Doc/tutorial/classes.rst:90 msgid "" @@ -219,14 +217,15 @@ msgid "" msgstr "" "Les espaces de noms sont créés à différents moments et ont différentes " "durées de vie. L'espace de noms contenant les primitives est créé au " -"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de nom " -"global pour un module est créé lorsque la définition du module est lue. " +"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de noms " +"globaux pour un module est créé lorsque la définition du module est lue. " "Habituellement, les espaces de noms des modules durent aussi jusqu'à l'arrêt " "de l'interpréteur. Les instructions exécutées par la première invocation de " -"l'interpréteur, qu'ils soient lus depuis un fichier de script ou de manière " -"interactive, sont considérés comme faisant partie d'un module appelé :mod:" -"`__main__`, de façon qu'elles possèdent leur propre espace de noms. (les " -"primitives vivent elles-mêmes dans un module, appelé :mod:`builtins`.)" +"l'interpréteur, qu'elles soient lues depuis un fichier de script ou de " +"manière interactive, sont considérées comme faisant partie d'un module " +"appelé :mod:`__main__`, de façon qu'elles possèdent leur propre espace de " +"noms (les primitives vivent elles-mêmes dans un module, appelé :mod:" +"`builtins`)." #: ../Doc/tutorial/classes.rst:100 msgid "" @@ -236,9 +235,9 @@ msgid "" "describe what actually happens.) Of course, recursive invocations each have " "their own local namespace." msgstr "" -"L'espace de noms local d'une fonction est créé lors de son appel, puis " +"L'espace des noms locaux d'une fonction est créé lors de son appel, puis " "effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " -"charge. (En fait, « oublié » serait une meilleure façon de décrire ce qui se " +"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " "passe réellement). Bien sûr, des invocations récursives ont chacune leur " "propre espace de noms." @@ -248,9 +247,9 @@ msgid "" "directly accessible. \"Directly accessible\" here means that an unqualified " "reference to a name attempts to find the name in the namespace." msgstr "" -"Une *portée* est une zone textuelle d'un programme Python où un espace de " -"noms est directement accessible. « Directement accessible » signifie ici " -"qu'une référence non qualifée à un nom sera recherchée dans l'espace de noms." +"La *portée* est la zone textuelle d'un programme Python où un espace de noms " +"est directement accessible. « Directement accessible » signifie ici qu'une " +"référence non qualifée à un nom est cherchée dans l'espace de noms." #: ../Doc/tutorial/classes.rst:110 msgid "" @@ -261,13 +260,13 @@ msgstr "" "Bien que les portées soient déterminées de manière statique, elles sont " "utilisées de manière dynamique. À n'importe quel moment de l'exécution, il y " "a au minimum trois portées imbriquées dont les espaces de noms sont " -"directement accessibles :" +"directement accessibles :" #: ../Doc/tutorial/classes.rst:114 msgid "the innermost scope, which is searched first, contains the local names" msgstr "" -"La portée la plus au centre, celle qui est consultée en premier, contient " -"les noms locaux" +"la portée la plus au centre, celle qui est consultée en premier, contient " +"les noms locaux ;" #: ../Doc/tutorial/classes.rst:115 msgid "" @@ -276,11 +275,11 @@ msgid "" msgstr "" "les portées des fonctions englobantes, qui sont consultées en commençant " "avec la portée englobante la plus proche, contiennent des noms non-locaux " -"mais aussi non-globaux" +"mais aussi non-globaux ;" #: ../Doc/tutorial/classes.rst:117 msgid "the next-to-last scope contains the current module's global names" -msgstr "l'avant dernière portée contient les noms globaux du module courant" +msgstr "l'avant-dernière portée contient les noms globaux du module courant ;" #: ../Doc/tutorial/classes.rst:118 msgid "" @@ -288,7 +287,7 @@ msgid "" "names" msgstr "" "la portée englobante, consultée en dernier, est l'espace de noms contenant " -"les primitives" +"les primitives." #: ../Doc/tutorial/classes.rst:120 msgid "" @@ -300,12 +299,12 @@ msgid "" "*new* local variable in the innermost scope, leaving the identically named " "outer variable unchanged)." msgstr "" -"Si un nom est déclaré global, toutes les références et affectations vont " -"directement dans la portée intermédiaire contenant les noms globaux du " -"module. Pour réattacher des variables trouvées en dehors de la portée la " -"plus locale, l'instruction :keyword:`nonlocal` peut être utilisée. Si elles " -"ne sont pas déclarées *nonlocal*, ces variables sont en lecture seule (toute " -"tentative de modifier une telle variable créera simplement une *nouvelle* " +"Si un nom est déclaré comme global, alors toutes les références et " +"affectations vont directement dans la portée intermédiaire contenant les " +"noms globaux du module. Pour pointer une variable qui se trouve en dehors de " +"la portée la plus locale, vous pouvez utiliser l'instruction :keyword:" +"`nonlocal`. Si une telle variable n'est pas déclarée *nonlocal*, elle est en " +"lecture seule (toute tentative de la modifier crée simplement une *nouvelle* " "variable dans la portée la plus locale, en laissant inchangée la variable du " "même nom dans sa portée d'origine)." @@ -318,7 +317,7 @@ msgid "" msgstr "" "Habituellement, la portée locale référence les noms locaux de la fonction " "courante. En dehors des fonctions, la portée locale référence le même espace " -"de noms que la portée globale : l'espace de noms du module. Les définitions " +"de noms que la portée globale : l'espace de noms du module. Les définitions " "de classes créent un nouvel espace de noms dans la portée locale." #: ../Doc/tutorial/classes.rst:132 @@ -332,13 +331,13 @@ msgid "" "local variables are already determined statically.)" msgstr "" "Il est important de réaliser que les portées sont déterminées de manière " -"textuelle : la portée globale d'une fonction définie dans un module est " -"l'espace de nom de ce module, quel que soit la provenance de cet appel. Par " -"contre, la recherche réelle des noms est faite dynamiquement au moment de " -"l'exécution. Cependant la définition du langage est en train d'évoluer vers " -"une résolution statique des noms au moment de la « compilation », donc sans " -"se baser sur une résolution dynamique ! (En réalité, les variables locales " -"sont déjà déterminées de manière statique)." +"textuelle : la portée globale d'une fonction définie dans un module est " +"l'espace de noms de ce module, quelle que soit la provenance de l'appel à la " +"fonction. En revanche, la recherche réelle des noms est faite dynamiquement " +"au moment de l'exécution. Cependant la définition du langage est en train " +"d'évoluer vers une résolution statique des noms au moment de la « " +"compilation », donc ne vous basez pas sur une résolution dynamique (en " +"réalité, les variables locales sont déjà déterminées de manière statique) !" #: ../Doc/tutorial/classes.rst:140 msgid "" @@ -351,13 +350,13 @@ msgid "" "`import` statements and function definitions bind the module or function " "name in the local scope." msgstr "" -"Une particularité de Python est que si aucune instruction :keyword:`global` " +"Une particularité de Python est que, si aucune instruction :keyword:`global` " "n'est active, les affectations de noms vont toujours dans la portée la plus " -"proche. Les affectations ne copient aucune donnée : elles se contentent de " -"lier des noms à des objets. Ceci est également vrai pour l'effacement : " +"proche. Les affectations ne copient aucune donnée : elles se contentent de " +"lier des noms à des objets. Ceci est également vrai pour l'effacement : " "l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de noms " "référencé par la portée locale. En réalité, toutes les opérations qui " -"impliquent des nouveaux noms utilisent la portée locale : en particulier, " +"impliquent des nouveaux noms utilisent la portée locale : en particulier, " "les instructions :keyword:`import` et les définitions de fonctions " "effectuent une liaison du module ou du nom de fonction dans la portée locale." @@ -385,11 +384,11 @@ msgid "" msgstr "" "Ceci est un exemple montrant comment utiliser les différentes portées et " "espaces de noms, et comment :keyword:`global` et :keyword:`nonlocal` " -"modifient l'affectation de variable : ::" +"modifient l'affectation de variable ::" #: ../Doc/tutorial/classes.rst:185 msgid "The output of the example code is:" -msgstr "Ce code donne le résultat suivant :" +msgstr "Ce code donne le résultat suivant :" #: ../Doc/tutorial/classes.rst:194 msgid "" @@ -421,8 +420,8 @@ msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." msgstr "" -"Le concept de classes introduit quelques nouveau éléments de syntaxe, trois " -"nouveaux types d'objets ainsi que de nouveaux éléments de sémantique" +"Le concept de classe introduit un peu de syntaxe nouvelle, trois nouveaux " +"types d'objets ainsi que quelques nouveaux éléments de sémantique." #: ../Doc/tutorial/classes.rst:215 msgid "Class Definition Syntax" @@ -430,7 +429,7 @@ msgstr "Syntaxe de définition des classes" #: ../Doc/tutorial/classes.rst:217 msgid "The simplest form of class definition looks like this::" -msgstr "La forme la plus simple de définition de classe ressemble à ceci : ::" +msgstr "La forme la plus simple de définition d'une classe est la suivante ::" #: ../Doc/tutorial/classes.rst:226 msgid "" @@ -440,10 +439,10 @@ msgid "" "function.)" msgstr "" "Les définitions de classes, comme les définitions de fonctions (définitions :" -"keyword:`def`) doivent être exécutées avant d'avoir un effet. (Vous pouvez " +"keyword:`def`), doivent être exécutées avant d'avoir un effet. Vous pouvez " "tout à fait placer une définition de classe dans une branche d'une " "instruction conditionnelle :keyword:`if` ou encore à l'intérieur d'une " -"fonction.)" +"fonction." #: ../Doc/tutorial/classes.rst:230 msgid "" @@ -453,12 +452,12 @@ msgid "" "normally have a peculiar form of argument list, dictated by the calling " "conventions for methods --- again, this is explained later." msgstr "" -"Dans la pratique, les déclarations dans une définition de classe seront " -"généralement des définitions de fonctions, mais d'autres déclarations sont " -"permises, et parfois utiles --- Nous reviendrons sur ce point plus tard. Les " +"Dans la pratique, les déclarations dans une définition de classe sont " +"généralement des définitions de fonctions mais d'autres déclarations sont " +"permises et parfois utiles (nous revenons sur ce point plus tard). Les " "définitions de fonction à l'intérieur d'une classe ont normalement une forme " "particulière de liste d'arguments, dictée par les conventions d'appel aux " -"méthodes --- À nouveau, tout ceci sera expliqué plus tard." +"méthodes (à nouveau, tout ceci est expliqué plus loin)." #: ../Doc/tutorial/classes.rst:236 msgid "" @@ -482,24 +481,24 @@ msgid "" "here to the class name given in the class definition header (:class:" "`ClassName` in the example)." msgstr "" -"A la fin de la définition d'une classe, un *objet classe* est créé. C'est, " +"À la fin de la définition d'une classe, un *objet classe* est créé. C'est, " "pour simplifier, une encapsulation du contenu de l'espace de noms créé par " -"la définition de classe. Nous reparlerons des objets classes dans la " -"prochaine section. La portée locale initiale (celle qui prévaut avant le " -"début de la définition de la classe) est réinstanciée, et l'objet de classe " -"est lié ici au nom de classe donné dans l'en-tête de définition de classe (:" -"class:`NomDeLaClasse` dans l'exemple)." +"la définition de classe. Nous revoyons les objets classes dans la prochaine " +"section. La portée locale initiale (celle qui prévaut avant le début de la " +"définition de la classe) est réinstanciée et l'objet de classe est lié ici " +"au nom de classe donné dans l'en-tête de définition de classe (:class:" +"`ClassName` dans l'exemple)." #: ../Doc/tutorial/classes.rst:253 msgid "Class Objects" -msgstr "Les objets classe" +msgstr "Objets classes" #: ../Doc/tutorial/classes.rst:255 msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." msgstr "" -"Les objets classes prennent en charge deux types d'opérations : des " +"Les objets classes prennent en charge deux types d'opérations : des " "références à des attributs et l'instanciation." #: ../Doc/tutorial/classes.rst:258 @@ -510,10 +509,10 @@ msgid "" "if the class definition looked like this::" msgstr "" "Les *références d'attributs* utilisent la syntaxe standard utilisée pour " -"toutes les références d'attributs en Python : ``obj.nom``. Les noms " +"toutes les références d'attributs en Python : ``obj.nom``. Les noms " "d'attribut valides sont tous les noms qui se trouvaient dans l'espace de " "noms de la classe quand l'objet classe a été créé. Donc, si la définition de " -"classe ressemble à ceci : ::" +"classe est de cette forme ::" #: ../Doc/tutorial/classes.rst:270 msgid "" @@ -523,12 +522,12 @@ msgid "" "assignment. :attr:`__doc__` is also a valid attribute, returning the " "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" -"alors ``MaClasse.i`` et ``MaClasse.f`` sont des références valides à des " +"alors ``MyClass.i`` et ``MyClass.f`` sont des références valides à des " "attributs, renvoyant respectivement un entier et un objet fonction. Les " "attributs de classes peuvent également être affectés, de sorte que vous " -"pouvez modifier la valeur de ``MaClasse.i`` par affectation. :attr:`__doc__` " +"pouvez modifier la valeur de ``MyClass.i`` par affectation. :attr:`__doc__` " "est aussi un attribut valide, renvoyant la docstring appartenant à la " -"classe : ``\"Une simple classe d'exemple\"``." +"classe : ``\"A simple example class\"``." #: ../Doc/tutorial/classes.rst:276 msgid "" @@ -539,7 +538,7 @@ msgstr "" "L'*instanciation* de classes utilise la notation des fonctions. Considérez " "simplement que l'objet classe est une fonction sans paramètre qui renvoie " "une nouvelle instance de la classe. Par exemple (en considérant la classe " -"définie ci-dessus) ::" +"définie ci-dessus) ::" #: ../Doc/tutorial/classes.rst:282 msgid "" @@ -557,10 +556,9 @@ msgid "" "meth:`__init__`, like this::" msgstr "" "L'opération d'instanciation (en \"appelant\" un objet classe) crée un objet " -"vide. De nombreuses classes aiment créer des objets personnalisés avec des " -"instances personnalisées en fonction d'un état initial spécifique. Ainsi une " -"classe peut définir une méthode spéciale nommée: :meth:`__init__`, comme " -"ceci : ::" +"vide. De nombreuses classes aiment créer des instances personnalisées " +"correspondant à un état initial spécifique. À cet effet, une classe peut " +"définir une méthode spéciale nommée :meth:`__init__`, comme ceci ::" #: ../Doc/tutorial/classes.rst:293 msgid "" @@ -572,7 +570,7 @@ msgstr "" "Quand une classe définit une méthode :meth:`__init__`, l'instanciation de la " "classe appelle automatiquement :meth:`__init__` pour la nouvelle instance de " "la classe. Donc, dans cet exemple, l'initialisation d'une nouvelle instance " -"peut être obtenue par : ::" +"peut être obtenue par ::" #: ../Doc/tutorial/classes.rst:299 msgid "" @@ -582,11 +580,11 @@ msgid "" msgstr "" "Bien sûr, la méthode :meth:`__init__` peut avoir des arguments pour une plus " "grande flexibilité. Dans ce cas, les arguments donnés à l'opérateur " -"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple, ::" +"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" #: ../Doc/tutorial/classes.rst:316 msgid "Instance Objects" -msgstr "Objets instance" +msgstr "Objets instances" #: ../Doc/tutorial/classes.rst:318 msgid "" @@ -594,10 +592,10 @@ msgid "" "instance objects are attribute references. There are two kinds of valid " "attribute names, data attributes and methods." msgstr "" -"Maintenant, que pouvons-nous faire avec des objets instance ? Les seules " +"Maintenant, que pouvons-nous faire avec des objets instances ? Les seules " "opérations comprises par les objets instances sont des références " "d'attributs. Il y a deux sortes de noms d'attributs valides, les attributs " -"données et les méthodes." +"'données' et les méthodes." #: ../Doc/tutorial/classes.rst:322 msgid "" @@ -608,12 +606,12 @@ msgid "" "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" -"Les *attributs données* correspondent à des \"variables d'instance\" en " -"Smalltalk, et aux \"membres de données\" en C++. Les attributs données n'ont " -"pas à être déclarés. Comme les variables locales, ils existent dès lors " -"qu'ils sont attribués une première fois. Par exemple, si ``x`` est " +"Les *attributs 'données'* correspondent à des \"variables d'instance\" en " +"Smalltalk et aux \"membres de données\" en C++. Les attributs 'données' " +"n'ont pas à être déclarés. Comme les variables locales, ils existent dès " +"lors qu'ils sont assignés une première fois. Par exemple, si ``x`` est " "l'instance de :class:`MyClass` créée ci-dessus, le code suivant affiche la " -"valeur ``16``, sans laisser de traces : ::" +"valeur ``16``, sans laisser de trace ::" #: ../Doc/tutorial/classes.rst:334 msgid "" @@ -627,12 +625,12 @@ msgid "" msgstr "" "L'autre type de référence à un attribut d'instance est une *méthode*. Une " "méthode est une fonction qui \"appartient à\" un objet (en Python, le terme " -"de méthode n'est pas unique aux instances de classes : d'autres types " +"de méthode n'est pas unique aux instances de classes : d'autres types " "d'objets peuvent aussi avoir des méthodes. Par exemple, les objets listes " -"ont des méthodes appelées append, insert, remove, sort, et ainsi de suite. " +"ont des méthodes appelées append, insert, remove, sort et ainsi de suite. " "Toutefois, dans la discussion qui suit, sauf indication contraire, nous " -"allons utiliser le terme de méthode exclusivement en référence à des " -"méthodes d'objets instances de classe)." +"utilisons le terme de méthode exclusivement en référence à des méthodes " +"d'objets instances de classe)." #: ../Doc/tutorial/classes.rst:343 msgid "" @@ -646,18 +644,18 @@ msgstr "" "Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " "définition, tous les attributs d'une classe qui sont des objets fonction " "définissent les méthodes correspondantes de ses instances. Donc, dans notre " -"exemple, ``x.f`` est une méthode de référence valide, car ``MaClasse.f`` est " -"une fonction, mais pas ``x.i`` car ``MaClasse.i`` n'en est pas une. " -"Attention cependant, ``x.f`` n'est pas la même chose que ``MaClasse.f`` --- " +"exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " +"est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " +"Attention cependant, ``x.f`` n'est pas la même chose que ``MyClass.f`` --- " "Il s'agit d'un *objet méthode*, pas d'un objet fonction." #: ../Doc/tutorial/classes.rst:354 msgid "Method Objects" -msgstr "Les objets méthode" +msgstr "Objets méthode" #: ../Doc/tutorial/classes.rst:356 msgid "Usually, a method is called right after it is bound::" -msgstr "Le plus souvent, une méthode est appelée juste après avoir été liée::" +msgstr "Le plus souvent, une méthode est appelée juste après avoir été liée ::" #: ../Doc/tutorial/classes.rst:360 msgid "" @@ -666,14 +664,14 @@ msgid "" "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" -"Dans l'exemple de la class :class:`MaClass`, cela va renvoyer la chaîne de " +"Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " "méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " -"coté et être appelé plus tard. Par exemple::" +"coté et être appelé plus tard. Par exemple ::" #: ../Doc/tutorial/classes.rst:368 msgid "will continue to print ``hello world`` until the end of time." -msgstr "va afficher ``hello world`` jusqu'à la fin des temps." +msgstr "affiche ``hello world`` jusqu'à la fin des temps." #: ../Doc/tutorial/classes.rst:370 msgid "" @@ -684,10 +682,10 @@ msgid "" "argument is called without any --- even if the argument isn't actually " "used..." msgstr "" -"Que ce passe-t-il exactement quand une méthode est appelée ? Vous avez dû " +"Que se passe-t-il exactement quand une méthode est appelée ? Vous avez dû " "remarquer que ``x.f()`` a été appelée dans le code ci-dessus sans argument, " "alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " -"un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " +"un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " "exception lorsqu'une fonction qui requiert un argument est appelée sans -- " "même si l'argument n'est pas utilisé..." @@ -721,15 +719,15 @@ msgid "" "called with this new argument list." msgstr "" "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " -"d'œil à l'implémentation vous aidera peut être. Lorsque l'instance d'un " -"attribut est référencé qui n'est pas un attribut donnée, sa classe est " -"recherchée. Si le nom correspond à un attribut valide qui est une fonction, " -"un objet méthode est créé en associant (via leurs pointeurs) l'objet " -"instance et l'objet fonction trouvé ensemble dans un nouvel objet abstrait : " -"c'est l'objet méthode. Lorsque l'objet méthode est appelé avec une liste " -"d'arguments, une nouvelle liste d'arguments est construite à partir de " -"l'objet méthode et de la liste des arguments. L'objet fonction est appelé " -"avec cette nouvelle liste d'arguments." +"d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " +"instance est référencé et que ce n'est pas un attribut 'données', sa classe " +"est recherchée. Si le nom correspond à un attribut valide et que c'est un " +"objet fonction, un objet méthode est créé en générant un objet abstrait qui " +"regroupe (des pointeurs vers) l'objet instance et l'objet fonction qui vient " +"d'être trouvé : c'est l'objet méthode. Quand l'objet méthode est appelé avec " +"une liste d'arguments, une nouvelle liste d'arguments est construite à " +"partir de l'objet instance et de la liste des arguments. L'objet fonction " +"est alors appelé avec cette nouvelle liste d'arguments." #: ../Doc/tutorial/classes.rst:397 msgid "Class and Instance Variables" @@ -743,7 +741,7 @@ msgid "" msgstr "" "En général, les variables d'instance stockent des informations relatives à " "chaque instance alors que les variables de classe servent à stocker les " -"attributs et méthodes communes à toutes les instances de la classe::" +"attributs et méthodes communes à toutes les instances de la classe ::" #: ../Doc/tutorial/classes.rst:421 msgid "" @@ -753,17 +751,18 @@ msgid "" "not be used as a class variable because just a single list would be shared " "by all *Dog* instances::" msgstr "" -"Comme vu dans :ref:`tut-object`, les données partagées :term:`modifiables " -"` (tel que les listes, dictionnaires, etc...) peuvent avoir des " -"effets surprenants. Part exemple, la liste *tricks* dans le code suivant ne " -"devrait pas être une variable de classe, car jiate une seule liste serait " -"partagées par toutes les instances de *Dog*::" +"Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" +"`muable ` (telles que les listes, dictionnaires, etc...) peuvent " +"avoir des effets surprenants. Par exemple, la liste *tricks* dans le code " +"suivant ne devrait pas être utilisée en tant que variable de classe car, " +"dans ce cas, une seule liste est partagée par toutes les instances de " +"*Dog* ::" #: ../Doc/tutorial/classes.rst:444 msgid "Correct design of the class should use an instance variable instead::" msgstr "" -"Une conception correcte de la classe serait d'utiliser une variable " -"d'instance à la place : :" +"Une conception correcte de la classe est d'utiliser une variable d'instance " +"à la place ::" #: ../Doc/tutorial/classes.rst:468 msgid "Random Remarks" @@ -779,14 +778,14 @@ msgid "" "just an underscore), or using verbs for methods and nouns for data " "attributes." msgstr "" -"Les attributs de données surchargent les méthodes avec le même nom ; pour " +"Les attributs 'données' surchargent les méthodes avec le même nom ; pour " "éviter des conflits de nommage, qui peuvent causer des bugs difficiles à " "trouver dans de grands programmes, il est sage d'adopter certaines " -"conventions qui minimisent les risques de conflits. Les conventions " -"possibles comprennent la mise en majuscule des noms de méthodes, le préfixe " -"des noms d'attributs de données par une chaîne courte et unique (parfois " -"juste la caractère souligné), ou l'utilisation de verbes pour les méthodes " -"et de noms pour les attributs de données." +"conventions qui minimisent les risques de conflits. Parmi les conventions " +"possibles, on peut citer la mise en majuscule des noms de méthodes, le " +"préfixe des noms d'attributs 'données' par une chaîne courte et unique " +"(parfois juste la caractère souligné) ou l'utilisation de verbes pour les " +"méthodes et de noms pour les attributs 'données'." #: ../Doc/tutorial/classes.rst:479 msgid "" @@ -798,14 +797,14 @@ msgid "" "implementation details and control access to an object if necessary; this " "can be used by extensions to Python written in C.)" msgstr "" -"Les attributs de données peuvent être référencés par des méthodes comme par " +"Les attributs 'données' peuvent être référencés par des méthodes comme par " "des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " "les classes ne sont pas utilisables pour implémenter des types de données " -"purement abstraits. En fait, rien en Python ne rend possible d'imposer de " +"purement abstraits. En fait, il n'est pas possible en Python d'imposer de " "masquer des données --- tout est basé sur des conventions (d'un autre coté, " -"l'implémentation Python, écrite en C, peut complètement masquer les détails " -"d'implémentation et contrôler l'accès à un objet si nécessaire ; ceci peut " -"être utilisé par des extensions de Python écrites en C)." +"l'implémentation de Python, écrite en C, peut complètement masquer les " +"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " +"ceci peut être utilisé par des extensions de Python écrites en C)." #: ../Doc/tutorial/classes.rst:487 msgid "" @@ -815,12 +814,12 @@ msgid "" "without affecting the validity of the methods, as long as name conflicts are " "avoided --- again, a naming convention can save a lot of headaches here." msgstr "" -"Les clients doivent utiliser les attributs de données avec précaution --- " -"ils pourraient mettre le désordre dans les invariants gérés par les méthodes " +"Les clients doivent utiliser les attributs 'données' avec précaution --- ils " +"pourraient mettre le désordre dans les invariants gérés par les méthodes " "avec leurs propres valeurs d'attributs. Remarquez que les clients peuvent " -"ajouter leurs propres attributs de données à une instance d'objet sans " +"ajouter leurs propres attributs 'données' à une instance d'objet sans " "altérer la validité des méthodes, pour autant que les noms n'entrent pas en " -"conflit --- aussi, adopter une convention de nommage peut éviter bien des " +"conflit --- là aussi, adopter une convention de nommage peut éviter bien des " "problèmes." #: ../Doc/tutorial/classes.rst:493 @@ -830,9 +829,9 @@ msgid "" "methods: there is no chance of confusing local variables and instance " "variables when glancing through a method." msgstr "" -"Il n'y a pas de notation abrégée pour référencer des attributs de données " -"(ou d'autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " -"en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " +"Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " +"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " +"en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " "variables locales et variables d'instances quand on regarde le code d'une " "méthode." @@ -846,11 +845,11 @@ msgid "" "convention." msgstr "" "Souvent, le premier argument d'une méthode est nommé ``self``. Ce n'est " -"qu'une convention : le nom ``self`` n'a aucune signification particulière en " +"qu'une convention : le nom ``self`` n'a aucune signification particulière en " "Python. Notez cependant que si vous ne suivez pas cette convention, votre " -"code risque d'être moins lisible pour d'autres programmeurs Python, et il " -"est aussi possible qu'un programme qui fasse l'introspection de classes " -"repose sur une telle convention." +"code risque d'être moins lisible pour d'autres programmeurs Python et il est " +"aussi possible qu'un programme qui fasse l'introspection de classes repose " +"sur une telle convention." #: ../Doc/tutorial/classes.rst:504 msgid "" @@ -861,9 +860,9 @@ msgid "" msgstr "" "Tout objet fonction qui est un attribut de classe définit une méthode pour " "des instances de cette classe. Il n'est pas nécessaire que le texte de " -"définition de la fonction soit dans la définition de la classe : il est " +"définition de la fonction soit dans la définition de la classe : il est " "possible d'affecter un objet fonction à une variable locale de la classe. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/tutorial/classes.rst:521 msgid "" @@ -872,11 +871,11 @@ msgid "" "class:`C` --- ``h`` being exactly equivalent to ``g``. Note that this " "practice usually only serves to confuse the reader of a program." msgstr "" -"Maintenant, ``f``, ``g`` et ``h`` sont tous des attributs des classes :class:" -"`C` faisant référence aux fonctions objets, et par conséquent sont toutes " -"des méthodes des instances de :class:`C` --- ``h`` est exactement identique " -"à ``g``. Remarquez qu'en pratique, ceci ne sert qu'à embrouiller le lecteur " -"d'un programme." +"Maintenant, ``f``, ``g`` et ``h`` sont toutes des attributs de la classe :" +"class:`C` et font référence à des fonctions objets. Par conséquent, ce sont " +"toutes des méthodes des instances de :class:`C` --- ``h`` est exactement " +"identique à ``g``. Remarquez qu'en pratique, ceci ne sert qu'à embrouiller " +"le lecteur d'un programme." #: ../Doc/tutorial/classes.rst:526 msgid "" @@ -884,7 +883,7 @@ msgid "" "argument::" msgstr "" "Les méthodes peuvent appeler d'autres méthodes en utilisant des méthodes qui " -"sont des attributs de l'argument ``self`` ::" +"sont des attributs de l'argument ``self`` ::" #: ../Doc/tutorial/classes.rst:540 msgid "" @@ -900,14 +899,14 @@ msgid "" msgstr "" "Les méthodes peuvent faire référence à des noms globaux de la même manière " "que les fonctions. La portée globale associée à une méthode est le module " -"contenant la définition de la classe (la classe elle même n'est jamais " -"utilisée en tant que portée globale). Alors qu'on rencontre rarement une " -"bonne raison d'utiliser des données globales dans une méthode, il y a de " -"nombreuses utilisations légitimes d'une portée globale : par exemple, les " +"contenant la définition de la classe (la classe elle-même n'est jamais " +"utilisée en tant que portée globale). Alors qu'il est rare d'avoir une bonne " +"raison d'utiliser des données globales dans une méthode, il y a de " +"nombreuses utilisations légitimes de la portée globale : par exemple, les " "fonctions et modules importés dans une portée globale peuvent être utilisés " "par des méthodes, de même que les fonctions et classes définies dans cette " -"même portée. Habituellement, la classe contenant la méthode est elle même " -"définie dans cette portée globale, et dans la section suivante, nous verrons " +"même portée. Habituellement, la classe contenant la méthode est elle-même " +"définie dans cette portée globale et, dans la section suivante, nous verrons " "de bonnes raisons pour qu'une méthode référence sa propre classe." #: ../Doc/tutorial/classes.rst:550 @@ -915,12 +914,12 @@ msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" -"Toute valeur est un objet, et a donc une *classe* (appelé aussi son *type*). " +"Toute valeur est un objet et a donc une *classe* (appelée aussi son *type*). " "Elle est stockée dans ``objet.__class__``." #: ../Doc/tutorial/classes.rst:557 msgid "Inheritance" -msgstr "L'héritage" +msgstr "Héritage" #: ../Doc/tutorial/classes.rst:559 msgid "" @@ -928,8 +927,8 @@ msgid "" "without supporting inheritance. The syntax for a derived class definition " "looks like this::" msgstr "" -"Bien sûr, ce terme de «classe» ne serait pas utilisé s'il n'y avait pas " -"l'héritage. La syntaxe pour définir une sous-classe ressemble à ceci : ::" +"Bien sûr, ce terme de \"classe\" ne serait pas utilisé s'il n'y avait pas " +"d'héritage. La syntaxe pour définir une sous-classe est de cette forme ::" #: ../Doc/tutorial/classes.rst:570 msgid "" @@ -938,10 +937,10 @@ msgid "" "expressions are also allowed. This can be useful, for example, when the " "base class is defined in another module::" msgstr "" -"Le nom :class:`ClasseDeBase` doit être défini dans un espace contenant la " -"définition de la classe dérivée. A la place du nom d'une classe de base, une " +"Le nom :class:`BaseClassName` doit être défini dans une portée contenant la " +"définition de la classe dérivée. À la place du nom d'une classe de base, une " "expression est aussi autorisée. Ceci peut être utile, par exemple, lorsque " -"la classe est définie dans un autre module : ::" +"la classe est définie dans un autre module ::" #: ../Doc/tutorial/classes.rst:577 msgid "" @@ -955,8 +954,8 @@ msgstr "" "L'exécution d'une définition de classe dérivée se déroule comme pour une " "classe de base. Quand l'objet de la classe est construit, la classe de base " "est mémorisée. Elle est utilisée pour la résolution des références " -"d'attributs : si un attribut n'est pas trouvé dans la classe, la recherche " -"procède en regardant dans la classe de base. Cette règle est appliquée " +"d'attributs : si un attribut n'est pas trouvé dans la classe, la recherche " +"se poursuit en regardant dans la classe de base. Cette règle est appliquée " "récursivement si la classe de base est elle-même dérivée d'une autre classe." #: ../Doc/tutorial/classes.rst:583 @@ -967,9 +966,9 @@ msgid "" "searched, descending down the chain of base classes if necessary, and the " "method reference is valid if this yields a function object." msgstr "" -"Il n'y a rien de particulier dans l'instantiation des classes dérivées : " +"Il n'y a rien de particulier dans l'instantiation des classes dérivées : " "``DerivedClassName()`` crée une nouvelle instance de la classe. Les " -"références aux méthodes sont résolues comme suit : l'attribut correspondant " +"références aux méthodes sont résolues comme suit : l'attribut correspondant " "de la classe est recherché, en remontant la hiérarchie des classes de base " "si nécessaire, et la référence de méthode est valide si cela conduit à une " "fonction." @@ -987,7 +986,8 @@ msgstr "" "appellent d'autres méthodes d'un même objet, une méthode d'une classe de " "base qui appelle une autre méthode définie dans la même classe peut en fait " "appeler une méthode d'une classe dérivée qui la surcharge (pour les " -"programmeurs C++ : toutes les méthodes de Python sont en effet ``virtual``)." +"programmeurs C++ : toutes les méthodes de Python sont en effet \"virtuelles" +"\")." #: ../Doc/tutorial/classes.rst:595 msgid "" @@ -998,17 +998,16 @@ msgid "" "well. (Note that this only works if the base class is accessible as " "``BaseClassName`` in the global scope.)" msgstr "" -"Une méthode surchargée dans une classe dérivée peut en fait vouloir étendre " +"Une méthode dans une classe dérivée peut aussi, en fait, vouloir étendre " "plutôt que simplement remplacer la méthode du même nom de sa classe de base. " -"Il y a une façon simple d'appeler la méthode de la classe de base " -"directement : appelez simplement ``BaseClassName.methodname(self, " -"arguments)``. Ceci est parfois utile également aux clients (notez bien que " -"ceci ne fonctionne que si la classe de base est accessible en tant que " -"``ClasseDeBase`` dans la portée globale)." +"L'appel direct à la méthode de la classe de base s'écrit simplement " +"``BaseClassName.nomMethode(self, arguments)``. C'est parfois utile également " +"aux clients (notez bien que ceci ne fonctionne que si la classe de base est " +"accessible en tant que ``BaseClassName`` dans la portée globale)." #: ../Doc/tutorial/classes.rst:602 msgid "Python has two built-in functions that work with inheritance:" -msgstr "Python a deux fonctions primitives qui gèrent l'héritage :" +msgstr "Python définit deux fonctions primitives pour gèrer l'héritage :" #: ../Doc/tutorial/classes.rst:604 msgid "" @@ -1016,9 +1015,9 @@ msgid "" "will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " "derived from :class:`int`." msgstr "" -"Utilisez :func:`isinstance` pour tester le type d'une instance : " -"``isinstance(obj, int)`` renverra ``True`` seulement si ``obj.__class__`` " -"est égal à :class:`int` ou à une autre classe dérivée de :class:`int`." +"utilisez :func:`isinstance` pour tester le type d'une instance : " +"``isinstance(obj, int)`` renvoie ``True`` seulement si ``obj.__class__`` est " +"égal à :class:`int` ou à une autre classe dérivée de :class:`int` ;" #: ../Doc/tutorial/classes.rst:608 msgid "" @@ -1027,15 +1026,15 @@ msgid "" "``issubclass(float, int)`` is ``False`` since :class:`float` is not a " "subclass of :class:`int`." msgstr "" -"Utilisez :func:`issubclass` pour tester l'héritage d'une class : " +"utilisez :func:`issubclass` pour tester l'héritage d'une classe : " "``issubclass(bool, int)`` renvoie ``True`` car la class :class:`bool` est " -"une sous-classe de :class:`int`. Par contre, ``issubclass(float, int)`` " +"une sous-classe de :class:`int`. Cependant, ``issubclass(float, int)`` " "renvoie ``False`` car :class:`float` n'est pas une sous-classe de :class:" "`int`." #: ../Doc/tutorial/classes.rst:618 msgid "Multiple Inheritance" -msgstr "L'héritage multiple" +msgstr "Héritage multiple" #: ../Doc/tutorial/classes.rst:620 msgid "" @@ -1043,7 +1042,7 @@ msgid "" "with multiple base classes looks like this::" msgstr "" "Python gère également une forme d'héritage multiple. Une définition de " -"classe ayant plusieurs classes de base ressemble à : ::" +"classe ayant plusieurs classes de base est de cette forme ::" #: ../Doc/tutorial/classes.rst:630 msgid "" @@ -1055,14 +1054,14 @@ msgid "" "of :class:`Base1`, and if it was not found there, it was searched for in :" "class:`Base2`, and so on." msgstr "" -"Dans la plupart des cas, vous pouvez imaginer la recherche d'attributs dans " -"les classes parentes comme étant : le plus profond d'abord, de gauche à " -"droite, sans chercher deux fois dans la même classe si elle apparaît " -"plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas trouvé " -"dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, puis " -"(récursivement) dans les classes de base de :class:`Base1` ; s'il n'y est " -"pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, et " -"ainsi de suite." +"Dans la plupart des cas, vous pouvez vous représenter la recherche " +"d'attributs dans les classes parentes comme étant : le plus profond d'abord, " +"de gauche à droite, sans chercher deux fois dans la même classe si elle " +"apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " +"trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " +"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " +"est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " +"et ainsi de suite." #: ../Doc/tutorial/classes.rst:637 msgid "" @@ -1072,12 +1071,13 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" -"Dans les faits, c'est un peu plus complexe que ça, l'ordre de la recherche " -"(method resolution order, ou MRO) change dynamiquement pour gérer des appels " -"coopératifs à :func:`super`. Cette approche est connue sous le nom de la " -"\"méthode la plus proche\" (\"call-next-method\") dans d'autres langages " -"supportant l'héritage multiple, et est plus puissante que l'appel à super " -"trouve dans les langages à héritage simple." +"Dans les faits, c'est un peu plus complexe que ça ; l'ordre de la recherche " +"(*method resolution order, ou MRO* en anglais) change dynamiquement pour " +"gérer des appels coopératifs à :func:`super`. Cette approche est connue sous " +"le nom de la \"appel de la méthode la plus proche\" (*call-next-method* en " +"anglais) dans d'autres langages avec héritage multiple. Elle est plus " +"puissante que le simple appel à super que l'on trouve dans les langages à " +"héritage simple." #: ../Doc/tutorial/classes.rst:643 msgid "" @@ -1097,17 +1097,17 @@ msgid "" msgstr "" "L'ordre défini dynamiquement est nécessaire car tous les cas d'héritage " "multiple comportent une ou plusieurs relations en losange (où au moins une " -"classe peut être accédée à partir de plusieurs chemins en pariant de la " -"classe la plus base). Par exemple, puisque toutes les classes héritent de :" +"classe peut être accédée à partir de plusieurs chemins en partant de la " +"classe la plus basse). Par exemple, puisque toutes les classes héritent de :" "class:`object`, tout héritage multiple ouvre plusieurs chemins pour " "atteindre :class:`object`. Pour qu'une classe de base ne soit pas appelée " "plusieurs fois, l'algorithme dynamique linéarise l'ordre de recherche d'une " -"façon qui préserve l'ordre d'héritage, de lagauche vers la droite, spécifié " +"façon qui préserve l'ordre d'héritage, de la gauche vers la droite, spécifié " "dans chaque classe, qui appelle chaque classe parente une seule fois, qui " "est monotone (ce qui signifie qu'une classe peut être sous-classée sans " "affecter l'ordre d'héritage de ses parents). Prises ensemble, ces propriétés " "permettent de concevoir des classes de façon fiable et extensible dans un " -"contexte d'héritage multiple. Pour plus de détail, consultez http://www." +"contexte d'héritage multiple. Pour plus de détails, consultez http://www." "python.org/download/releases/2.3/mro/." #: ../Doc/tutorial/classes.rst:660 @@ -1123,13 +1123,13 @@ msgid "" "a function, a method or a data member). It should be considered an " "implementation detail and subject to change without notice." msgstr "" -"Les membres \"privés\", qui ne peuvent être accédés en dehors d'un objet, " -"n'existent pas en Python. Toutefois, il existe une convention respectée par " -"la majorité du code Python : un nom préfixé par un tiret bas (comme " -"``_spam``) doit être vu comme une partie non publique de l'API (qu'il " -"s'agisse d'une fonction, d'une méthode ou d'une variable membre). Il doit " -"être considéré comme un détail d'implémentation pouvant faire l'objet de " -"modification futures sans préavis." +"Les membres \"privés\", qui ne peuvent être accédés que depuis l'intérieur " +"d'un objet, n'existent pas en Python. Toutefois, il existe une convention " +"respectée par la majorité du code Python : un nom préfixé par un tiret bas " +"(comme ``_spam``) doit être considéré comme une partie non publique de l'API " +"(qu'il s'agisse d'une fonction, d'une méthode ou d'un attribut 'données'). " +"Il doit être vu comme un détail d'implémentation pouvant faire l'objet de " +"modifications futures sans préavis." #: ../Doc/tutorial/classes.rst:669 msgid "" @@ -1142,15 +1142,15 @@ msgid "" "stripped. This mangling is done without regard to the syntactic position of " "the identifier, as long as it occurs within the definition of a class." msgstr "" -"Dès lors qu'il y a un cas d'utilisation valable pour avoir des membres " -"privés (notamment pour éviter des conflits avec des noms définis dans des " -"sous-classes), il existe un support (certes limité) pour un tel mécanisme, " -"appelé :dfn:`name mangling`. Tout identifiant sous la forme ``__spam`` (avec " -"au moins deux underscores en tête, et au plus un à la fin) est remplacé " -"textuellement par ``_classname__spam``, où ``classname`` est le nom de la " -"classe sans le(s) premier(s) underscore(s). Ce \"bricolage\" est effectué " -"sans tenir compte de la position syntaxique de l'identifiant, tant qu'il est " -"présent dans la définition d'une classe." +"Dès lors qu'il y a un cas d'utilisation valable pour avoir des attributs " +"privés aux classes (notamment pour éviter des conflits avec des noms définis " +"dans des sous-classes), il existe un support (certes limité) pour un tel " +"mécanisme, appelé :dfn:`name mangling`. Tout identifiant de la forme " +"``__spam`` (avec au moins deux underscores en tête et au plus un à la fin) " +"est remplacé textuellement par ``_classname__spam``, où ``classname`` est le " +"nom de la classe sans le(s) premier(s) underscore(s). Ce \"découpage\" est " +"effectué sans tenir compte de la position syntaxique de l'identifiant, tant " +"qu'il est présent dans la définition d'une classe." #: ../Doc/tutorial/classes.rst:678 msgid "" @@ -1158,8 +1158,8 @@ msgid "" "breaking intraclass method calls. For example::" msgstr "" "Ce changement de nom est utile pour permettre à des sous-classes de " -"surcharger des méthodes sans interrompre les appels de méthodes intra-" -"classes. Par exemple : ::" +"surcharger des méthodes sans casser les appels de méthodes à l'intérieur " +"d'une classe. Par exemple ::" #: ../Doc/tutorial/classes.rst:700 msgid "" @@ -1182,12 +1182,12 @@ msgid "" "applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " "referencing ``__dict__`` directly." msgstr "" -"Notez que le code passé à ``exec()``, ``eval()`` ne considère pas le nom de " -"la classe appelante comme étant la classe courante ; le même effet " -"s'applique à la directive ``global``, dont l'effet est de la même façon " -"restreint au code compilé dans le même ensemble de byte-code. Les mêmes " -"restrictions s'appliquent à ``getattr()``, ``setattr()`` et ``delattr()``, " -"ainsi qu'aux références directes à ``__dict__``." +"Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " +"pas le nom de la classe appelante comme étant la classe courante ; le même " +"effet s'applique à la directive ``global`` dont l'effet est, de la même " +"façon, restreint au code compilé dans le même ensemble de byte-code. Les " +"mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " +"``delattr()``, ainsi qu'aux références directes à ``__dict__``." #: ../Doc/tutorial/classes.rst:715 msgid "Odds and Ends" @@ -1201,7 +1201,8 @@ msgid "" msgstr "" "Il est parfois utile d'avoir un type de donnée similaire au \"record\" du " "Pascal ou au \"struct\" du C, qui regroupent ensemble quelques attributs " -"nommés. La définition d'une classe vide remplit parfaitement ce besoin : ::" +"'données' nommés. La définition d'une classe vide remplit parfaitement ce " +"besoin ::" #: ../Doc/tutorial/classes.rst:731 msgid "" @@ -1212,12 +1213,12 @@ msgid "" "readline` that get the data from a string buffer instead, and pass it as an " "argument." msgstr "" -"On peut souvent fournir, à du code Python qui s'attend à recevoir un type de " -"donnée abstrait spécifique, une classe qui simule les méthodes de ce type. " -"Par exemple, si vous avez une fonction qui formate des données extraites " -"d'un objet fichier, vous pouvez définir une classe avec des méthodes :meth:" -"`read` et :meth:`!readline` qui extrait ses données d'un tampon de chaînes " -"de caractères à la place, et lui passer une instance comme argument." +"À du code Python qui s'attend à recevoir un type de donnée abstrait " +"spécifique, on peut souvent fournir une classe qui simule les méthodes de ce " +"type. Par exemple, à une fonction qui formate des données extraites d'un " +"objet fichier, vous pouvez lui passer comme argument une instance d'une " +"classe qui implémente les méthodes :meth:`read` et :meth:`!readline` en " +"puisant ses données à partir d'un tampon de chaînes de caractères." #: ../Doc/tutorial/classes.rst:742 msgid "" @@ -1225,9 +1226,9 @@ msgid "" "object with the method :meth:`m`, and ``m.__func__`` is the function object " "corresponding to the method." msgstr "" -"Les objets méthodes d'instances ont également des attributs : ``m.im_self`` " -"est l'instance d'objet avec la méthode :meth:`m`, et ``m.im_func`` est " -"l'objet fonction correspondant à la méthode." +"Les objets méthodes d'instances ont aussi des attributs : ``m.__self__`` est " +"l'instance d'objet avec la méthode :meth:`m` et ``m.__func__`` est l'objet " +"fonction correspondant à la méthode." #: ../Doc/tutorial/classes.rst:750 msgid "Exceptions Are Classes Too" @@ -1247,7 +1248,7 @@ msgid "" "There are two new valid (semantic) forms for the :keyword:`raise` statement::" msgstr "" "Il y a deux nouvelles formes (sémantiques) pour l'instruction :keyword:" -"`raise` ::" +"`raise` ::" #: ../Doc/tutorial/classes.rst:761 msgid "" @@ -1265,18 +1266,18 @@ msgid "" "class). For example, the following code will print B, C, D in that order::" msgstr "" "Une classe dans une clause :keyword:`except` est compatible avec une " -"exception si elle est de la même classe ou d'une de ses classes dérivées " -"(mais l'inverse n'est pas vrai --- une clause except spécifiant une classe " -"dérivée n'est pas compatible avec une classe de base.) Par exemple, le code " -"suivant affichera B, C et D dans cet ordre : ::" +"exception si elle est de la même classe ou d'une de ses classes dérivées. " +"Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une classe " +"dérivée n'est pas compatible avec une classe de base. Par exemple, le code " +"suivant affiche B, C et D dans cet ordre : ::" #: ../Doc/tutorial/classes.rst:788 msgid "" "Note that if the except clauses were reversed (with ``except B`` first), it " "would have printed B, B, B --- the first matching except clause is triggered." msgstr "" -"Notez que si les clauses except avaient été inversées (avec ``except B`` en " -"premier), il aurait affiché B, B, B --- la première clause except " +"Notez que si les clauses ``except`` avaient été inversées (avec ``except B`` " +"en premier), il aurait affiché B, B, B --- la première clause ``except`` " "correspondante étant déclenchée." #: ../Doc/tutorial/classes.rst:791 @@ -1299,7 +1300,7 @@ msgid "" "over using a :keyword:`for` statement::" msgstr "" "Vous avez maintenant certainement remarqué que l'on peut itérer sur la " -"plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" +"plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" #: ../Doc/tutorial/classes.rst:815 msgid "" @@ -1313,16 +1314,15 @@ msgid "" "You can call the :meth:`~iterator.__next__` method using the :func:`next` " "built-in function; this example shows how it all works::" msgstr "" -"Ce mode d'accès est simple, concis et pratique. L'utilisation d'itérateurs " -"imprègne et unifie Python. En arrière plan, l'instruction :keyword:`for` " -"appelle la fonction :func:`iter` sur l'objet conteneur. Cette fonction " -"renvoie un itérateur qui définit la méthode :meth:`~iterator.__next__`, " -"laquelle accèdeaux éléments du conteneur un par un. Lorsqu'il n'y a plus " -"d'élément, :meth:`~iterator.__next__` lève une exception :exc:" -"`StopIteration` qui indique à la boucle de l'instruction :keyword:`for` de " -"se terminer. Vous pouvez appeller la méthode :meth:`~iterator.__next__` en " -"utilisant la fonction native :func:`next`. Cet exemple montre comment tout " -"cela fonctionne::" +"Ce style est simple, concis et pratique. L'utilisation d'itérateurs imprègne " +"et unifie Python. En arrière plan, l'instruction :keyword:`for` appelle la " +"fonction :func:`iter` sur l'objet conteneur. Cette fonction renvoie un objet " +"itérateur qui définit la méthode :meth:`~iterator.__next__`, laquelle accède " +"aux éléments du conteneur un par un. Lorsqu'il n'y a plus d'élément, :meth:" +"`~iterator.__next__` lève une exception :exc:`StopIteration` qui indique à " +"la boucle de l'instruction :keyword:`for` de se terminer. Vous pouvez " +"appeler la méthode :meth:`~iterator.__next__` en utilisant la fonction " +"native :func:`next`. Cet exemple montre comment tout cela fonctionne ::" #: ../Doc/tutorial/classes.rst:840 msgid "" @@ -1333,9 +1333,9 @@ msgid "" msgstr "" "Une fois compris les mécanismes de gestion des itérateurs, il est simple " "d'ajouter ce comportement à vos classes. Définissez une méthode :meth:" -"`__iter__`, qui renvoie un objet disposant d'une méthode :meth:`~iterator." -"__next__`. Sila classe définit elle-même la méthode :meth:`__next__`, alors :" -"meth:`__iter__` peut simplement renvoyer ``self`` ::" +"`__iter__` qui renvoie un objet disposant d'une méthode :meth:`~iterator." +"__next__`. Si la classe définit elle-même la méthode :meth:`__next__`, " +"alors :meth:`__iter__` peut simplement renvoyer ``self`` ::" #: ../Doc/tutorial/classes.rst:877 msgid "Generators" @@ -1353,10 +1353,10 @@ msgstr "" "Les :term:`générateur`\\s sont des outils simples et puissants pour créer " "des itérateurs. Ils sont écrits comme des fonctions classiques mais " "utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer des " -"données. À chaque fois que :func:`next` est appelée, le générateur reprend " -"son exécution là où il s'était arrété (en conservant tout son contexte " -"d'exécution). Un exemple montre très bien combien les générateurs sont " -"simples à créer : ::" +"données. À chaque fois qu'il est appelé par :func:`next`, le générateur " +"reprend son exécution là où il s'était arrété (en conservant tout son " +"contexte d'exécution). Un exemple montre très bien combien les générateurs " +"sont simples à créer ::" #: ../Doc/tutorial/classes.rst:900 msgid "" @@ -1367,9 +1367,8 @@ msgid "" msgstr "" "Tout ce qui peut être fait avec des générateurs peut également être fait " "avec des itérateurs basés sur des classes, comme décrit dans le paragraphe " -"précédent. Si qui fait que les générateurs sont si compacts est que les " -"méthodes :meth:`__iter__` et :meth:`~generator.__next__` sont créées " -"automatiquement." +"précédent. Ce qui rend les générateurs si compacts, c'est que les méthodes :" +"meth:`__iter__` et :meth:`~generator.__next__` sont créées automatiquement." #: ../Doc/tutorial/classes.rst:905 msgid "" @@ -1380,7 +1379,7 @@ msgid "" msgstr "" "Une autre fonctionnalité clé est que les variables locales ainsi que le " "contexte d'exécution sont sauvegardés automatiquement entre les appels. Cela " -"simplifie d'autant plus l'écriture de ces fonctions, et rend leur code " +"simplifie d'autant plus l'écriture de ces fonctions et rend leur code " "beaucoup plus lisible qu'avec une approche utilisant des variables " "d'instance telles que ``self.index`` et ``self.data``." @@ -1393,8 +1392,8 @@ msgid "" msgstr "" "En plus de la création automatique de méthodes et de la sauvegarde du " "contexte d'exécution, les générateurs lèvent automatiquement une exception :" -"exc:`StopIteration` lorsqu'ils terminent leur exécution. Combinées, ces " -"fonctionnalités rendent très simple la création d'itérateurs sans plus " +"exc:`StopIteration` lorsqu'ils terminent leur exécution. La combinaison de " +"ces fonctionnalités rend très simple la création d'itérateurs, sans plus " "d'effort que l'écriture d'une fonction classique." #: ../Doc/tutorial/classes.rst:919 @@ -1435,9 +1434,9 @@ msgid "" "abstraction of namespace implementation, and should be restricted to things " "like post-mortem debuggers." msgstr "" -"Sauf pour une chose. Les modules disposent d'un attribut secret en lecture " -"seule appelé :attr:`~object.__dict__`, qui renvoie le dictionnaire utilisé " -"pour implémenter l'espace de noms du module ; le nom :attr:`~object." -"__dict__` est un attribut mais pas un nom global. Évidemment, son " -"utilisation brise l'abstraction de l'implémentation des espaces de noms, et " -"ne doit être restreinte qu'à des choses comme des debogueurs post-mortem." +"Il existe une exception : les modules disposent d'un attribut secret en " +"lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " +"utilisé pour implémenter l'espace de noms du module ; le nom :attr:`~object." +"__dict__` est un attribut mais pas un nom global. Évidemment, si vous " +"l'utilisez, vous brisez l'abstraction de l'implémentation des espaces de " +"noms. Il est donc réservé à des choses comme les debogueurs post-mortem." diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index d5ec291a..7b82dfcd 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -38,7 +38,7 @@ msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" msgstr "" -"L'instruction :keyword:`if` est sans doute la plus connue. Par exemple : ::" +"L'instruction :keyword:`if` est sans doute la plus connue. Par exemple ::" #: ../Doc/tutorial/controlflow.rst:33 msgid "" @@ -48,7 +48,7 @@ msgid "" "`elif` ... :keyword:`elif` ... sequence is a substitute for the ``switch`` " "or ``case`` statements found in other languages." msgstr "" -"Il peut y avoir un nombre quelconque de parties :keyword:`elif`, et la " +"Il peut y avoir un nombre quelconque de parties :keyword:`elif` et la " "partie :keyword:`else` est facultative. Le mot clé ':keyword:`elif`' est un " "raccourci pour 'else if', mais permet de gagner un niveau d'indentation. Une " "séquence :keyword:`if` ... :keyword:`elif` ... :keyword:`elif` ... est par " @@ -76,7 +76,7 @@ msgstr "" "de fin (comme en C), l'instruction :keyword:`for` en Python itère sur les " "éléments d'une séquence (qui peut être une liste, une chaîne de " "caractères...), dans l'ordre dans lequel ils apparaissent dans la séquence. " -"Par exemple (sans jeu de mots) :" +"Par exemple ::" #: ../Doc/tutorial/controlflow.rst:69 msgid "" @@ -89,7 +89,7 @@ msgstr "" "l'intérieur de la boucle (par exemple pour dupliquer ou supprimer un " "élément), il est plus que recommandé de commencer par en faire une copie, " "celle-ci n'étant pas implicite. La notation \"par tranches\" rend cette " -"opération particulièrement simple : ::" +"opération particulièrement simple ::" #: ../Doc/tutorial/controlflow.rst:85 msgid "The :func:`range` Function" @@ -101,7 +101,7 @@ msgid "" "func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" "Si vous devez itérer sur une suite de nombres, la fonction intégrée :func:" -"`range` est faite pour cela. Elle génère des suites arithmétiques : :" +"`range` est faite pour cela. Elle génère des suites arithmétiques ::" #: ../Doc/tutorial/controlflow.rst:99 msgid "" @@ -114,7 +114,7 @@ msgstr "" "générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " "vont de 0 à 9. Il est possible de spécifier une valeur de début et/ou une " "valeur d'incrément différente(s) (y compris négative pour cette dernière, " -"que l'on appelle également parfois le 'pas') ::" +"que l'on appelle également parfois le 'pas') ::" #: ../Doc/tutorial/controlflow.rst:113 msgid "" @@ -122,7 +122,7 @@ msgid "" "and :func:`len` as follows::" msgstr "" "Pour itérer sur les indices d'une séquence, on peut combiner les fonctions :" -"func:`range` et :func:`len` ::" +"func:`range` et :func:`len` ::" #: ../Doc/tutorial/controlflow.rst:126 msgid "" @@ -134,7 +134,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:129 msgid "A strange thing happens if you just print a range::" -msgstr "Une chose étrange se produit lorsqu'on affiche un range : :" +msgstr "Une chose étrange se produit lorsqu'on affiche un range ::" #: ../Doc/tutorial/controlflow.rst:134 msgid "" @@ -143,9 +143,10 @@ msgid "" "items of the desired sequence when you iterate over it, but it doesn't " "really make the list, thus saving space." msgstr "" -"Les objets données par :func:`range` se comportent presque comme des listes, " -"mais n'en sont pas. Ce sont des objets qui génèrent les éléments de la " -"séquence au fur et à mesure de leur itération, économisant ainsi de l'espace." +"L'objet renvoyé par :func:`range` se comporte presque comme une liste, mais " +"ce n'en est pas une. Cet objet génère les éléments de la séquence au fur et " +"à mesure de l'itération, sans réellement produire la liste en tant que " +"telle, économisant ainsi de l'espace." #: ../Doc/tutorial/controlflow.rst:139 msgid "" @@ -157,17 +158,17 @@ msgid "" msgstr "" "On appelle de tels objets des *iterables*, c'est à dire des objets qui " "conviennent à des *iterateurs*, des fonctions ou constructions qui " -"s'attendent à quelque-chose duquel ils peuvent tirer des éléments, " -"successives successivement, jusqu'à épuisement. On a vu que l'instruction :" -"keyword:`for` est un iterateur. La fonction :func:`list` en est un autre, " -"qui créé des listes à partir d'iterables : ::" +"s'attendent à quelque chose duquel ils peuvent tirer des éléments, " +"successivement, jusqu'à épuisement. On a vu que l'instruction :keyword:`for` " +"est un itérateur. La fonction :func:`list` en est un autre, qui crée des " +"listes à partir d'itérables ::" #: ../Doc/tutorial/controlflow.rst:149 msgid "" "Later we will see more functions that return iterables and take iterables as " "argument." msgstr "" -"Plus loin nous verrons d'autre fonctions qui donnent des iterables ou en " +"Plus loin nous voyons d'autres fonctions qui donnent des itérables ou en " "prennent en paramètre." #: ../Doc/tutorial/controlflow.rst:155 @@ -175,7 +176,7 @@ msgid "" ":keyword:`break` and :keyword:`continue` Statements, and :keyword:`else` " "Clauses on Loops" msgstr "" -"Les instructions :keyword:`break` et :keyword:`continue`, et les clauses :" +"Les instructions :keyword:`break`, :keyword:`continue` et les clauses :" "keyword:`else` au sein des boucles" #: ../Doc/tutorial/controlflow.rst:157 @@ -199,14 +200,14 @@ msgstr "" "été traités (dans le cas d'un :keyword:`for`) ou que la condition devient " "fausse (dans le cas d'un :keyword:`while`), mais pas lorsque la boucle est " "interrompue par une instruction :keyword:`break`. L'exemple suivant, qui " -"effectue une recherche de nombres premiers, en est une démonstration : ::" +"effectue une recherche de nombres premiers, en est une démonstration ::" #: ../Doc/tutorial/controlflow.rst:184 msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the :keyword:`for` loop, **not** the :keyword:`if` statement.)" msgstr "" -"(Oui, ce code est correct. Regardez attentivement : l'instruction ``else`` " +"(Oui, ce code est correct. Regardez attentivement : l'instruction ``else`` " "est rattachée à la boucle :keyword:`for`, et **non** à l'instruction :" "keyword:`if`.)" @@ -285,9 +286,9 @@ msgid "" "next line, and must be indented." msgstr "" "Le mot-clé :keyword:`def` introduit une *définition* de fonction. Il doit " -"être suivi du nom de la fonction et d'une liste entre parenthèses de ses " +"être suivi du nom de la fonction et d'une liste, entre parenthèses, de ses " "paramètres. L'instruction qui constitue le corps de la fonction débute à la " -"ligne suivante, et doit être indentée." +"ligne suivante et doit être indentée." #: ../Doc/tutorial/controlflow.rst:267 msgid "" @@ -301,12 +302,12 @@ msgid "" msgstr "" "La première instruction d'une fonction peut, de façon facultative, être une " "chaîne de caractères littérale ; cette chaîne de caractères sera alors la " -"chaîne de documentation de la fonction, ou :dfn:`docstring` (consultez la " -"section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils qui " -"utilisent ces chaînes de documentation pour générer automatiquement une " +"chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " +"la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " +"qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " "naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " -"bonne habitude que de documenter le code que vous écrivez !" +"bonne pratique que de documenter le code que vous écrivez !" #: ../Doc/tutorial/controlflow.rst:274 msgid "" @@ -322,13 +323,13 @@ msgstr "" "*L'exécution* d'une fonction introduit une nouvelle table de symboles " "utilisée par les variables locales de la fonction. Plus précisément, toutes " "les affectations de variables effectuées au sein d'une fonction stockent la " -"valeur dans la table de symboles locale ; tandis que les références de " +"valeur dans la table de symboles locale ; en revanche, les références de " "variables sont recherchées dans la table de symboles locale, puis dans la " "table de symboles locale des fonctions englobantes, puis dans la table de " -"symboles globale et finallement dans la table de noms des primitives. Par " -"conséquent, il est impossible d'affecter une valeur à une variable globale " -"(sauf en utilisant une instruction :keyword:`global`), bien qu'elles " -"puissent être référencées." +"symboles globale et finalement dans la table de noms des primitives. Par " +"conséquent, bien qu'elles puissent être référencées, il est impossible " +"d'affecter une valeur à une variable globale (sauf en utilisant une " +"instruction :keyword:`global`)." #: ../Doc/tutorial/controlflow.rst:283 msgid "" @@ -339,11 +340,11 @@ msgid "" "another function, a new local symbol table is created for that call." msgstr "" "Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " -"table de symboles locale de la fonction appelée lorsqu'elle est appelée ; " -"par conséquent, les passages de paramètres se font *par valeur*, la *valeur* " -"étant toujours une *référence* à un objet, et non la valeur de l'objet lui-" -"même. [#]_ Lorsqu'une fonction appelle une autre fonction, une nouvelle " -"table de symboles locale est créée pour cet appel." +"table de symboles locale de la fonction appelée au moment où elle est " +"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " +"la *valeur* étant toujours une *référence* à un objet et non la valeur de " +"l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " +"nouvelle table de symboles locale est créée pour cet appel." #: ../Doc/tutorial/controlflow.rst:289 msgid "" @@ -374,8 +375,9 @@ msgstr "" "fait, même les fonctions sans instruction :keyword:`return` renvoient une " "valeur, quoique ennuyeuse. Cette valeur est appelée ``None`` (c'est le nom " "d'une primitive). Écrire la valeur ``None`` est normalement supprimé par " -"l'interpréteur lorsqu'il s'agit de la seule value écrite. Vous pouvez le " -"voir si vous y tenez vraiment en utilisant :func:`print` ::" +"l'interpréteur lorsqu'il s'agit de la seule valeur qui doit être écrite. " +"Vous pouvez le constater, si vous y tenez vraiment, en utilisant :func:" +"`print` ::" #: ../Doc/tutorial/controlflow.rst:312 msgid "" @@ -383,7 +385,7 @@ msgid "" "Fibonacci series, instead of printing it::" msgstr "" "Il est facile d'écrire une fonction qui renvoie une liste de la série de " -"Fibonacci au lieu de l'imprimer : ::" +"Fibonacci au lieu de l'afficher : ::" #: ../Doc/tutorial/controlflow.rst:328 msgid "This example, as usual, demonstrates some new Python features:" @@ -415,10 +417,10 @@ msgid "" "example it is equivalent to ``result = result + [a]``, but more efficient." msgstr "" "L'instruction ``result.append(a)`` appelle une *méthode* de l'objet " -"``result`` qui est une liste. Une méthode est une fonction qui 'appartient' " -"à un objet et qui est nommée ``obj.methodname``, où ``obj`` est un objet (il " -"peut également s'agir d'une expression), et ``methodname`` est le nom d'une " -"méthode définie par le type de l'objet. Différents types définissent " +"``result`` qui est une liste. Une méthode est une fonction qui \"appartient" +"\" à un objet et qui est nommée ``obj.methodname``, où ``obj`` est un objet " +"(il peut également s'agir d'une expression) et ``methodname`` est le nom " +"d'une méthode que le type de l'objet définit. Différents types définissent " "différentes méthodes. Des méthodes de différents types peuvent porter le " "même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " "types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" @@ -461,24 +463,24 @@ msgstr "Cette fonction peut être appelée de plusieurs façons :" msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" -"en ne fournissant que les arguments obligatoires : ``ask_ok('Voulez-vous " -"vraiment quitter ?')``" +"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " +"want to quit?')``" #: ../Doc/tutorial/controlflow.rst:380 msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"en fournissant une partie des arguments facultatifs : ``ask_ok('OK pour " -"écraser le fichier ?', 2)``" +"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " +"overwrite the file?', 2)``" #: ../Doc/tutorial/controlflow.rst:382 msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" msgstr "" -"en fournissant tous les arguments : ``ask_ok('OK pour écraser le fichier ?', " -"2, 'Allez, seulement oui ou non !')``" +"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " +"'Come on, only yes or no!')``" #: ../Doc/tutorial/controlflow.rst:385 msgid "" @@ -498,7 +500,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:399 msgid "will print ``5``." -msgstr "imprimera ``5``." +msgstr "Affiche ``5``." #: ../Doc/tutorial/controlflow.rst:401 msgid "" @@ -507,15 +509,15 @@ msgid "" "dictionary, or instances of most classes. For example, the following " "function accumulates the arguments passed to it on subsequent calls::" msgstr "" -"**Avertissement important :** La valeur par défaut n'est évaluée qu'une " +"**Avertissement important :** la valeur par défaut n'est évaluée qu'une " "seule fois. Ceci fait une différence lorsque cette valeur par défaut est un " -"objet mutable tel qu'une liste, un dictionnaire ou des instances de la " +"objet muable tel qu'une liste, un dictionnaire ou des instances de la " "plupart des classes. Par exemple, la fonction suivante accumule les " "arguments qui lui sont passés au fil des appels successifs : ::" #: ../Doc/tutorial/controlflow.rst:414 msgid "This will print ::" -msgstr "Ceci imprimera : ::" +msgstr "Ceci affiche : ::" #: ../Doc/tutorial/controlflow.rst:420 msgid "" @@ -536,7 +538,7 @@ msgid "" "function::" msgstr "" "Les fonctions peuvent également être appelées en utilisant des :term:" -"`arguments nommés ` sous la form ``kwarg=value``. Par " +"`arguments nommés ` sous la forme ``kwarg=value``. Par " "exemple, la fonction suivante : ::" #: ../Doc/tutorial/controlflow.rst:444 @@ -589,7 +591,7 @@ msgstr "" "dans la section suivante) qui lui reçoit un tuple contenant les arguments " "positionnés au-delà de la liste des paramètres formels (``*name`` doit être " "présent avant ``**name``). Par exemple, si vous définissez une fonction " -"comme ceci :" +"comme ceci ::" #: ../Doc/tutorial/controlflow.rst:496 msgid "It could be called like this::" @@ -597,7 +599,7 @@ msgstr "Elle pourrait être appelée comme ceci : ::" #: ../Doc/tutorial/controlflow.rst:504 msgid "and of course it would print:" -msgstr "et bien sûr, il afficherait :" +msgstr "et, bien sûr, elle affiche :" #: ../Doc/tutorial/controlflow.rst:517 msgid "" @@ -606,9 +608,9 @@ msgid "" "contents; if this is not done, the order in which the arguments are printed " "is undefined." msgstr "" -"Notez que la liste des arguments nommés est créée en triant les clés du " -"dictionnaire extraites par la méthode ``keys()`` avant de les imprimer. Si " -"celà n'est pas fait, l'ordre dans lequel les arguments sont imprimée n'est " +"Notez que la liste des arguments nommés est créée en classant les clés du " +"dictionnaire extraites par la méthode ``keys()`` avant de les afficher. Si " +"celà n'est pas fait, l'ordre dans lequel les arguments sont affichés n'est " "pas défini." #: ../Doc/tutorial/controlflow.rst:524 @@ -667,7 +669,7 @@ msgid "" "``**``\\ -operator::" msgstr "" "De la même façon, les dictionnaires peuvent fournir des arguments nommés en " -"utilisant l'opérateur ``**`` ::" +"utilisant l'opérateur ``**`` ::" #: ../Doc/tutorial/controlflow.rst:589 msgid "Lambda Expressions" @@ -683,12 +685,12 @@ msgid "" "definitions, lambda functions can reference variables from the containing " "scope::" msgstr "" -"Avec le mot-clé :keyword:`lambda`, on peut créer de petites fonctions " -"anonymes. Voilàune fonction qui renvoie la somme de ses deux arguments : " -"``lambda a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où " -"un objet fonction est attendu. Elles sont syntaxiquement restreintes à une " -"seule expression. Sémantiquement, elles ne sont qu'un sucre syntaxique pour " -"une définition de fonction normale. Comme les fonctions imbriquées, les " +"Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " +"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " +"a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " +"fonction est attendu. Elles sont syntaxiquement restreintes à une seule " +"expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " +"définition de fonction normale. Comme les fonctions imbriquées, les " "fonctions lambda peuvent référencer des variables de la portée " "englobante : ::" @@ -698,8 +700,8 @@ msgid "" "use is to pass a small function as an argument::" msgstr "" "L'exemple précédent utilise une fonction anonyme pour renvoyer une fonction. " -"Un aute usage typique est de donner une fonction minimaliste directement en " -"temps que paramètre::" +"Une autre utilisation classique est de donner une fonction minimaliste " +"directement en temps que paramètre ::" #: ../Doc/tutorial/controlflow.rst:620 msgid "Documentation Strings" @@ -721,8 +723,8 @@ msgid "" "to be a verb describing a function's operation). This line should begin " "with a capital letter and end with a period." msgstr "" -"La première ligne devrait toujours être courte, un résumé concis de " -"l'utilité de l'objet. Pour être bref, nul besoin de rappeler le nom de " +"La première ligne devrait toujours être courte et résumer de manière concise " +"l'utilité de l'objet. Afin d'être bref, nul besoin de rappeler le nom de " "l'objet ou son type, qui sont accessibles par d'autres moyens (sauf si le " "nom est un verbe qui décrit une opération). Cette ligne devrait commencer " "avec une majuscule et se terminer par un point." @@ -734,7 +736,7 @@ msgid "" "The following lines should be one or more paragraphs describing the object's " "calling conventions, its side effects, etc." msgstr "" -"Si il a d'autres lignes dans la chaîne de documentation, la seconde ligne " +"S'il y a d'autres lignes dans la chaîne de documentation, la deuxième ligne " "devrait être vide, pour la séparer visuellement du reste de la description. " "Les autres lignes peuvent alors constituer un ou plusieurs paragraphes " "décrivant le mode d'utilisation de l'objet, ses effets de bord, etc." @@ -763,8 +765,8 @@ msgstr "" "et dont l'indentation n'est donc pas visible). Les espaces \"correspondant\" " "à cette profondeur d'indentation sont alors supprimés du début de chacune " "des lignes de la chaîne. Aucune ligne ne devrait présenter un niveau " -"d'indentation inférieur mais si cela arrive, tous les espaces situés en " -"début de ligne doivent être supprimés. L'équivalent des espaces doit être " +"d'indentation inférieur mais si cela arrive, toutes les espaces situés en " +"début de ligne doivent être supprimées. L'équivalent des espaces doit être " "testé après expansion des tabulations (normalement remplacés par 4 espaces)." #: ../Doc/tutorial/controlflow.rst:653 @@ -802,12 +804,12 @@ msgstr "" "du paramètre suivi d'une expression donnant la valeur de l'annotation. Les " "annotations de retour sont définies par ``->`` suivi d'une expression, entre " "la liste des paramètres et les deux points de fin de l'instruction :keyword:" -"`def`. L'exemple suivant a un paramètre positionnel, un paramètre nommé, et " +"`def`. L'exemple suivant a un paramètre positionnel, un paramètre nommé et " "une valeur de retour annotée : ::" #: ../Doc/tutorial/controlflow.rst:704 msgid "Intermezzo: Coding Style" -msgstr "Un style de codage : Intermezzo" +msgstr "Aparté : le style de codage" #: ../Doc/tutorial/controlflow.rst:709 msgid "" @@ -821,7 +823,7 @@ msgstr "" "complexes, il est temps de parler du *style de codage*. La plupart des " "langages peuvent être écrits (ou plutôt *formatés*) selon différents " "styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " -"votre code plus facile aux autres est toujours une bonne idée, et adopter un " +"votre code plus facile aux autres est toujours une bonne idée et adopter un " "bon style de codage peut énormément vous y aider." #: ../Doc/tutorial/controlflow.rst:715 @@ -831,14 +833,14 @@ msgid "" "Python developer should read it at some point; here are the most important " "points extracted for you:" msgstr "" -"En Python, la :pep:`8` a émergé comme étant un guide auquel la plupart des " -"projets adhèrent ; elle met en avant un style de codage très lisible et " -"agréable à l'oeil. Chaque développeur Python devrait donc la lire et s'en " -"inspirer autant que possible ; voici ses principaux points notables :" +"En Python, la plupart des projets adhèrent au style défini dans la :pep:" +"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " +"Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " +"que possible ; voici ses principaux points notables :" #: ../Doc/tutorial/controlflow.rst:720 msgid "Use 4-space indentation, and no tabs." -msgstr "Utilisez des indentations de 4 espaces, et pas de tabulation." +msgstr "Utilisez des indentations de 4 espaces et pas de tabulation." #: ../Doc/tutorial/controlflow.rst:722 msgid "" @@ -848,22 +850,23 @@ msgid "" msgstr "" "4 espaces constituent un bon compromis entre une indentation courte (qui " "permet une profondeur d'imbrication plus importante) et une longue (qui rend " -"le code plus facile à lire). Les tabulations introduisent de la confusion, " -"et doivent être proscrites autant que possible." +"le code plus facile à lire). Les tabulations introduisent de la confusion et " +"doivent être proscrites autant que possible." #: ../Doc/tutorial/controlflow.rst:726 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "" -"Faites des retours à la ligne, de telle sorte qu'elles n'excèdent pas 79 " -"caractères." +"Faites en sorte que les lignes ne dépassent pas 79 caractères, au besoin en " +"insérant des retours à la ligne." #: ../Doc/tutorial/controlflow.rst:728 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." msgstr "" -"Ceci aide les utilisateurs ne disposant que de petits écrans, et permet sur " -"de plus grands de disposer plusieurs fichiers côte à côte sans difficulté." +"Vous facilitez ainsi la lecture pour les utilisateurs qui n'ont qu'un petit " +"écran et, pour les autres, cela leur permet de visualiser plusieurs fichiers " +"côte à côte." #: ../Doc/tutorial/controlflow.rst:731 msgid "" @@ -880,7 +883,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:736 msgid "Use docstrings." -msgstr "Utilisez les chaînes de documentation" +msgstr "Utilisez les chaînes de documentation." #: ../Doc/tutorial/controlflow.rst:738 msgid "" @@ -888,7 +891,7 @@ msgid "" "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" "Utilisez des espaces autour des opérateurs et après les virgules, mais pas " -"directement à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." +"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." #: ../Doc/tutorial/controlflow.rst:741 msgid "" @@ -909,9 +912,9 @@ msgid "" "environments. Python's default, UTF-8, or even plain ASCII work best in any " "case." msgstr "" -"N'utilisez pas d'encodages exotiques dès lors que votre code est sensé être " +"N'utilisez pas d'encodage exotique dès lors que votre code est censé être " "utilisé dans des environnements internationaux. Par défaut, Python travaille " -"en UTF-8, ou sinon du simple ASCII fonctionne dans la plupart des cas." +"en UTF-8. Pour couvrir tous les cas, préférez le simple ASCII." #: ../Doc/tutorial/controlflow.rst:750 msgid "" @@ -920,8 +923,8 @@ msgid "" "the code." msgstr "" "De la même manière, n'utilisez que des caractères ASCII pour vos noms de " -"variables si vous soupçonnez qu'un personne parlant une autre langue lira ou " -"devra modifier votre code." +"variables s'il est envisageable qu'une personne parlant une autre langue " +"lise ou doive modifier votre code." #: ../Doc/tutorial/controlflow.rst:756 msgid "Footnotes" @@ -933,7 +936,7 @@ msgid "" "a mutable object is passed, the caller will see any changes the callee makes " "to it (items inserted into a list)." msgstr "" -"En fait, *appels par référence d'objets* serait sans doute une desciption " -"plus juste, dans la mesure où si un objet mutable est passé en argument, " +"En fait, *appels par référence d'objets* serait sans doute une description " +"plus juste dans la mesure où, si un objet muable est passé en argument, " "l'appelant verra toutes les modifications qui lui auront été apportées par " "l'appelé (insertion d'éléments dans une liste...)." diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 8fc788b7..0f23e4a6 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -25,7 +25,7 @@ msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." msgstr "" -"Ce chapitre reprend plus en détail quelques point déjà décrits précédemment, " +"Ce chapitre reprend plus en détail quelques points déjà décrits précédemment " "et introduit également de nouvelles notions." #: ../Doc/tutorial/datastructures.rst:13 @@ -37,14 +37,14 @@ msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" msgstr "" -"Le type liste dispose de méthodes supplémentaires. Voici la liste complète " -"des méthodes des objets de type liste :" +"Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " +"des objets de type liste :" #: ../Doc/tutorial/datastructures.rst:22 msgid "" "Add an item to the end of the list. Equivalent to ``a[len(a):] = [x]``." msgstr "" -"Ajoute un élément à la fin de la liste. Equivalent à ``a[len(a):] = [x]``." +"Ajoute un élément à la fin de la liste. Équivalent à ``a[len(a):] = [x]``." #: ../Doc/tutorial/datastructures.rst:28 msgid "" @@ -62,7 +62,7 @@ msgid "" msgstr "" "Insère un élément à la position indiquée. Le premier argument est la " "position de l'élément courant avant lequel l'insertion doit s'effectuer, " -"donc ``a.insert(0, x)`` insère l'élément en tête de la liste, et ``a." +"donc ``a.insert(0, x)`` insère l'élément en tête de la liste et ``a." "insert(len(a), x)`` est équivalent à ``a.append(x)``." #: ../Doc/tutorial/datastructures.rst:43 @@ -70,8 +70,8 @@ msgid "" "Remove the first item from the list whose value is *x*. It is an error if " "there is no such item." msgstr "" -"Supprime de la liste le premier élément dont la valeur est *x*. Une " -"exception est levée s'il existe aucun élément avec cette valeur." +"Supprime de la liste le premier élément dont la valeur est égale à *x*. Une " +"exception est levée s'il n'existe aucun élément avec cette valeur." #: ../Doc/tutorial/datastructures.rst:50 msgid "" @@ -82,17 +82,16 @@ msgid "" "that position. You will see this notation frequently in the Python Library " "Reference.)" msgstr "" -"Enlève de la liste l'élément situé à la position indiquée, et le renvoie en " -"valeur de retour. Si aucune position n'est indiqué, ``a.pop()`` enlève et " +"Enlève de la liste l'élément situé à la position indiquée et le renvoie en " +"valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " "renvoie le dernier élément de la liste (les crochets autour du *i* dans la " -"signature de la méthode indiquent bien que ce paramètre est facultatif, et " -"non que vous devez placer des crochets dans votre code ! Vous retrouverez " -"cette notation fréquemment dans le Guide de Référence de la Bibliothèque " -"Python)." +"signature de la méthode indiquent que ce paramètre est facultatif et non que " +"vous devez placer des crochets dans votre code ! Vous retrouverez cette " +"notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." #: ../Doc/tutorial/datastructures.rst:60 msgid "Remove all items from the list. Equivalent to ``del a[:]``." -msgstr "Supprime tous les éléments de la liste, équivalent à ``del a[:]``." +msgstr "Supprime tous les éléments de la liste. Équivalent à ``del a[:]``." #: ../Doc/tutorial/datastructures.rst:66 msgid "" @@ -111,8 +110,8 @@ msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" -"Trie les éléments sur place, (les arguments peuvent personaliser le tri, " -"voir :func:`sorted` pour leur explication)." +"Classe les éléments sur place (les arguments peuvent personnaliser le " +"classement, voir :func:`sorted` pour leur explication)." #: ../Doc/tutorial/datastructures.rst:86 msgid "Reverse the elements of the list in place." @@ -133,14 +132,14 @@ msgid "" "default ``None``. [1]_ This is a design principle for all mutable data " "structures in Python." msgstr "" -"Vous avez probablement remarqué que les méthodes tel que ``insert``, " -"``remove`` ou ``sort``, qui ne font que modifier la liste, ne renvoient pas " -"de valeur mais ``None``. [1]_ C'est un principe respecté par toutes les " -"structures de données variables en Python." +"Vous avez probablement remarqué que les méthodes telles que ``insert``, " +"``remove`` ou ``sort``, qui ne font que modifier la liste, n'affichent pas " +"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " +"respecté par toutes les structures de données variables en Python." #: ../Doc/tutorial/datastructures.rst:129 msgid "Using Lists as Stacks" -msgstr "Utiliser les listes comme des piles" +msgstr "Utilisation des listes comme des piles" #: ../Doc/tutorial/datastructures.rst:134 msgid "" @@ -152,14 +151,14 @@ msgid "" msgstr "" "Les méthodes des listes rendent très facile leur utilisation comme des " "piles, où le dernier élément ajouté est le premier récupéré (\"dernier " -"entré, premier sorti\", ou LIFO pour \"last-in, first-out\"). Pour ajouter " -"un élément sur la pile, utilisez la méthode :meth:`append`. Pour récupérer " -"l'objet au sommet de la pile, utilisez la méthode :meth:`pop`, sans " +"entré, premier sorti\" ou LIFO pour \"last-in, first-out\" en anglais). Pour " +"ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " +"récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " "indicateur de position. Par exemple : ::" #: ../Doc/tutorial/datastructures.rst:159 msgid "Using Lists as Queues" -msgstr "Utiliser les listes comme des files" +msgstr "Utilisation des listes comme des files" #: ../Doc/tutorial/datastructures.rst:163 msgid "" @@ -170,21 +169,21 @@ msgid "" "(because all of the other elements have to be shifted by one)." msgstr "" "Il est également possible d'utiliser une liste comme une file, où le premier " -"élément ajouté est le premier récupéré (\"premier entré, premier sorti\", ou " -"FIFO pour \"first-in, first-out\") ; touefois, les listes ne sont pas très " -"efficaces pour ce type de traitement. Alors que les ajouts et suppressions " -"en fin de liste sont rapides, les opérations d'insertions ou de retraits en " -"début de liste sont lentes (car tous les autres éléments doivent être " -"décalés d'une position)." +"élément ajouté est le premier récupéré (\"premier entré, premier sorti\" ou " +"FIFO pour \"first-in, first-out\") ; toutefois, les listes ne sont pas très " +"efficaces pour réaliser ce type de traitement. Alors que les ajouts et " +"suppressions en fin de liste sont rapides, les opérations d'insertions ou de " +"retraits en début de liste sont lentes (car tous les autres éléments doivent " +"être décalés d'une position)." #: ../Doc/tutorial/datastructures.rst:169 msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" msgstr "" -"Pour implémenter une file, utilisez donc la classe :class:`collections." -"deque` qui a été conçue pour fournir des opérations d'ajouts et de retraits " -"rapides aux deux extrémités. Par exemple : ::" +"Pour implémenter une file, utilisez la classe :class:`collections.deque` qui " +"a été conçue pour réaliser rapidement les opérations d'ajouts et de retraits " +"aux deux extrémités. Par exemple : ::" #: ../Doc/tutorial/datastructures.rst:187 msgid "List Comprehensions" @@ -198,9 +197,9 @@ msgid "" "create a subsequence of those elements that satisfy a certain condition." msgstr "" "Les compréhensions de listes fournissent un moyen de construire des listes " -"de manière très concice. Une application classique est la construction de " +"de manière très concise. Une application classique est la construction de " "nouvelles listes où chaque élément est le résultat d'une opération appliquée " -"à chaque élément d'une autre séquence, ou de créer une sous-séquence des " +"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " "éléments satisfaisant une condition spécifique." #: ../Doc/tutorial/datastructures.rst:194 @@ -214,13 +213,13 @@ msgid "" "exists after the loop completes. We can calculate the list of squares " "without any side effects using::" msgstr "" -"Notez que cela créé (ou écrase) une variable nommée ``x`` qui existe " +"Notez que cela crée (ou remplace) une variable nommée ``x`` qui existe " "toujours après l'exécution de la boucle. On peut calculer une liste de " -"carrés sans effet de bord, avec : ::" +"carrés sans effet de bord avec : ::" #: ../Doc/tutorial/datastructures.rst:209 msgid "or, equivalently::" -msgstr "ou : ::" +msgstr "ou, de manière équivalente : ::" #: ../Doc/tutorial/datastructures.rst:213 msgid "which is more concise and readable." @@ -235,16 +234,16 @@ msgid "" "which follow it. For example, this listcomp combines the elements of two " "lists if they are not equal::" msgstr "" -"Une compréhension de liste consiste en crochets contenant une expression " -"suivie par une clause :keyword:`for`, puis par zéro ou plus clauses :keyword:" -"`for` ou :keyword:`if`. Le résultat sera une nouvelle liste résultat de " +"Une compréhension de liste consiste à placer entre crochets une expression " +"suivie par une clause :keyword:`for` puis par zéro ou plus clauses :keyword:" +"`for` ou :keyword:`if`. Le résultat est une nouvelle liste résultat de " "l'évaluation de l'expression dans le contexte des clauses :keyword:`for` et :" "keyword:`if` qui la suivent. Par exemple, cette compréhension de liste " "combine les éléments de deux listes s'ils ne sont pas égaux : ::" #: ../Doc/tutorial/datastructures.rst:225 msgid "and it's equivalent to::" -msgstr "et c'est équivaent à : ::" +msgstr "et c'est équivalent à : ::" #: ../Doc/tutorial/datastructures.rst:236 msgid "" @@ -259,7 +258,7 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"Si l'expression est un tuple (c'est à dire ``(x, y)`` dans cet exemple), " +"Si l'expression est un tuple (c'est-à-dire ``(x, y)`` dans cet exemple), " "elle doit être entourée par des parenthèses : ::" #: ../Doc/tutorial/datastructures.rst:270 @@ -291,8 +290,7 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:291 msgid "The following list comprehension will transpose rows and columns::" -msgstr "" -"Cette compréhension de liste va transposer les lignes et les colonnes : ::" +msgstr "Cette compréhension de liste transpose les lignes et les colonnes : ::" #: ../Doc/tutorial/datastructures.rst:296 msgid "" @@ -300,13 +298,13 @@ msgid "" "context of the :keyword:`for` that follows it, so this example is equivalent " "to::" msgstr "" -"Comme on l'a vu dans la section précédente, la compréhension de liste " +"Comme nous l'avons vu dans la section précédente, la compréhension de liste " "imbriquée est évaluée dans le contexte de l'instruction :keyword:`for` qui " "la suit, donc cet exemple est équivalent à : ::" #: ../Doc/tutorial/datastructures.rst:307 msgid "which, in turn, is the same as::" -msgstr "lequel à son tour est équivalent à : ::" +msgstr "Lequel à son tour est équivalent à : ::" #: ../Doc/tutorial/datastructures.rst:320 msgid "" @@ -321,7 +319,8 @@ msgstr "" msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" -"Voyez :ref:`tut-unpacking-arguments` pour plus de détails sur cette ligne." +"Voyez :ref:`tut-unpacking-arguments` pour plus de détails sur l'astérisque " +"de cette ligne." #: ../Doc/tutorial/datastructures.rst:331 msgid "The :keyword:`del` statement" @@ -339,7 +338,7 @@ msgstr "" "au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " "méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:" "`del` peut également être utilisée pour supprimer des tranches d'une liste " -"ou la vider complètement (ce que nous avions fait auparavent en affectant " +"ou la vider complètement (ce que nous avions fait auparavant en affectant " "une liste vide à la tranche). Par exemple : ::" #: ../Doc/tutorial/datastructures.rst:350 @@ -391,13 +390,13 @@ msgid "" "the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" -"Comme vous pouvez le voir, à l'affichage les tuples sont toujours encadrés " -"par des parenthèses, de façon à ce que des tuples imbriqués soient " -"interprétés correctement ; ils peuvent être entrés avec ou sans parenthèses, " -"même si celles-ci sont souvent nécessaires (notamment lorsqu'un tuple fait " -"partie d'une expression plus longue). Il n'est pas possible d'affecter de " -"valeur à un élément d'un tuple ; par contre, il est possible de créer des " -"tuples contenant des objets mutables, comme des listes." +"Comme vous pouvez le voir, les tuples sont toujours affichés entre " +"parenthèses, de façon à ce que des tuples imbriqués soient interprétés " +"correctement ; ils peuvent être entrés avec ou sans parenthèses, même si " +"celles-ci sont souvent nécessaires (notamment lorsqu'un tuple fait partie " +"d'une expression plus longue). Il n'est pas possible d'affecter de valeur à " +"un élément d'un tuple ; par contre, il est possible de créer des tuples " +"contenant des objets muables, comme des listes." #: ../Doc/tutorial/datastructures.rst:398 msgid "" @@ -414,7 +413,7 @@ msgstr "" "sont :term:`immuable`\\s et contiennent souvent des séquences hétérogènes " "d'éléments qui sont accédés par \"déballage\" (voir plus loin) ou indexation " "(ou même par attributs dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`mutables `, et " +"namedtuple>`). Les listes sont souvent :term:`muable ` et " "contiennent des éléments homogènes qui sont accédés par itération sur la " "liste." @@ -428,7 +427,7 @@ msgid "" msgstr "" "Un problème spécifique est la construction de tuples ne contenant aucun ou " "un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " -"accomoder. Les tuples vides sont construits par une paire de parenthèses " +"accommoder. Les tuples vides sont construits par une paire de parenthèses " "vides ; un tuple avec un seul élément est construit en faisant suivre la " "valeur par une virgule (il n'est pas suffisant de placer cette valeur entre " "parenthèses). Pas très joli, mais efficace. Par exemple : ::" @@ -452,15 +451,15 @@ msgid "" "of tuple packing and sequence unpacking." msgstr "" "Ceci est appelé, de façon plus ou moins appropriée, un *déballage de " -"séquence* et fonctionne pour toute séquence placée à droite de l'expression. " -"Ce déballage requiert autant de variables dans la partie gauche qu'il y a " -"d'éléments dans la séquence. Notez également que cette affectation multiple " -"est juste une combinaison entre un emballage de tuple et un déballage de " -"séquence." +"séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " +"séquence placée à droite de l'expression. Ce déballage requiert autant de " +"variables dans la partie gauche qu'il y a d'éléments dans la séquence. Notez " +"également que cette affectation multiple est juste une combinaison entre un " +"emballage de tuple et un déballage de séquence." #: ../Doc/tutorial/datastructures.rst:437 msgid "Sets" -msgstr "Les ensembles" +msgstr "Ensembles" #: ../Doc/tutorial/datastructures.rst:439 msgid "" @@ -472,9 +471,10 @@ msgid "" msgstr "" "Python fournit également un type de donnée pour les *ensembles*. Un ensemble " "est une collection non ordonnée sans élément dupliqué. Des utilisations " -"basiques concernent par exemple des tests d'appartenance ou des suppressons " -"de doublons. Les ensembles supportent également les opérations mathématiques " -"comme les unions, intersections, différences et différences symétriques." +"basiques concernent par exemple des tests d'appartenance ou des suppressions " +"de doublons. Les ensembles savent également effectuer les opérations " +"mathématiques telles que les unions, intersections, différences et " +"différences symétriques." #: ../Doc/tutorial/datastructures.rst:444 msgid "" @@ -483,9 +483,9 @@ msgid "" "creates an empty dictionary, a data structure that we discuss in the next " "section." msgstr "" -"Des accolades, ou la fonction :func:`set` peuvent être utilisés pour créer " +"Des accolades ou la fonction :func:`set` peuvent être utilisés pour créer " "des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne " -"fonctionne pas, cela créé un dictionnaire vide. Utilisez plutôt ``set()``." +"fonctionne pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." #: ../Doc/tutorial/datastructures.rst:448 msgid "Here is a brief demonstration::" @@ -496,8 +496,8 @@ msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "" -"Tout comme les :ref:`comprehensions de listes `, il est " -"possibled'écrire des comprehensions d'ensembles : ::" +"Tout comme pour les :ref:`compréhensions de listes `, il est " +"possible d'écrire des compréhensions d'ensembles : ::" #: ../Doc/tutorial/datastructures.rst:484 msgid "Dictionaries" @@ -524,7 +524,7 @@ msgstr "" "n'importe quel type immuable ; les chaînes de caractères et les nombres " "peuvent toujours être des clés. Des tuples peuvent être utilisés comme clés " "s'ils ne contiennent que des chaînes, des nombres ou des tuples ; si un " -"tuple contient un objet mutable, de façon directe ou indirecte, il ne peut " +"tuple contient un objet muable, de façon directe ou indirecte, il ne peut " "pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes comme " "clés, car les listes peuvent être modifiées en place en utilisant des " "affectations par position, par tranches ou via des méthodes comme :meth:" @@ -545,7 +545,7 @@ msgstr "" "Placer une liste de paires clé:valeur séparées par des virgules à " "l'intérieur des accolades ajoute les valeurs correspondantes au " "dictionnaire ; c'est également de cette façon que les dictionnaires sont " -"affichés en sortie." +"affichés." #: ../Doc/tutorial/datastructures.rst:503 msgid "" @@ -555,12 +555,12 @@ msgid "" "the old value associated with that key is forgotten. It is an error to " "extract a value using a non-existent key." msgstr "" -"Les principales opérations effectuées sur un dictionnaire consistent à " -"stocker une valeur pour une clé et à extraire la valeur correspondant à une " -"clé. Il est également possible de supprimer une paire clé:valeur avec " -"``del``. Si vous stockez une valeur pour une clé qui est déjà utilisée, " -"l'ancienne valeur associée à cette clé est perdue. Si vous tentez d'extraire " -"une valeur associée à une clé qui n'existe pas, une exception est levée." +"Les opérations classiques sur un dictionnaire consistent à stocker une " +"valeur pour une clé et à extraire la valeur correspondant à une clé. Il est " +"également possible de supprimer une paire clé:valeur avec ``del``. Si vous " +"stockez une valeur pour une clé qui est déjà utilisée, l'ancienne valeur " +"associée à cette clé est perdue. Si vous tentez d'extraire une valeur " +"associée à une clé qui n'existe pas, une exception est levée." #: ../Doc/tutorial/datastructures.rst:509 msgid "" @@ -570,8 +570,8 @@ msgid "" "dictionary, use the :keyword:`in` keyword." msgstr "" "Exécuter ``list(d.keys())`` sur un dictionnaire ``d`` renvoie une liste de " -"toutes lesclés utilisées dans le dictionnaire, dans un ordre arbitraire (si " -"vous voulez qu'elles soient triées, utilisez ``sorted(d.keys())``). [2]_ " +"toutes les clés utilisées dans le dictionnaire, dans un ordre arbitraire (si " +"vous voulez qu'elles soient classées, utilisez ``sorted(d.keys())``) [2]_. " "Pour tester si une clé est dans le dictionnaire, utilisez le mot-clé :" "keyword:`in`." @@ -638,25 +638,26 @@ msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" msgstr "" -"Pour faire une boucle sur une séquence inversée, commencez par créer la " -"séquence dans son ordre normal, puis appliquez la fonction :func:" -"`reversed` ::" +"Pour faire une boucle en sens inverse sur une séquence, commencez par " +"spécifier la séquence dans son ordre normal, puis appliquez la fonction :" +"func:`reversed` ::" #: ../Doc/tutorial/datastructures.rst:603 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" -"Pour faire une boucle sur une séquence triée, utilisez la fonction :func:" -"`sorted`, qui renvoie une nouvelle liste triée sans altérer la source : ::" +"Pour faire une boucle selon un certain classement sur une séquence, utilisez " +"la fonction :func:`sorted`, elle renvoie une nouvelle liste classée sans " +"altérer la source : ::" #: ../Doc/tutorial/datastructures.rst:615 msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" msgstr "" -"Il est parfois tentant de changer une liste pendant son itération, " -"cependant, c'est souvent plus simple et plus sûr de créer une nouvelle liste " +"Il est parfois tentant de modifier une liste pendant son itération. " +"Cependant, c'est souvent plus simple et plus sûr de créer une nouvelle liste " "à la place. ::" #: ../Doc/tutorial/datastructures.rst:632 @@ -682,7 +683,7 @@ msgstr "" "Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur est " "présente ou non dans une séquence. Les opérateurs ``is`` et ``is not`` " "testent si deux objets sont vraiment le même objet ; ceci n'est important " -"que pour des objets mutables comme des listes. Tous les opérateurs de " +"que pour des objets muables comme des listes. Tous les opérateurs de " "comparaison ont la même priorité, qui est plus faible que celle des " "opérateurs numériques." @@ -691,9 +692,8 @@ msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " "is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" -"Les comparaison peuvent être enchaînées. Par exemple, ``a < b == c`` teste " -"si ``a`` est inférieur ou égal à ``b`` et par ailleurs si ``b`` est égal à " -"``c``." +"Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste " +"si ``a`` est inférieur ou égal à ``b`` et si, de plus, ``b`` égale ``c``." #: ../Doc/tutorial/datastructures.rst:646 msgid "" @@ -723,8 +723,8 @@ msgid "" "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " -"circuit court* : leurs arguments sont évalués de la gauche vers la droite, " -"et l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " +"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " +"l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " "``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " "l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " "tant que booléen, la valeur de retour d'un opérateur en circuit court est " @@ -748,8 +748,8 @@ msgstr "" "Notez qu'en Python, à la différence du C, des affectations ne peuvent pas " "intervenir à l'intérieur d'expressions. Les programmeurs C râleront peut-" "être après cela, mais cela évite des erreurs fréquentes que l'on rencontre " -"en C, lorsque l'expression ``=`` est placée alors qu'une expression ``==`` " -"était attendue." +"en C, lorsque l'on tape ``=`` alors que l'on voulait faire un test avec " +"``==``." #: ../Doc/tutorial/datastructures.rst:677 msgid "Comparing Sequences and Other Types" @@ -772,17 +772,17 @@ msgid "" msgstr "" "Des séquences peuvent être comparées avec d'autres séquences du même type. " "La comparaison utilise un ordre *lexicographique* : les deux premiers " -"éléments de chaque séquence sont comparés, et s'ils diffèrent cela détermine " -"le résultat de la comparaison ; s'ils sont égaux, les deux éléments suivants " -"sont comparés à leur tour, et ainsi de suite jusqu'à ce que l'une des " -"séquences soit épuisée. Si deux éléments à comparer sont eux-mêmes des " -"séquences du même type, alors la comparaison lexicographique est effectuée " -"récursivement. Si tous les éléments des deux séquences sont égaux, les deux " -"séquences sont alors considérées comme égales. Si une séquence est une sous-" -"séquence de l'autre, la séquence la plus courte est celle dont la valeur est " -"inférieure. La comparaison lexicographique des chaînes de caractères utilise " -"le code Unicode des caractères. Voici quelques exemples de comparaisons " -"entre séquences de même type : ::" +"éléments de chaque séquence sont comparés et, s'ils diffèrent, cela " +"détermine le résultat de la comparaison ; s'ils sont égaux, les deux " +"éléments suivants sont comparés à leur tour et ainsi de suite jusqu'à ce que " +"l'une des séquences soit épuisée. Si deux éléments à comparer sont eux-mêmes " +"des séquences du même type, alors la comparaison lexicographique est " +"effectuée récursivement. Si tous les éléments des deux séquences sont égaux, " +"les deux séquences sont alors considérées comme égales. Si une séquence est " +"une sous-séquence de l'autre, la séquence la plus courte est celle dont la " +"valeur est inférieure. La comparaison lexicographique des chaînes de " +"caractères utilise le code Unicode des caractères. Voici quelques exemples " +"de comparaisons entre séquences de même type : ::" #: ../Doc/tutorial/datastructures.rst:699 msgid "" @@ -794,9 +794,9 @@ msgid "" msgstr "" "Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " "les objets ont des méthodes de comparaison appropriées. Par exemple, les " -"types numériques sont comparées via leur valeur numérique, donc 0 est égal à " -"0,0, etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " -"l'interpréteur lancera une exception :exc:`TypeError`." +"types numériques sont comparées via leur valeur numérique, donc 0 égale 0,0, " +"etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " +"l'interpréteur lève une exception :exc:`TypeError`." #: ../Doc/tutorial/datastructures.rst:707 msgid "Footnotes" @@ -807,8 +807,8 @@ msgid "" "Other languages may return the mutated object, which allows method chaining, " "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" -"D'autres langages pourraient renvoie l'objet modifié, qui permet de chaîner " -"les méthodes, tel que : ``d->insert(\"a\")->remove(\"b\")->sort();``." +"D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " +"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." #: ../Doc/tutorial/datastructures.rst:711 msgid "" @@ -816,7 +816,7 @@ msgid "" "supports operations like membership test and iteration, but its contents are " "not independent of the original dictionary -- it is only a *view*." msgstr "" -"Appeler ``d.keys()`` renvoie un objet :dfn:`dictionary view`, qui gère les " +"Appeler ``d.keys()`` renvoie un objet :dfn:`dictionary view` qui gère les " "opérations du type test d'appartenance (``in``) et l'itération. Mais son " "contenu n'est pas indépendant du dictionnaire d'origine, c'est une simple " "*vue*." diff --git a/tutorial/errors.po b/tutorial/errors.po index 5f128c55..542f9308 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -26,10 +26,10 @@ msgid "" "tried out the examples you have probably seen some. There are (at least) " "two distinguishable kinds of errors: *syntax errors* and *exceptions*." msgstr "" -"Jusqu'à maintenant, les messages d'erreurs ont seulement été mentionnés, " -"mais si vous avez essayé les exemples vous avez certainement vu plus que " -"cela. En fait, il y a au moins deux types d'erreurs à distinguer : les " -"*erreurs de syntaxe* et les *exceptions*." +"Jusqu'ici, les messages d'erreurs ont seulement été mentionnés. Mais si vous " +"avez essayé les exemples vous avez certainement vu plus que cela. En fait, " +"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " +"et les *exceptions*." #: ../Doc/tutorial/errors.rst:15 msgid "Syntax Errors" @@ -53,17 +53,17 @@ msgid "" "colon (``':'``) is missing before it. File name and line number are printed " "so you know where to look in case the input came from a script." msgstr "" -"L'analyseur répère la ligne incriminée et affiche une petite 'flèche' " +"L'analyseur indique la ligne incriminée et affiche une petite 'flèche' " "pointant vers le premier endroit de la ligne où l'erreur a été détectée. " "L'erreur est causée (ou, au moins, a été détectée comme telle) par le " "symbole placé *avant* la flèche. Dans cet exemple la flèche est sur la " -"fonction :func:`print` car il manque deux points (``':'``) justeavant. Le " -"nom de fichier et le numéro de ligne sont affichés pour vous permettre de " +"fonction :func:`print` car il manque deux points (``':'``) juste avant. Le " +"nom du fichier et le numéro de ligne sont affichés pour vous permettre de " "localiser facilement l'erreur lorsque le code provient d'un script." #: ../Doc/tutorial/errors.rst:37 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/tutorial/errors.rst:39 msgid "" @@ -76,8 +76,8 @@ msgid "" msgstr "" "Même si une instruction ou une expression est syntaxiquement correcte, elle " "peut générer une erreur lors de son exécution. Les erreurs détectées durant " -"l'exécution son appelées des *exceptions* et ne sont pas toujours fatales : " -"vous apprendrez bientôt comment les traîter dans vos programmes. La plupart " +"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " +"nous apprendrons bientôt comment les traiter dans vos programmes. La plupart " "des exceptions toutefois ne sont pas prises en charge par les programmes, ce " "qui génère des messages d'erreurs comme celui-ci : ::" @@ -92,12 +92,12 @@ msgid "" "convention). Standard exception names are built-in identifiers (not reserved " "keywords)." msgstr "" -"La dernière ligne du message d'erreur indique la cause de l'erreur. Les " -"exceptions peuvent être de différents types, et ce type est indiqué dans le " +"La dernière ligne du message d'erreur indique ce qui s'est passé. Les " +"exceptions peuvent être de différents types et ce type est indiqué dans le " "message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" "exc:`NameError` et :exc:`TypeError`. Le texte affiché comme type de " "l'exception est le nom de l'exception native qui a été déclenchée. Ceci est " -"vrai pour toutes les exceptions natives, mais n'est pas une obligation pour " +"vrai pour toutes les exceptions natives mais n'est pas une obligation pour " "les exceptions définies par l'utilisateur (même si c'est une convention bien " "pratique). Les noms des exceptions standards sont des identifiants natifs " "(pas des mots réservés)." @@ -108,7 +108,7 @@ msgid "" "caused it." msgstr "" "Le reste de la ligne fournit plus de détails en fonction du type de " -"l'exception et de ce qui l'a causé." +"l'exception et de ce qui l'a causée." #: ../Doc/tutorial/errors.rst:69 msgid "" @@ -117,17 +117,18 @@ msgid "" "a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"La partie précédente du message d'erreur montre le contexte dans lequel " -"s'est produite l'exception, sous la forme d'une trace de pile d'exécution. " -"En général, celle-ci contient les lignes du code source ; toutefois, les " -"lignes lues à partir de l'entrée standard ne seront pas affichées." +"La partie précédente dans le message d'erreur indique le contexte dans " +"lequel s'est produite l'exception, sous la forme d'une trace de pile " +"d'exécution. En général, celle-ci contient les lignes du code source ; " +"toutefois, les lignes lues à partir de l'entrée standard ne sont pas " +"affichées." #: ../Doc/tutorial/errors.rst:74 msgid "" ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." msgstr "" -"Vous trouverez dans :ref:`bltin-exceptions` la liste des exceptions natives " -"et leur signification." +"Vous trouvez la liste des exceptions natives et leur signification dans :ref:" +"`bltin-exceptions`." #: ../Doc/tutorial/errors.rst:80 msgid "Handling Exceptions" @@ -146,29 +147,29 @@ msgstr "" "exceptions. Regardez l'exemple suivant, qui demande une saisie à " "l'utilisateur jusqu'à ce qu'un entier valide ait été entré, mais permet à " "l'utilisateur d'interrompre le programme (en utilisant :kbd:`Control-C` ou " -"un autre raccourci que le système supporte) ; notez qu'une interruption " +"un autre raccourci que le système accepte) ; notez qu'une interruption " "générée par l'utilisateur est signalée en levant l'exception :exc:" "`KeyboardInterrupt`." #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." -msgstr "L'instruction :keyword:`try` fonctionne comme ceci." +msgstr "L'instruction :keyword:`try` fonctionne comme ceci :" #: ../Doc/tutorial/errors.rst:98 msgid "" "First, the *try clause* (the statement(s) between the :keyword:`try` and :" "keyword:`except` keywords) is executed." msgstr "" -"Premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" -"keyword:`try` et :keyword:`except`) est exécutée." +"premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" +"keyword:`try` et :keyword:`except`) est exécutée ;" #: ../Doc/tutorial/errors.rst:101 msgid "" "If no exception occurs, the *except clause* is skipped and execution of the :" "keyword:`try` statement is finished." msgstr "" -"Si aucune exception n'intervient, la *clause except* est sautée et " -"l'exécution de l'instruction :keyword:`try` est terminée." +"si aucune exception n'intervient, la clause ``except`` est sautée et " +"l'exécution de l'instruction :keyword:`try` est terminée ;" #: ../Doc/tutorial/errors.rst:104 msgid "" @@ -177,11 +178,11 @@ msgid "" "keyword:`except` keyword, the except clause is executed, and then execution " "continues after the :keyword:`try` statement." msgstr "" -"Si une exception intervient pendant l'exécution de la clause 'try', le reste " -"de cette clause est sauté. Si son type correspond à un nom d'exception " -"indiqué après le mot-clé :keyword:`except`, la clause 'except' " +"si une exception intervient pendant l'exécution de la clause ``try``, le " +"reste de cette clause est sauté. Si le type d'exception levée correspond à " +"un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " "correspondante est exécutée, puis l'exécution continue après l'instruction :" -"keyword:`try`." +"keyword:`try` ;" #: ../Doc/tutorial/errors.rst:109 msgid "" @@ -190,8 +191,8 @@ msgid "" "handler is found, it is an *unhandled exception* and execution stops with a " "message as shown above." msgstr "" -"Si une exception intervient qui ne corresponde à aucune exception mentionnée " -"dans la clause 'except', elle est transmise à l'instruction :keyword:`try` " +"si une exception intervient et ne correspond à aucune exception mentionnée " +"dans la clause ``except``, elle est transmise à l'instruction :keyword:`try` " "de niveau supérieur ; si aucun gestionnaire d'exception n'est trouvé, il " "s'agit d'une *exception non gérée* et l'exécution s'arrête avec un message " "comme indiqué ci-dessus." @@ -204,13 +205,13 @@ msgid "" "not in other handlers of the same :keyword:`try` statement. An except " "clause may name multiple exceptions as a parenthesized tuple, for example::" msgstr "" -"Une instruction :keyword:`try` peut comporter plusieurs clauses except, pour " -"permettre la prise en charge de différentes exceptions. Mais un seul " +"Une instruction :keyword:`try` peut comporter plusieurs clauses ``except`` " +"pour permettre la prise en charge de différentes exceptions. Mais un seul " "gestionnaire, au plus, sera exécuté. Les gestionnaires ne prennent en charge " -"que les exceptions qui interviennent dans la clause try correspondante, pas " -"dans d'autres gestionnaires de la même instruction :keyword:`try`. Mais une " -"même clause except peut citer plusieurs exceptions sous la forme d'un tuple " -"entre parenthèses, comme dans cet exemple : ::" +"que les exceptions qui interviennent dans la clause `try` correspondante, " +"pas dans d'autres gestionnaires de la même instruction :keyword:`try`. Mais " +"une même clause ``except`` peut citer plusieurs exceptions sous la forme " +"d'un tuple entre parenthèses, comme dans cet exemple : ::" #: ../Doc/tutorial/errors.rst:123 msgid "" @@ -220,12 +221,12 @@ msgid "" "message and then re-raise the exception (allowing a caller to handle the " "exception as well)::" msgstr "" -"La dernière clause except peut omettre le(s) nom(s) d'exception(s), pour " -"servir de joker. C'est toutefois à utiliser avec beaucoup de précautions, " -"car il est très facile de masquer une vraie erreur de programmation par ce " -"biais. Elle peut aussi être utilisée pour afficher un message d'erreur avant " -"de re-lever l'exception (en permettant à un appelant de prendre également en " -"charge l'exception) ::" +"La dernière clause ``except`` peut omettre le(s) nom(s) d'exception(s) et " +"joue alors le rôle de joker. C'est toutefois à utiliser avec beaucoup de " +"précautions car il est facile de masquer une vraie erreur de programmation " +"par ce biais. Elle peut aussi être utilisée pour afficher un message " +"d'erreur avant de propager l'exception (en permettant à un appelant de gérer " +"également l'exception) ::" #: ../Doc/tutorial/errors.rst:142 msgid "" @@ -234,10 +235,11 @@ msgid "" "for code that must be executed if the try clause does not raise an " "exception. For example::" msgstr "" -"L'instruction :keyword:`try` ... :keyword:`except` a également une *clause " -"else* optionnelle qui, lorsqu'elle est présente, doit suivre toutes les " -"clauses except. Elle est utile pour du code qui doit être exécuté " -"lorsqu'aucune exception n'a été levée par la clause try. Par exemple : ::" +"L'instruction :keyword:`try` ... :keyword:`except` accepte également une " +"*clause else* optionnelle qui, lorsqu'elle est présente, doit se placer " +"après toutes les clauses ``except``. Elle est utile pour du code qui doit " +"être exécuté lorsqu'aucune exception n'a été levée par la clause try. Par " +"exemple : ::" #: ../Doc/tutorial/errors.rst:156 msgid "" @@ -246,8 +248,8 @@ msgid "" "exception that wasn't raised by the code being protected by the :keyword:" "`try` ... :keyword:`except` statement." msgstr "" -"Il vaut mieux utiliser la clause :keyword:`else`, plutôt que d'ajouter du " -"code à la clause :keyword:`try`, car cela évite de capturer accidentellement " +"Il vaut mieux utiliser la clause :keyword:`else` plutôt que d'ajouter du " +"code à la clause :keyword:`try` car cela évite de capturer accidentellement " "une exception qui n'a pas été levée par le code initialement protégé par " "l'instruction :keyword:`try` ... :keyword:`except`." @@ -258,8 +260,8 @@ msgid "" "exception type." msgstr "" "Quand une exception intervient, une valeur peut lui être associée, que l'on " -"appelle également *l'argument* de l'exception. La présence de cet argument " -"et son type dépendent du type de l'exception." +"appelle *l'argument* de l'exception. La présence de cet argument et son type " +"dépendent du type de l'exception." #: ../Doc/tutorial/errors.rst:165 msgid "" @@ -270,13 +272,13 @@ msgid "" "reference ``.args``. One may also instantiate an exception first before " "raising it and add any attributes to it as desired. ::" msgstr "" -"La clause except peut spécifier un nom de variable après le nom de " +"La clause ``except`` peut spécifier un nom de variable après le nom de " "l'exception. Cette variable est liée à une instance d'exception avec les " "arguments stockés dans ``instance.args``. Pour plus de commodité, l'instance " "de l'exception définit la méthode :meth:`__str__` afin que les arguments " "puissent être affichés directement sans avoir à référencer ``.args``. Il est " -"possible de construire une exception, y ajouter ses attributs, puis la " -"lancer plus tard. ::" +"possible de construire une exception, y ajouter ses attributs, puis la lever " +"plus tard. ::" #: ../Doc/tutorial/errors.rst:189 msgid "" @@ -325,9 +327,9 @@ msgid "" "handle it, a simpler form of the :keyword:`raise` statement allows you to re-" "raise the exception::" msgstr "" -"Si vous devez savoir qu'une exception a été levée mais sans intention de la " -"prendre en charge, une forme plus simple de l'instruction :keyword:`raise` " -"permet de re-déclencher l'exception : ::" +"Si vous avez besoin de savoir si une exception a été levée mais que vous " +"n'avez pas intention de la gérer, une forme plus simple de l'instruction :" +"keyword:`raise` permet de propager l'exception : ::" #: ../Doc/tutorial/errors.rst:243 msgid "User-defined Exceptions" @@ -356,12 +358,12 @@ msgid "" "error conditions::" msgstr "" "Les classes d'exceptions peuvent être définies pour faire tout ce qu'une " -"autre classe peut faire. Mais elles sont le plus souvent assez simples, " +"autre classe peut faire. Elles sont le plus souvent gardées assez simples, " "n'offrant que les attributs permettant aux gestionnaires de ces exceptions " "d'extraire les informations relatives à l'erreur qui s'est produite. Lorsque " "l'on crée un module qui peut déclencher plusieurs types d'erreurs distincts, " "une pratique courante est de créer une classe de base pour l'ensemble des " -"exceptions définies dans ce module, et de créer des sous-classes spécifiques " +"exceptions définies dans ce module et de créer des sous-classes spécifiques " "d'exceptions pour les différentes conditions d'erreurs : ::" #: ../Doc/tutorial/errors.rst:287 @@ -370,7 +372,7 @@ msgid "" "naming of the standard exceptions." msgstr "" "La plupart des exceptions sont définies avec des noms qui se terminent par " -"\"Error\", comme pour les exceptions standards." +"\"Error\", comme les exceptions standards." #: ../Doc/tutorial/errors.rst:290 msgid "" @@ -378,10 +380,10 @@ msgid "" "occur in functions they define. More information on classes is presented in " "chapter :ref:`tut-classes`." msgstr "" -"La plupart des modules standards définissent leurs propres exceptions pour " -"décrire les erreurs que l'on peut rencontrer dans les fonctions qu'ils " -"définissent. Plus d'informations sur les classes sont présentées dans le " -"chapitre :ref:`tut-classes`." +"Beaucoup de modules standards définissent leurs propres exceptions pour " +"signaler les erreurs possibles dans les fonctions qu'ils définissent. Plus " +"d'informations sur les classes sont présentées dans le chapitre :ref:`tut-" +"classes`." #: ../Doc/tutorial/errors.rst:298 msgid "Defining Clean-up Actions" @@ -410,15 +412,15 @@ msgid "" "more complicated example::" msgstr "" "Une *clause finally* est toujours exécutée avant de quitter l'instruction :" -"keyword:`try`, qu'une exception ait été déclenchée ou non. Quand " -"uneexception a été déclenchée dans la clause :keyword:`try` et n'a pas été " -"prise en charge par une clause :keyword:`except` (ou si elle a été " -"déclenchée dans une clause :keyword:`except` ou :keyword:`else`), elle est " -"re-déclenchée après l'exécution de la clause :keyword:`finally`. La clause :" -"keyword:`finally` est également exécutée \"à la sortie\" quand " -"n'importequelle autre clause de l'instruction :keyword:`try` est abandonnée " -"par une instruction :keyword:`break`, :keyword:`continue` ou :keyword:" -"`return`. Voici un exemple plus compliqué : ::" +"keyword:`try`, qu'une exception ait été levée ou non. Quand une exception a " +"été levée dans la clause :keyword:`try` et n'a pas été prise en charge par " +"une clause :keyword:`except` (ou si elle a été levée dans une clause :" +"keyword:`except` ou :keyword:`else`), elle est propagée après l'exécution de " +"la clause :keyword:`finally`. La clause :keyword:`finally` est également " +"exécutée \"à la sortie\" quand n'importe quelle autre clause de " +"l'instruction :keyword:`try` est abandonnée par une instruction :keyword:" +"`break`, :keyword:`continue` ou :keyword:`return`. Voici un exemple plus " +"compliqué : ::" #: ../Doc/tutorial/errors.rst:347 msgid "" @@ -428,10 +430,10 @@ msgid "" "clause has been executed." msgstr "" "Comme vous pouvez le voir, la clause :keyword:`finally` est exécutée dans " -"tous les cas. L'exception de type :exc:`TypeError` déclenchée en divisant " -"deux chaînes de caractères n'est pas prise en charge par la clause :keyword:" -"`except` et est donc re-déclenchée après que la clause :keyword:`finally` " -"ait été exécutée." +"tous les cas. L'exception de type :exc:`TypeError`, déclenchée en divisant " +"deux chaînes de caractères, n'est pas prise en charge par la clause :keyword:" +"`except` et est donc propagée après que la clause :keyword:`finally` a été " +"exécutée." #: ../Doc/tutorial/errors.rst:352 msgid "" @@ -439,9 +441,9 @@ msgid "" "releasing external resources (such as files or network connections), " "regardless of whether the use of the resource was successful." msgstr "" -"Dans les vraies applicatons, la clause :keyword:`finally` est notamment " +"Dans les vraies applications, la clause :keyword:`finally` est notamment " "utile pour libérer des ressources externes (telles que des fichiers ou des " -"connections réseau), que l'utilisation de ces ressources ait réussi ou non." +"connexions réseau), quelle qu'ait été l'utilisation de ces ressources." #: ../Doc/tutorial/errors.rst:360 msgid "Predefined Clean-up Actions" @@ -470,7 +472,7 @@ msgid "" "correctly. ::" msgstr "" "Le problème avec ce code est qu'il laisse le fichier ouvert pendant une " -"durée indéterminée après que le code ait fini de s'exécuter. Ce n'est pas un " +"durée indéterminée après que le code a fini de s'exécuter. Ce n'est pas un " "problème avec des scripts simples, mais peut l'être au sein d'applications " "plus conséquentes. L'instruction :keyword:`with` permet d'utiliser certains " "objets comme des fichiers d'une façon qui assure qu'ils seront toujours " @@ -483,7 +485,7 @@ msgid "" "files, provide predefined clean-up actions will indicate this in their " "documentation." msgstr "" -"Dès que l'instruction est exécutée, le fichier *f* est toujours fermé, même " -"si un problème est survenu pendant l'exécution de ces lignes. D'autres " -"objets qui, comme pour les fichiers, fournissent des actions de nettoyage " -"prédéfinies l'indiquent dans leur documentation." +"Après l'exécution du bloc, le fichier *f* est toujours fermé, même si un " +"problème est survenu pendant l'exécution de ces lignes. D'autres objets qui, " +"comme pour les fichiers, fournissent des actions de nettoyage prédéfinies " +"l'indiquent dans leur documentation." diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 1eb7044d..2ee632bf 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" -msgstr "Arithmétique en Nombre à Virgule Flottante : Problèmes et Limites" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" #: ../Doc/tutorial/floatingpoint.rst:14 msgid "" @@ -33,7 +33,7 @@ msgstr "" msgid "" "has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" msgstr "" -"a la valeur 1/10 + 2/100 + 5/1000, et de la même manière, la fraction " +"a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " "binaire : ::" #: ../Doc/tutorial/floatingpoint.rst:23 @@ -44,7 +44,7 @@ msgid "" msgstr "" "a la valeur 0/2 + 0/4 + 1/8. Ces deux fractions ont une valeur identique, la " "seule différence est que la première est une fraction décimale, la seconde " -"binaire." +"est une fraction binaire." #: ../Doc/tutorial/floatingpoint.rst:27 msgid "" @@ -53,10 +53,10 @@ msgid "" "point numbers you enter are only approximated by the binary floating-point " "numbers actually stored in the machine." msgstr "" -"Malheureusement, la plupart des fractions décimales n'ont pas de " +"Malheureusement, la plupart des fractions décimales ne peuvent pas avoir de " "représentation exacte en fractions binaires. Par conséquent, en général, les " "nombres à virgule flottante que vous donnez sont seulement approximés en " -"fraction binaire pour être stocké dans la machine." +"fractions binaires pour être stockés dans la machine." #: ../Doc/tutorial/floatingpoint.rst:32 msgid "" @@ -64,7 +64,7 @@ msgid "" "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" "Le problème est plus simple à aborder en base 10. Prenons par exemple, la " -"fraction 1/3. Vous pouvez l'approximer en une fraction décimale::" +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale : ::" #: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 msgid "or, better, ::" @@ -76,9 +76,9 @@ msgid "" "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" -"etc... Peu importe le nombre de décimales que vous écrirez, le résultat ne " -"sera jamais exactement 1/3, mais une estimation s'en approchant toujours " -"mieux." +"etc. Peu importe le nombre de décimales que vous écrivez, le résultat ne " +"vaut jamais exactement 1/3, mais c'est une estimation s'en approchant " +"toujours mieux." #: ../Doc/tutorial/floatingpoint.rst:49 msgid "" @@ -87,7 +87,7 @@ msgid "" "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" "De la même manière, peu importe combien de décimales en base 2 vous " -"utiliserez, la valeur décimale 0.1 ne peut être représentée exactement en " +"utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " "fraction binaire. En base 2, 1/10 est le nombre périodique suivant : ::" #: ../Doc/tutorial/floatingpoint.rst:55 @@ -104,7 +104,7 @@ msgstr "" "virgule flottante sont approximés par une fraction binaire avec les 53 " "premiers bits comme numérateur et une puissance de deux au dénominateur. " "Dans le cas de 1/10, la fraction binaire est ``3602879701896397 / 2 ** 55`` " -"qui est proche mais pas exactement 1/10." +"qui est proche mais ne vaut pas exactement 1/10." #: ../Doc/tutorial/floatingpoint.rst:62 msgid "" @@ -114,9 +114,9 @@ msgid "" "if Python were to print the true decimal value of the binary approximation " "stored for 0.1, it would have to display ::" msgstr "" -"Il est facile d'oublier que la valeur stockée est une approximation de la " -"fraction décimale d'origine, du fait de la manière dont les flottants sont " -"affichés dans l'interpréteur. Python n'affiche qu'une approximation décimale " +"Du fait de la manière dont les flottants sont affichés par l'interpréteur, " +"il est facile d'oublier que la valeur stockée est une approximation de la " +"fraction décimale d'origine. Python n'affiche qu'une approximation décimale " "de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " "décimale de l'approximation binaire stockée pour 0,1, il afficherait : ::" @@ -125,17 +125,18 @@ msgid "" "That is more digits than most people find useful, so Python keeps the number " "of digits manageable by displaying a rounded value instead ::" msgstr "" -"C'est bien plus de décimales que nécessaire, donc Python affiche une valeur " -"arrondie afin d'améliorer la lisibilité : ::" +"C'est bien plus de décimales que ce qu'attendent la plupart des " +"utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " +"lisibilité : ::" #: ../Doc/tutorial/floatingpoint.rst:77 msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" -"Il faut se rappeler, bien que la valeur affichée ressemble à la valeur " -"exacte de 1/10, que la valeur stockée est la représentation la plus proche " -"en fraction binaire." +"Rappelez-vous simplement que, bien que la valeur affichée ressemble à la " +"valeur exacte de 1/10, la valeur stockée est la représentation la plus " +"proche en fraction binaire." #: ../Doc/tutorial/floatingpoint.rst:80 msgid "" @@ -148,9 +149,9 @@ msgid "" "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" "Il existe beaucoup de nombres décimaux qui partagent une même approximation " -"en fraction binaire. Par exemple, ``0.1``, ``0.10000000000000001``, et " +"en fraction binaire. Par exemple, ``0.1``, ``0.10000000000000001`` et " "``0.1000000000000000055511151231257827021181583404541015625`` ont tous pour " -"approximation ``3602879701896397 / 2 ** 55``. Puisques toutes ces valeurs " +"approximation ``3602879701896397 / 2 ** 55``. Puisque toutes ces valeurs " "décimales partagent la même approximation, chacune peut être affichée tout " "en respectant ``eval(repr(x)) == x``." @@ -162,10 +163,10 @@ msgid "" "shortest of these and simply display ``0.1``." msgstr "" "Historiquement, le mode interactif de Python et la primitive :func:`repr` " -"auraient choisi la version avec 17 décimales significatives, " +"choisissaient la version avec 17 décimales significatives, " "``0.10000000000000001``. Python, depuis la version 3.1 (sur la majorité des " "systèmes) est maintenant capable de choisir la plus courte représentation et " -"n'afficher que ``0.1``." +"n'affiche que ``0.1``." #: ../Doc/tutorial/floatingpoint.rst:93 msgid "" @@ -175,12 +176,13 @@ msgid "" "arithmetic (although some languages may not *display* the difference by " "default, or in all output modes)." msgstr "" -"Ce comportement est inhérent au comportement des nombres à virgule " -"flottante : ce n'est pas un bug dans Python, et ce n'est pas non plus un bug " -"dans votre code. Vous verrez le même type de comportement dans tous les " -"autres langages utilisant le support matériel pour le calcul des nombres à " -"virgules flottante (bien que certains langages ne rendent pas visible la " -"différence par défaut, ou pas dans tous les modes d'affichage)." +"Ce comportement est inhérent à la nature même de la représentation des " +"nombres à virgule flottante dans la machine : ce n'est pas un bogue dans " +"Python et ce n'est pas non plus un bogue dans votre code. Vous pouvez " +"observer le même type de comportement dans tous les autres langages " +"utilisant le support matériel pour le calcul des nombres à virgule flottante " +"(bien que certains langages ne rendent pas visible la différence par défaut, " +"ou pas dans tous les modes d'affichage)." #: ../Doc/tutorial/floatingpoint.rst:99 msgid "" @@ -189,15 +191,16 @@ msgid "" msgstr "" "Pour obtenir un affichage plus plaisant, les fonctions de formatage de " "chaînes de caractères peuvent limiter le nombre de décimales significatives " -"affichées::" +"affichées ::" #: ../Doc/tutorial/floatingpoint.rst:111 msgid "" "It's important to realize that this is, in a real sense, an illusion: you're " "simply rounding the *display* of the true machine value." msgstr "" -"Il est important de comprendre qu'en réalité, c'est une illusion : Python " -"arrondit simplement, la vraie valeur stockée, à *l'affichage*." +"Il est important de comprendre que tout cela n'est, au sens propre, qu'une " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"réellement dans la machine à *l'affichage*." #: ../Doc/tutorial/floatingpoint.rst:114 msgid "" @@ -215,8 +218,8 @@ msgid "" msgstr "" "Aussi, puisque 0,1 ne peut pas être stocké avec une représentation plus " "proche de sa valeur exacte 1/10, comme 0,3 qui ne peut pas être plus proche " -"de sa valeur exacte 3/10, arrondir avec la fonction :func:`round` n'aide en " -"rien : ::" +"de sa valeur exacte 3/10, arrondir au préalable avec la fonction :func:" +"`round` n'aide en rien : ::" #: ../Doc/tutorial/floatingpoint.rst:127 msgid "" @@ -224,9 +227,9 @@ msgid "" "the :func:`round` function can be useful for post-rounding so that results " "with inexact values become comparable to one another::" msgstr "" -"Bien que les nombres ne peuvent se rapprocher plus de la valeur qu'on attend " -"qu'ils aient, la fonction :func:`round` peut être utile à posteriori pour " -"arrondir deux valeurs inexactes et les rendre comparables : ::" +"Bien que les nombres ne peuvent se rapprocher plus de la valeur qu’on attend " +"qu’ils aient, la fonction :func:`round` peut être utile à postériori pour " +"arrondir deux valeurs inexactes et pouvoir les comparer : ::" #: ../Doc/tutorial/floatingpoint.rst:134 msgid "" @@ -238,7 +241,7 @@ msgid "" msgstr "" "L'arithmétique des nombres binaires à virgule flottante réserve beaucoup de " "surprises de ce genre. Le problème avec \"0.1\" est expliqué en détails ci-" -"desous, dans la section \"Représentation d'Erreur\". Voir `The Perils of " +"dessous, dans la section \"Erreurs de représentation\". Voir `The Perils of " "Floating Point `_ pour une liste plus " "complète de ce genre de surprises." @@ -252,14 +255,14 @@ msgid "" "decimal arithmetic and that every float operation can suffer a new rounding " "error." msgstr "" -"Il est vrai qu'il n'existe pas de réponse simple, cependant ne vous méfiez " -"pas trop des nombres à virtule flottante ! Les erreurs, en Python, dans les " -"opérations de nombres à virgule flottante sont dues au matériel sous-jacent, " -"et sur la plupart des machines ne sont pas plus importantes que 1 sur 2\\*" -"\\*53 par opération. C'est plus que nécessaire pour la plupart des tâches, " -"mais vous devez garder à l'esprit que ce ne sont pas des opérations " -"décimales, et que chaque opération sur des nombres à virgule flottante peut " -"souffrir d'une nouvelle erreur." +"Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"erreurs, en Python, dans les opérations de nombres à virgule flottante sont " +"dues au matériel sous-jacent et, sur la plupart des machines, sont de " +"l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " +"plupart des tâches, mais vous devez garder à l'esprit que ce ne sont pas des " +"opérations décimales et que chaque opération sur des nombres à virgule " +"flottante peut souffrir d'une nouvelle erreur." #: ../Doc/tutorial/floatingpoint.rst:146 msgid "" @@ -270,7 +273,7 @@ msgid "" "`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" "Bien que des cas pathologiques existent, pour la plupart des cas " -"d'utilisations courants vous obtiendrez le résultat attendu à la fin et en " +"d'utilisations courants vous obtiendrez le résultat attendu à la fin en " "arrondissant simplement au nombre de décimales désirées à l'affichage avec :" "func:`str`. Pour un contrôle fin sur la manière dont les décimales sont " "affichées, consultez dans :ref:`formatstrings` les spécifications de " @@ -283,7 +286,7 @@ msgid "" "applications and high-precision applications." msgstr "" "Pour les cas requérant une représentation décimale exacte, le module :mod:" -"`decimal` peut être utile, il implémente l'arithmétique décimale et peut " +"`decimal` peut être utile : il implémente l'arithmétique décimale et peut " "donc être un choix adapté pour des applications nécessitant une grande " "précision." @@ -294,7 +297,7 @@ msgid "" "1/3 can be represented exactly)." msgstr "" "Une autre forme d'arithmétique exacte est implémentée dans le module :mod:" -"`fractions` qui se base sur les nombre rationnels (donc 1/3 peut y être " +"`fractions` qui se base sur les nombres rationnels (donc 1/3 peut y être " "représenté exactement)." #: ../Doc/tutorial/floatingpoint.rst:160 @@ -305,9 +308,9 @@ msgid "" "org>." msgstr "" "Si vous êtes un utilisateur intensif des opérations sur les nombres à " -"virgule flottante, vous devriez regarder le paquet *Numerical Python* et une " -"série d'autres paquets pour les opérations statistiques et mathématiques " -"fournis par le projet SciPy. Voir ." +"virgule flottante, nous vous conseillons de considérer le paquet *Numerical " +"Python* ainsi que les paquets pour les opérations statistiques et " +"mathématiques fournis par le projet SciPy. Consultez ." #: ../Doc/tutorial/floatingpoint.rst:164 msgid "" @@ -315,8 +318,8 @@ msgid "" "*do* want to know the exact value of a float. The :meth:`float." "as_integer_ratio` method expresses the value of a float as a fraction::" msgstr "" -"Python fournit des outils qui peuvent être utils dans les rares occasions ou " -"vous voulez réellement connaître la valeur exacte d'un nombre à virgule " +"Python fournit des outils qui peuvent être utiles dans les rares occasions " +"où vous voulez réellement connaître la valeur exacte d'un nombre à virgule " "flottante. La méthode :meth:`float.as_integer_ratio` donne la valeur du " "nombre sous forme de fraction : ::" @@ -326,7 +329,7 @@ msgid "" "value::" msgstr "" "Puisque le ratio est exact, il peut être utilisé pour recréer la valeur " -"originale dans perte : ::" +"originale sans perte : ::" #: ../Doc/tutorial/floatingpoint.rst:179 msgid "" @@ -342,7 +345,7 @@ msgid "" "value exactly::" msgstr "" "Cette représentation hexadécimale petit être utilisée pour reconstruire, " -"sans approximation, le *float* ::" +"sans approximation, le *float* : ::" #: ../Doc/tutorial/floatingpoint.rst:191 msgid "" @@ -352,8 +355,8 @@ msgid "" "C99)." msgstr "" "Puisque cette représentation est exacte, elle est pratique pour échanger des " -"valeurs entre différentes version de Python (indépendamment de la machine) " -"ou d'autres langages qui comprennent ce format (tel que Java et C99)." +"valeurs entre différentes versions de Python (indépendamment de la machine) " +"ou d'autres langages qui comprennent ce format (tels que Java et C99)." #: ../Doc/tutorial/floatingpoint.rst:195 msgid "" @@ -363,11 +366,11 @@ msgid "" "so that the errors do not accumulate to the point where they affect the " "final total:" msgstr "" -"Une autre fonction utile est :func:`math.fsum`, qui aide à diminuer les " +"Une autre fonction utile est :func:`math.fsum`, elle aide à diminuer les " "pertes de précision lors des additions. Elle surveille les *décimales " "perdues* au fur et à mesure que les valeurs sont ajoutées au total. Cela " -"peut faire une différence au niveau de la précision globale car cela empêche " -"les erreurs de s'accumuler jusqu'au point ou le résultat final est affecté:" +"peut faire une différence au niveau de la précision globale en empêchant les " +"erreurs de s'accumuler jusqu'à affecter le résultat final :" #: ../Doc/tutorial/floatingpoint.rst:209 msgid "Representation Error" @@ -379,10 +382,10 @@ msgid "" "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" -"Cette section explique en détail l'exemple du \"0.1\", et montre comment " -"vous pouvez effectuer une analyse exacte de ce type de cas par vous-même. Il " -"est supposé que vous êtes déjà familier de la représentation binaire des " -"nombres flottants." +"Cette section explique en détail l'exemple du \"0.1\" et montre comment vous " +"pouvez effectuer une analyse exacte de ce type de cas par vous-même. Nous " +"supposons que la représentation binaire des nombres flottants vous est " +"familière." #: ../Doc/tutorial/floatingpoint.rst:215 msgid "" @@ -392,10 +395,11 @@ msgid "" "Fortran, and many others) often won't display the exact decimal number you " "expect." msgstr "" -"Le terme :dfn:`Representation error` signifie que la plupart des fractions " -"décimales ne peuvent être représentées exactement en binaire. C'est la " -"principale raison pour laquelle Python (ou Perl, C, C++, Java, Fortran, et " -"beuacoup d'autres) n'affiche habituellement pas le résultat exact en décimal." +"Le terme :dfn:`Erreur de représentation` (*representation error* en anglais) " +"signifie que la plupart des fractions décimales ne peuvent être représentées " +"exactement en binaire. C'est la principale raison pour laquelle Python (ou " +"Perl, C, C++, Java, Fortran et beaucoup d'autres) n'affiche habituellement " +"pas le résultat exact en décimal." #: ../Doc/tutorial/floatingpoint.rst:220 msgid "" @@ -406,15 +410,15 @@ msgid "" "strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " "*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" msgstr "" -"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fractions " -"binaires. Cependant, toutes les machines d'aujourd'hui (Juillet 2010) " +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " "suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " -"virgule flottante. et la plupart des plateformes utilisent un \"IEEE-754 " -"double precision\" pour représenter les floats de Python. Les \"IEEE-754 " -"double precision\" utilisent 53 bits de précision, donc a la lecture " +"virgule flottante et la plupart des plateformes utilisent un \"IEEE-754 " +"double précision\" pour représenter les floats de Python. Les \"IEEE-754 " +"double précision\" utilisent 53 bits de précision donc, à la lecture, " "l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " "possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " -"bits. Réecrire : ::" +"bits. Pour réécrire : ::" #: ../Doc/tutorial/floatingpoint.rst:229 msgid "as ::" @@ -426,7 +430,7 @@ msgid "" "2**53``), the best value for *N* is 56::" msgstr "" "en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " -"2**53``), la meilleur valeur possible pour *N* est 56::" +"2**53``), la meilleure valeur possible pour *N* est 56 : ::" #: ../Doc/tutorial/floatingpoint.rst:239 msgid "" @@ -435,7 +439,7 @@ msgid "" msgstr "" "Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " "pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " -"arrondi::" +"arrondi : ::" #: ../Doc/tutorial/floatingpoint.rst:246 msgid "" @@ -443,7 +447,7 @@ msgid "" "obtained by rounding up::" msgstr "" "Puisque la retenue est plus grande que la moitié de 10, la meilleure " -"approximation est obtenue en arrondissant par le haut:" +"approximation est obtenue en arrondissant par le haut : ::" #: ../Doc/tutorial/floatingpoint.rst:252 msgid "" @@ -451,7 +455,7 @@ msgid "" "is::" msgstr "" "Par conséquent la meilleure approximation possible pour 1/10 en \"IEEE-754 " -"double precision\" est cette au desus de 2\\*\\*56, soit : ::" +"double précision\" est celle au-dessus de 2\\*\\*56, soit : ::" #: ../Doc/tutorial/floatingpoint.rst:256 msgid "" @@ -466,7 +470,7 @@ msgid "" "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" "Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " -"réalité légèrement plus grand que 1/10; si nous n'avions pas arrondi par le " +"réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " "haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " "cas il ne vaut *exactement* 1/10 !" @@ -475,17 +479,17 @@ msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best 754 double approximation it can get::" msgstr "" -"Donc l'ordinateur ne \"voit\" jamais 1/10: ce qu'il voit est la fraction " +"Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " "exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " -"virgule flottante double précision de l'\"IEEE-754\"" +"virgule flottante double précision de l'\"IEEE-754\" : ::" #: ../Doc/tutorial/floatingpoint.rst:270 msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits::" msgstr "" -"Si on multiplie cette fraction par 10\\*\\*30, on peut observer les valeurs " -"de ses 55 décimales de poid fort::" +"Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " +"valeurs de ses 55 décimales de poids fort : ::" #: ../Doc/tutorial/floatingpoint.rst:276 msgid "" @@ -494,11 +498,11 @@ msgid "" "displaying the full decimal value, many languages (including older versions " "of Python), round the result to 17 significant digits::" msgstr "" -"la valeur stockée dans l'ordinateur est donc égale à " +"La valeur stockée dans l'ordinateur est donc égale à " "0,1000000000000000055511151231257827021181583404541015625. Au lieu " "d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " -"version de Python) arrondissent le résultat à la 17eme décimale " -"significative." +"versions de Python) arrondissent le résultat à la 17eme décimale " +"significative : ::" #: ../Doc/tutorial/floatingpoint.rst:284 msgid "" diff --git a/tutorial/index.po b/tutorial/index.po index 2765fc94..6dbe04ea 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -29,11 +29,12 @@ msgid "" "rapid application development in many areas on most platforms." msgstr "" "Python est un langage de programmation puissant et facile à apprendre. Il " -"dispose de structures de données de haut niveau et d'une approche de la " -"programmation orientée objet simple mais efficace. Parce que sa syntaxe est " -"élégante, que son typage est dynamique et qu'il est interprété, Python est " -"un langage idéal pour l'écriture de scripts et le développement rapide " -"d'applications dans de nombreux domaines et sur de nombreuses plateformes." +"dispose de structures de données de haut niveau et permet une approche " +"simple mais efficace de la programmation orientée objet. Parce que sa " +"syntaxe est élégante, que son typage est dynamique et qu'il est interprété, " +"Python est un langage idéal pour l'écriture de scripts et le développement " +"rapide d'applications dans de nombreux domaines et sur la plupart des " +"plateformes." #: ../Doc/tutorial/index.rst:13 msgid "" @@ -45,10 +46,10 @@ msgid "" msgstr "" "L'interpréteur Python et sa vaste bibliothèque standard sont disponibles " "librement, sous forme de sources ou de binaires, pour toutes les plateformes " -"majeures, depuis le site Internet http://www.python.org/ et peuvent être " -"librement redistribués. Le même site distribue et contient des liens vers " -"des modules, des programmes et des outils tiers ainsi que vers de la " -"documentation supplémentaire." +"majeures depuis le site Internet https://www.python.org/ et peuvent être " +"librement redistribués. Ce même site distribue et pointe vers des modules, " +"des programmes et des outils tiers. Enfin, il constitue une source de " +"documentation." #: ../Doc/tutorial/index.rst:19 msgid "" @@ -68,11 +69,12 @@ msgid "" "interpreter handy for hands-on experience, but all examples are self-" "contained, so the tutorial can be read off-line as well." msgstr "" -"Ce tutoriel introduit au lecteur, de façon informelle, les concepts de base " -"ainsi que les fonctionnalités du langage Python et de son écosystème. Il " -"aide à prendre en main l'interpréteur Python pour une utilisation sur des " -"cas pratiques. Les exemples étant indépendants, le tutoriel est adapté à une " -"lecture hors ligne." +"Dans ce tutoriel, nous introduisons, de façon informelle, les concepts de " +"base ainsi que les fonctionnalités du langage Python et de son écosystème. " +"Il est utile de disposer d'un interpréteur Python à portée de main pour " +"mettre en pratique les notions abordées. Si ce n'est pas possible, pas de " +"souci, les exemples sont inclus et le tutoriel est adapté à une lecture " +"\"hors ligne\"." #: ../Doc/tutorial/index.rst:28 msgid "" @@ -82,10 +84,10 @@ msgid "" "ref:`c-api-index`. There are also several books covering Python in depth." msgstr "" "Pour une description des objets et modules de la bibliothèque standard, " -"voyez :ref:`library-index`. :ref:`reference-index` présente une définition " -"plus formelle du langage. Pour écrire des extensions en C ou en C++, lisez :" -"ref:`extending-index` et :ref:`c-api-index`. Des livres sont également " -"disponibles qui couvrent Python dans le détail." +"reportez-vous à :ref:`library-index`. :ref:`reference-index` présente le " +"langage de manière plus formelle. Pour écrire des extensions en C ou en C++, " +"lisez :ref:`extending-index` et :ref:`c-api-index`. Des livres sont " +"également disponibles qui couvrent Python dans le détail." #: ../Doc/tutorial/index.rst:33 msgid "" @@ -97,13 +99,12 @@ msgid "" "the various Python library modules described in :ref:`library-index`." msgstr "" "L'ambition de ce tutoriel n'est pas d'être exhaustif et de couvrir chaque " -"fonctionnalités, ni même toutes les fonctionnalités les plus utilisées. Il " -"cherche, par contre, à introduire plusieurs des fonctionnalités les plus " -"notables et à vous donner une bonne idée de la saveur et du style du " -"langage. Après l'avoir lu, vous serez capable de lire et d'écrire des " -"modules et des programmes Python et vous serez prêts à en apprendre " -"d'avantage sur les modules de la bibliothèque Python décrits dans :ref:" -"`library-index`." +"fonctionnalité, ni même toutes les fonctionnalités les plus utilisées. Il " +"vise, en revanche, à introduire les fonctionnalités les plus notables et à " +"vous donner une bonne idée de la saveur et du style du langage. Après " +"l'avoir lu, vous serez capable de lire et d'écrire des modules et des " +"programmes Python et vous serez prêt à en apprendre davantage sur les " +"modules de la bibliothèque Python décrits dans :ref:`library-index`." #: ../Doc/tutorial/index.rst:40 msgid "The :ref:`glossary` is also worth going through." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 5e09d019..22726411 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -27,9 +27,9 @@ msgid "" "chapter will discuss some of the possibilities." msgstr "" "Il existe bien des moyens de présenter les sorties d'un programmes ; les " -"données peuvent être imprimées sous une forme lisible par un être humain, ou " +"données peuvent être affichées sous une forme lisible par un être humain ou " "sauvegardées dans un fichier pour une utilisation future. Ce chapitre " -"présentera donc diverses possibilités." +"présente quelques possibilités." #: ../Doc/tutorial/inputoutput.rst:15 msgid "Fancier Output Formatting" @@ -42,11 +42,11 @@ msgid "" "method of file objects; the standard output file can be referenced as ``sys." "stdout``. See the Library Reference for more information on this.)" msgstr "" -"Jusque là, nous avons rencontré deux moyens d'écrire des données : les " -"*déclarations d'expressions* et la fonction :func:`print`. (Une troisième " -"méthode consiste à utiliser la méthode :meth:`write` des fichiers, le " -"fichier de sortie standard peut être référence en tant que ``sys.stdout``. " -"Voyez le Guide de Référence de la Bibliothèque Standard pour en savoir plus.)" +"Jusqu'ici, nous avons rencontré deux moyens d'écrire des données : les " +"*déclarations d'expressions* et la fonction :func:`print`. Une troisième " +"méthode consiste à utiliser la méthode :meth:`write` des fichiers, avec le " +"fichier de sortie standard référencé en tant que ``sys.stdout``. Voyez le " +"Guide de Référence de la Bibliothèque Standard pour en savoir plus." #: ../Doc/tutorial/inputoutput.rst:22 msgid "" @@ -75,8 +75,7 @@ msgid "" "offers yet another way to substitute values into strings." msgstr "" "Le module :mod:`string` contient une classe :class:`~string.Template` qui " -"offre encore une autre façon de remplacer des valeurs au sein de chaînes de " -"caractères." +"permet aussi de remplacer des valeurs au sein de chaînes de caractères." #: ../Doc/tutorial/inputoutput.rst:33 msgid "" @@ -100,16 +99,16 @@ msgid "" "structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" -"La fonction :func:`str` est destinée à renvoyer des représentations de " -"valeurs qui soient lisibles par un être humain, alors que la fonction :func:" -"`repr` est destinée à générer des représentations qui puissent être lues par " -"l'interpréteur (ou forceront une :exc:`SyntaxError` s'il n'existe aucune " +"La fonction :func:`str` est destinée à représenter les valeurs sous une " +"forme lisible par un être humain, alors que la fonction :func:`repr` est " +"destinée à générer des représentations qui puissent être lues par " +"l'interpréteur (ou qui lèvera une :exc:`SyntaxError` s'il n'existe aucune " "syntaxe équivalente). Pour les objets qui n'ont pas de représentation " -"humaine spécifique, :func:`str` renverra la même valeur que :func:`repr`. " +"humaine spécifique, :func:`str` renvoie la même valeur que :func:`repr`. " "Beaucoup de valeurs, comme les nombres ou les structures telles que les " "listes ou les dictionnaires, ont la même représentation en utilisant les " -"deux fonctions. Les chaînes de caractères et les nombres à virgule " -"flottante, en revanche, ont deux représentations distinctes." +"deux fonctions. Les chaînes de caractères, en particulier, ont deux " +"représentations distinctes." #: ../Doc/tutorial/inputoutput.rst:46 msgid "Some examples::" @@ -140,14 +139,14 @@ msgid "" "(If you really want truncation you can always add a slice operation, as in " "``x.ljust(n)[:n]``.)" msgstr "" -"Cet exemple démontre l'utilisation de la méthode :meth:`str.rjust` des " -"chaînes de caractères, qui fait une justification à droite d'une chaîne dans " -"un champ d'une largeur donnée en ajoutant des espaces sur la gauche. Il " -"existe des méthodes similaires :meth:`str.ljust` et :meth:`str.center`. Ces " -"méthodes n'écrivent rien, elles renvoient simplement une nouvelle chaîne. Si " -"la chaîne passée en paramètre est trop longue, elle n'est pas tronquée mais " -"renvoyée sans modification ; ce qui peut déranger votre mise en page mais " -"est souvent préférable à l'alternative, qui pourrait mentir sur une valeur " +"Cet exemple illustre l'utilisation de la méthode :meth:`str.rjust` des " +"chaînes de caractères ; elle justifie à droite une chaîne dans un champ " +"d'une largeur donnée en ajoutant des espaces sur la gauche. Il existe des " +"méthodes similaires :meth:`str.ljust` et :meth:`str.center`. Ces méthodes " +"n'écrivent rien, elles renvoient simplement une nouvelle chaîne. Si la " +"chaîne passée en paramètre est trop longue, elle n'est pas tronquée mais " +"renvoyée sans modification ; cela peut chambouler votre mise en page mais " +"c'est souvent préférable à l'alternative, qui pourrait mentir sur une valeur " "(et si vous voulez vraiment tronquer vos valeurs, vous pouvez toujours " "utiliser une tranche, comme dans ``x.ljust(n)[:n]``)." @@ -163,7 +162,7 @@ msgstr "" #: ../Doc/tutorial/inputoutput.rst:124 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "" -"L'utilisation de base de la méthode :meth:`str.format` ressemble à cela : ::" +"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci : ::" #: ../Doc/tutorial/inputoutput.rst:129 msgid "" @@ -172,7 +171,7 @@ msgid "" "brackets can be used to refer to the position of the object passed into the :" "meth:`str.format` method. ::" msgstr "" -"Les accolades et les caractères qu'ils contiennent (appelés les champs de " +"Les accolades et les caractères à l'intérieur (appelés les champs de " "formatage) sont remplacés par les objets passés en paramètres à la méthode :" "meth:`str.format`. Un nombre entre accolades se réfère à la position de " "l'objet passé à la méthode :meth:`str.format`. ::" @@ -197,7 +196,7 @@ msgid "" "formatted::" msgstr "" "``'!a'`` (appliquer :func:`ascii`), ``'!s'`` (appliquer :func:`str`) et ``'!" -"r'`` (appliquer :func:`repr`)peuvent être utilisées pour convertir les " +"r'`` (appliquer :func:`repr`) peuvent être utilisées pour convertir les " "valeurs avant leur formatage : ::" #: ../Doc/tutorial/inputoutput.rst:161 @@ -206,10 +205,10 @@ msgid "" "allows greater control over how the value is formatted. The following " "example rounds Pi to three places after the decimal." msgstr "" -"Des caractères ``':'`` suivis d'une spécification de formatage peuvent " -"suivre le nom du champ. Ceci offre un niveau de contrôle plus fin sur la " -"façon dont les valeurs sont formatées. L'exemple suivant arrondit Pi à trois " -"décimales : ::" +"Un caractère ``':'`` suivi d'une spécification de formatage peuvent suivre " +"le nom du champ. Ceci offre un niveau de contrôle plus fin sur la façon dont " +"les valeurs sont formatées. L'exemple suivant arrondit Pi à trois chiffres " +"après la virgule (NdT : qui, en notation anglo-saxonne, est un point)." #: ../Doc/tutorial/inputoutput.rst:169 msgid "" @@ -226,19 +225,18 @@ msgid "" "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys ::" msgstr "" -"Si vous avez vraiment une longue chaîne de formatage que vous ne voulez pas " -"découper, ce serait bien de pouvoir référencer les variables à formater par " -"leur nom plutôt que par leur position. Cela peut être fait simplement en " -"passant un dictionnaire et en utilisant des crochets ``'[]'`` pour accéder " -"aux clés : ::" +"Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas " +"découper, il est possible de référencer les variables à formater par leur " +"nom plutôt que par leur position. Utilisez simplement un dictionnaire et la " +"notation entre crochets ``'[]'`` pour accéder aux clés : ::" #: ../Doc/tutorial/inputoutput.rst:190 msgid "" "This could also be done by passing the table as keyword arguments with the " "'**' notation. ::" msgstr "" -"On pourrait également faire ça en passant le tableau comme des arguments " -"nommés en utilisant la notation '**' ::" +"vous pouvez obtenir le même résultat en passant le tableau comme des " +"arguments nommés en utilisant la notation '**' ::" #: ../Doc/tutorial/inputoutput.rst:197 msgid "" @@ -246,15 +244,15 @@ msgid "" "`vars`, which returns a dictionary containing all local variables." msgstr "" "C'est particulièrement utile en combinaison avec la fonction native :func:" -"`vars`, qui renvoie un dictionnaire contenant toutes les variables locales." +"`vars` qui renvoie un dictionnaire contenant toutes les variables locales." #: ../Doc/tutorial/inputoutput.rst:200 msgid "" "For a complete overview of string formatting with :meth:`str.format`, see :" "ref:`formatstrings`." msgstr "" -"Pour avoir une vue complète du formatage des chaînes de caractères avec la " -"méthode :meth:`str.format`, voyez : :ref:`formatstrings`." +"Pour avoir une description complète du formatage des chaînes de caractères " +"avec la méthode :meth:`str.format`, lisez : :ref:`formatstrings`." #: ../Doc/tutorial/inputoutput.rst:205 msgid "Old string formatting" @@ -268,15 +266,15 @@ msgid "" "formatting operation. For example::" msgstr "" "L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il " -"interprète l'argument de gauche un peu comme une chaîne de formatage d'une " -"fonction :c:func:`sprintf` à appliquer à l'argument de droite, et renvoie la " -"chaîne résultant de cette opération de formatage. Par exemple : ::" +"interprète l'argument de gauche pratiquement comme une chaîne de formatage " +"de la fonction :c:func:`sprintf` à appliquer à l'argument de droite, et il " +"renvoie la chaîne résultant de cette opération de formatage. Par exemple : ::" #: ../Doc/tutorial/inputoutput.rst:216 msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" -"Vous trouverez plus d'informations dans la section :ref:`old-string-" +"Vous trouvez plus d'informations dans la section :ref:`old-string-" "formatting`." #: ../Doc/tutorial/inputoutput.rst:222 @@ -288,8 +286,8 @@ msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two arguments: ``open(filename, mode)``." msgstr "" -":func:`open` renvoie un :term:`objet fichier`, et est le plus souvent " -"utilisé avecdeux arguments : ``open(filename, mode)``." +"La fonction :func:`open` renvoie un :term:`objet fichier` et est le plus " +"souvent utilisée avec deux arguments : ``open(nomfichier, mode)``." #: ../Doc/tutorial/inputoutput.rst:240 msgid "" @@ -302,14 +300,14 @@ msgid "" "reading and writing. The *mode* argument is optional; ``'r'`` will be " "assumed if it's omitted." msgstr "" -"Le premier argument est une chaîne contenant le nom du fichier. Le second " +"Le premier argument est une chaîne contenant le nom du fichier. Le deuxième " "argument est une autre chaîne contenant quelques caractères décrivant la " -"façon dont le fichier sera utilisé. *mode* peut être ``'r'`` quand le " -"fichier ne sera accédé qu'en lecture, ``'w'`` en écriture seulement (un " -"fichier existant portant le même nom sera alors écrasé), et ``'a'`` ouvre le " -"fichier en mode ajout (toute donnée écrite dans le fichier est " -"automatiquement ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/" -"écriture. L'argument *mode* est optionnel ; sa valeur par défaut est ``'r'``." +"façon dont le fichier est utilisé. *mode* peut être ``'r'`` quand le fichier " +"n'est accédé qu'en lecture, ``'w'`` en écriture seulement (un fichier " +"existant portant le même nom sera alors écrasé) et ``'a'`` ouvre le fichier " +"en mode ajout (toute donnée écrite dans le fichier est automatiquement " +"ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/écriture. " +"L'argument *mode* est optionnel, sa valeur par défaut est ``'r'``." #: ../Doc/tutorial/inputoutput.rst:249 msgid "" @@ -320,14 +318,14 @@ msgid "" "`binary mode`: now the data is read and written in the form of bytes " "objects. This mode should be used for all files that don't contain text." msgstr "" -"Normalement, les fichiers sont ouverts en :dfn:`mode texte`, c'est à dire " +"Normalement, les fichiers sont ouverts en :dfn:`mode texte`, c'est-à-dire " "que vous lisez et écrivez des chaînes de caractères depuis et dans ce " -"fichier, qui y sont encodées avec un encodage donné. Si aucun encodage n'est " -"spécifié, l'encodage par défaut dépendra de la plateforme (voir :func:" -"`open`). ``'b'`` collé à la fin du mode indique que le fichier doit être " -"ouvert en :dfn:`mode binaire` c'est à dire que les données sont lues et " -"écrites sous formes d'octets. Ce mode est à utiliser pour les fichiers " -"contenant autre chose que du texte." +"fichier, suivant un encodage donné. Si aucun encodage n'est spécifié, " +"l'encodage par défaut dépend de la plateforme (voir :func:`open`). ``'b'`` " +"collé à la fin du mode indique que le fichier doit être ouvert en :dfn:`mode " +"binaire` c'est-à-dire que les données sont lues et écrites sous formes " +"d'octets (type *bytes*). Ce mode est à utiliser pour les fichiers contenant " +"autre chose que du texte." #: ../Doc/tutorial/inputoutput.rst:256 msgid "" @@ -341,12 +339,13 @@ msgid "" msgstr "" "En mode texte, le comportement par défaut, à la lecture, est de convertir " "les fin de lignes spécifiques à la plateforme (``\\n`` sur Unix, ``\\r\\n`` " -"sur windows etc...) en simples ``\\n``. Lors de l'écriture, le comprennent " -"par défaut est d'appliquer l'opération contraire : les ``\\n`` sont " -"convertis dans leur équivalent sur la plateforme courante. Ces modifications " +"sur Windows etc...) en simples ``\\n``. Lors de l'écriture, le comportement " +"par défaut est d'appliquer l'opération inverse : les ``\\n`` sont convertis " +"dans leur équivalent sur la plateforme courante. Ces modifications " "effectuées automatiquement sont normales pour du texte mais détérioreraient " -"des données binaires comme un fichier :file:`JPEG` ou :file:`EXE`. Soyez " -"particulièrement attentifs à ouvrir ces fichiers binaires en mode binaire." +"des données binaires contenues dans un fichier de type :file:`JPEG` ou :file:" +"`EXE`. Soyez particulièrement attentifs à ouvrir ces fichiers binaires en " +"mode binaire." #: ../Doc/tutorial/inputoutput.rst:268 msgid "Methods of File Objects" @@ -357,8 +356,8 @@ msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." msgstr "" -"Les derniers exemples de cette section supposeront qu'un objet fichier " -"appelé ``f`` a déjà été créé." +"Les derniers exemples de cette section supposent qu'un objet fichier appelé " +"``f`` a déjà été créé." #: ../Doc/tutorial/inputoutput.rst:273 msgid "" @@ -370,13 +369,13 @@ msgid "" "Otherwise, at most *size* bytes are read and returned. If the end of the " "file has been reached, ``f.read()`` will return an empty string (``''``). ::" msgstr "" -"Pour lire le contenu d'un fichier, appelez ``f.read(size)``, qui lit une " +"Pour lire le contenu d'un fichier, appelez ``f.read(taille)`` : elle lit une " "certaine quantité de données et les donne sous la forme d'une chaîne (en " -"mode texte) ou dans un objet *bytes* (en mode binaire). *size* est un " -"argument numérique optionnel. Quand *size* est omis ou négatif, le contenu " +"mode texte) ou dans un objet *bytes* (en mode binaire). *taille* est un " +"argument numérique optionnel. Quand *taille* est omis ou négatif, le contenu " "entier du fichier est lu et donné, c'est votre problème si le fichier est " "deux fois plus gros que la mémoire de votre machine. Sinon, un maximum de " -"*size* octets sont lus et rendus. Lorsque la fin du fichier est atteinte, " +"*taille* octets sont lus et donnés. Lorsque la fin du fichier est atteinte, " "``f.read()`` renvoie une chaîne vide (``''``). ::" #: ../Doc/tutorial/inputoutput.rst:287 @@ -389,36 +388,36 @@ msgid "" "``'\\n'``, a string containing only a single newline. ::" msgstr "" "``f.readline()`` lit une seule ligne du fichier ; un caractère de fin de " -"ligne (``\\n``) est laissé à la fin de la chaîne, et n'est omis que sur la " +"ligne (``\\n``) est laissé à la fin de la chaîne. Il n'est omis que sur la " "dernière ligne du fichier si celui-ci ne se termine pas un caractère de fin " "de ligne. Ceci permet de rendre la valeur de retour non ambigüe : si ``f." "readline()`` renvoie une chaîne vide, c'est que la fin du fichier a été " -"atteinte, alors qu'une ligne vide est représentée par ``'\\n'``, une chaîne " -"de caractères ne contenant qu'une fin de ligne. ::" +"atteinte, alors qu'une ligne vide est représentée par ``'\\n'`` (une chaîne " +"de caractères ne contenant qu'une fin de ligne). ::" #: ../Doc/tutorial/inputoutput.rst:301 msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" msgstr "" -"Une autre approche de lecture des lignes est de faire une boucle sur l'objet " -"fichier. Cela est plus efficace en terme de gestion mémoire, plus rapide, et " -"donne un code plus simple : ::" +"Pour lire ligne à ligne, vous pouvez aussi boucler sur l'objet fichier. " +"C'est plus efficace en terme de gestion mémoire, plus rapide et donne un " +"code plus simple : ::" #: ../Doc/tutorial/inputoutput.rst:310 msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." msgstr "" -"Pour lire toutes les lignes d'un fichier, il est aussi possible d'utiliser " -"``list(f)`` ou ``f.readlines()``." +"Pour construire une liste avec toutes les lignes d'un fichier, il est aussi " +"possible d'utiliser ``list(f)`` ou ``f.readlines()``." #: ../Doc/tutorial/inputoutput.rst:313 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" msgstr "" -"``f.write(string)`` écrit le contenu de *string* dans le fichier, et renvoie " +"``f.write(chaine)`` écrit le contenu de *chaine* dans le fichier et renvoie " "le nombre de caractères écrits. ::" #: ../Doc/tutorial/inputoutput.rst:319 @@ -426,8 +425,8 @@ msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" -"D'autres types doivent être convertis, soit en une chaîne (en mode texte) ou " -"un objet *bytes* (en mode binaire), avant de les écrire : ::" +"Les autres types doivent être convertis, soit en une chaîne (en mode texte), " +"soit en objet *bytes* (en mode binaire) avant de les écrire : ::" #: ../Doc/tutorial/inputoutput.rst:327 msgid "" @@ -436,8 +435,8 @@ msgid "" "in binary mode and an opaque number when in text mode." msgstr "" "``f.tell()`` renvoie un entier indiquant la position actuelle dans le " -"fichier, mesurée en octets à partir du début du fichier, lorsque le fichier " -"est ouvert en mode binaire, ou un nombre obscure en mode texte." +"fichier, mesurée en octets à partir du début du fichier lorsque le fichier " +"est ouvert en mode binaire, ou un nombre obscur en mode texte." #: ../Doc/tutorial/inputoutput.rst:331 msgid "" @@ -449,12 +448,12 @@ msgid "" "*from_what* can be omitted and defaults to 0, using the beginning of the " "file as the reference point. ::" msgstr "" -"Pour modifier la position dans le fichier, utilisez ``f.seek(offset, " -"from_what)``. Laposition est calculée en ajoutant *offset* à un point de " -"référence ; ce point de référence est sélectionné par l'argument " -"*from_what* : 0 pour le début du fichier, 1 pour la position actuelle, et 2 " -"pour la fin du fichier. *from_what* peut être omis et sa valeur par défaut " -"est 0, utilisant le début du fichier comme point de référence : ::" +"Pour modifier la position dans le fichier, utilisez ``f.seek(decalage, " +"a_partir_de)``. La position est calculée en ajoutant *decalage* à un point " +"de référence ; ce point de référence est déterminé par l'argument " +"*a_partir_de* : 0 pour le début du fichier, 1 pour la position actuelle et 2 " +"pour la fin du fichier. *a_partir_de* peut être omis et sa valeur par défaut " +"est 0 (Python utilise le début du fichier comme point de référence) : ::" #: ../Doc/tutorial/inputoutput.rst:350 msgid "" @@ -467,9 +466,9 @@ msgstr "" "Sur un fichier en mode texte (ceux ouverts sans ``b`` dans le mode), seuls " "les changements de position relatifs au début du fichier sont autorisés " "(sauf une exception : se rendre à la fin du fichier avec ``seek(0, 2)``) et " -"les seuls valeurs possible pour le paramètre *offset* sont les valeurs " +"les seules valeurs possibles pour le paramètre *decalage* sont les valeurs " "renvoyées par ``f.tell()``, ou zéro. Toute autre valeur pour le paramètre " -"*offset* engendrera un comportement indéfini." +"*decalage* produit un comportement indéfini." #: ../Doc/tutorial/inputoutput.rst:357 msgid "" @@ -509,7 +508,7 @@ msgstr "" #: ../Doc/tutorial/inputoutput.rst:385 msgid "Saving structured data with :mod:`json`" -msgstr "Sauvegarder des données structurées avec le module :mod:`json`" +msgstr "Sauvegarde de données structurées avec le module :mod:`json`" #: ../Doc/tutorial/inputoutput.rst:389 msgid "" @@ -521,12 +520,13 @@ msgid "" "serializing by hand becomes complicated." msgstr "" "Les chaînes de caractères peuvent facilement être écrites dans un fichier et " -"relues. Les nombres nécessitent un peu plus d'efforts, car la méthode :meth:" -"`read` ne renvoie que des chaînes, qui doivent donc être passées à une " +"relues. Les nombres nécessitent un peu plus d'effort, car la méthode :meth:" +"`read` ne renvoie que des chaînes. Elles doivent donc être passées à une " "fonction comme :func:`int`, qui prend une chaîne comme ``'123'`` en entrée " "et renvoie sa valeur numérique 123. Mais dès que vous voulez enregistrer des " "types de données plus complexes comme des listes, des dictionnaires ou des " -"instances de classes, les choses se compliquent beaucoup plus." +"instances de classes, le traitement lecture/écriture à la main devient vite " +"compliqué." #: ../Doc/tutorial/inputoutput.rst:396 msgid "" @@ -541,15 +541,15 @@ msgid "" "file or data, or sent over a network connection to some distant machine." msgstr "" "Plutôt que de passer son temps à écrire et déboguer du code permettant de " -"sauvegarder des types de données compliquées, Python permet d'utiliser `JSON " +"sauvegarder des types de données compliqués, Python permet d'utiliser `JSON " "(JavaScript Object Notation) `_, un format répandu de " -"représentation et d'échange de données. Le module standard appellé :mod:" -"`json` peut transformer des hiérarchies de données Python en leur " -"représentation sous forme de chaîne de caractère. Ce processus est nommé :" +"représentation et d'échange de données. Le module standard appelé :mod:" +"`json` peut transformer des données hiérarchisées Python en une " +"représentation sous forme de chaîne de caractères. Ce processus est nommé :" "dfn:`sérialiser`. Reconstruire les données à partir de leur représentation " -"sous forme de chaîne est appelé :dfn:`déserialiser`. Entre sa serialisation " -"et sa déserialisation, la chaîne représentant les données peuvent avoir été " -"stockées ou transmises à une autre machine." +"sous forme de chaîne est appelé :dfn:`déserialiser`. Entre sa sérialisation " +"et sa dé-sérialisation, la chaîne représentant les données peut avoir été " +"stockée ou transmise à une autre machine." #: ../Doc/tutorial/inputoutput.rst:407 msgid "" @@ -557,17 +557,17 @@ msgid "" "exchange. Many programmers are already familiar with it, which makes it a " "good choice for interoperability." msgstr "" -"Le format JSON se retrouve communément dans les applications modernes pour " -"échanger des données. Beaucoup de développeurs sont déjà familier avec le " -"JSON, en faisant un format de prédilection pour l'interopérabilité." +"Le format JSON est couramment utilisé dans les applications modernes pour " +"échanger des données. Beaucoup de développeurs le maîtrise, ce qui en fait " +"un format de prédilection pour l'interopérabilité." #: ../Doc/tutorial/inputoutput.rst:411 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" -"Si vous avez un objet ``x``, vous pouvez simplement voir sa représentation " -"JSON ::" +"Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en " +"tapant simplement : ::" #: ../Doc/tutorial/inputoutput.rst:417 msgid "" @@ -575,10 +575,10 @@ msgid "" "dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " "a :term:`text file` object opened for writing, we can do this::" msgstr "" -"Une variation de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " +"Une variante de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " "sérialise simplement l'objet donné vers un :term:`fichier texte `. Donc si ``f`` est un :term:`fichier texte ` ouvert en " -"écriture, il devient possible de faire : ::" +"écriture, il est possible de faire : ::" #: ../Doc/tutorial/inputoutput.rst:423 msgid "" @@ -586,7 +586,7 @@ msgid "" "been opened for reading::" msgstr "" "Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` " -"ouverten lecture : ::" +"ouvert en lecture : ::" #: ../Doc/tutorial/inputoutput.rst:428 msgid "" @@ -595,8 +595,8 @@ msgid "" "effort. The reference for the :mod:`json` module contains an explanation of " "this." msgstr "" -"Cette méthode de serialisation peut sérialiser des listes et des " -"dictionnaires, mais sérialiser d'autres types de données nécessité un peu " +"Cette méthode de sérialisation peut sérialiser des listes et des " +"dictionnaires. Mais sérialiser d'autres types de données requiert un peu " "plus de travail. La documentation du module :mod:`json` explique comment " "faire." @@ -613,9 +613,10 @@ msgid "" "pickle data coming from an untrusted source can execute arbitrary code, if " "the data was crafted by a skilled attacker." msgstr "" -"À l'inverse de :ref:`JSON `, *pickle* est un protocole permettant " -"la serialisation d'objets Python arbitrairement complexes. Il est donc " -"spécifique à Python et ne peut être utilisé pour communiquer avec d'autres " -"langages. Il n'est aussi pas sans failles : desérialiser des données au " -"format pickle provenant d'une source malveillante et particulièrement habile " -"pourrait mener exécuter du code arbitraire." +"Au contraire de :ref:`JSON `, *pickle* est un protocole permettant " +"la sérialisation d'objets Python arbitrairement complexes. Il est donc " +"spécifique à Python et ne peut pas être utilisé pour communiquer avec " +"d'autres langages. Il est aussi, par défaut, une source de vulnérabilité : " +"dé-sérialiser des données au format pickle provenant d'une source " +"malveillante et particulièrement habile peut mener à exécuter du code " +"arbitraire." diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 4b1776b1..c9646872 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -30,14 +30,14 @@ msgid "" msgstr "" "Certaines versions de l'interpréteur Python prennent en charge l'édition de " "la ligne d'entrée courante et la substitution d'historique, similaires aux " -"facilités que l'on trouve dans le shell Korn et dans le shell GNU Bash. " -"C'est implémenté en utilisant la bibliothèque `GNU Readline`_, qui supporte " -"plusieurs styles d'édition. La bibliothèque a sa propre documentation qui ne " -"va pas être dupliquée ici." +"facilités que l'on trouve dans le shell Korn et dans le shell GNU Bash. Ces " +"implémentations utilisent la bibliothèque `GNU Readline`_, qui gère " +"plusieurs styles d'édition. La bibliothèque a sa propre documentation, nous " +"ne la dupliquons pas ici." #: ../Doc/tutorial/interactive.rst:17 msgid "Tab Completion and History Editing" -msgstr "Complément Automatique et édition de l'historique" +msgstr "Complétion automatique et édition de l'historique" #: ../Doc/tutorial/interactive.rst:19 msgid "" @@ -53,10 +53,9 @@ msgid "" "python_history` in your user directory. The history will be available again " "during the next interactive interpreter session." msgstr "" -"La complétion de variables et de noms de modules est :ref:`automatiquement " -"activé ` lors du démarrage de l'interpréteur, tel que la " -"touche :kbd:`Tab` invoque la fonction de complétion, donc taper la touche :" -"kbd:`Tab` deux fois de suite suggère les options disponibles ; la recherche " +"La complétion de noms de variables et de modules est :ref:`automatiquement " +"activée ` au démarrage de l'interpréteur. Ainsi, la " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " "s'effectue dans les noms d'instructions Python, les noms des variables " "locales et les noms de modules disponibles. Pour les expressions pointées " "telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " @@ -65,8 +64,8 @@ msgstr "" "du code de l'application si un objet disposant d'une méthode :meth:" "`__getattr__` fait partie de l'expression. La configuration par défaut " "sauvegarde l'historique dans un fichier nommé :file:`.python_history` dans " -"votre dossier d'utilisateur. L'historique sera à nouveau disponible lors de " -"la prochaine session interactive." +"votre dossier d'utilisateur. L'historique est ainsi conservé entre les " +"sessions interactives successives." #: ../Doc/tutorial/interactive.rst:36 msgid "Alternatives to the Interactive Interpreter" @@ -82,12 +81,12 @@ msgid "" "parentheses, quotes, etc., would also be useful." msgstr "" "Cette facilité constitue un énorme pas en avant comparé aux versions " -"précédentes de l'interpréteur ; toutefois, certains souhaits sont laissés de " -"côté : ce serait bien si une indentation correcte était proposée sur les " -"lignes de continuation (l'analyseur sait si une indentation doit suivre). Le " -"mécanisme de complétion devrait utiliser la table de symboles de " -"l'interpréteur. Une commande pour vérifier (ou même suggérer) les " -"correspondances de parenthèses, de guillemets..., serait également utile." +"précédentes de l'interpréteur. Toutefois, il reste des fonctions à " +"implémenter comme l'indentation correcte sur les lignes de continuation " +"(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " +"complétion devrait utiliser la table de symboles de l'interpréteur. Une " +"commande pour vérifier (ou même suggérer) les correspondances de " +"parenthèses, de guillemets..., serait également utile." #: ../Doc/tutorial/interactive.rst:45 msgid "" @@ -97,8 +96,8 @@ msgid "" "customized and embedded into other applications. Another similar enhanced " "interactive environment is bpython_." msgstr "" -"Une alternative améliorée de l'interpréteur interactif qui a été développée " -"depuis maintenant quelques temps est IPython_, qui fournit la complétude, " +"Une alternative améliorée de l'interpréteur interactif est développée depuis " +"maintenant quelques temps : IPython_. Il fournit la complétion, " "l'exploration d'objets et une gestion avancée de l'historique. Il peut " "également être personnalisé en profondeur et embarqué dans d'autres " "applications. Un autre environnement interactif amélioré similaire est " diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 73ea5087..9f3580c7 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -18,11 +18,11 @@ msgstr "" #: ../Doc/tutorial/interpreter.rst:5 msgid "Using the Python Interpreter" -msgstr "Utiliser l'interpréteur Python" +msgstr "Mode d'emploi de l'interpréteur Python" #: ../Doc/tutorial/interpreter.rst:11 msgid "Invoking the Interpreter" -msgstr "Invoquer l'interpréteur" +msgstr "Lancement de l'interpréteur" #: ../Doc/tutorial/interpreter.rst:13 msgid "" @@ -44,9 +44,9 @@ msgid "" "is a popular alternative location.)" msgstr "" "dans le shell. [#]_ Le choix du répertoire où se trouve l'interpréteur étant " -"uneoption d'installation, d'autres chemins sont possibles; voyez avec votre " -"guru Python local ou votre administrateur système. (Par exemple, :file:`/usr/" -"local/python` est une localisation courante.)" +"une option d'installation, d'autres chemins sont possibles ; voyez avec " +"votre gourou Python local ou votre administrateur système (par exemple, :" +"file:`/usr/local/python` est un endroit courant)." #: ../Doc/tutorial/interpreter.rst:26 msgid "" @@ -67,10 +67,10 @@ msgid "" "exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" -"Taper un caractère de fin de fichier (:kbd:`Ctrl-D` sous Unix, :kbd:`Ctrl-Z` " -"sous Windows) suive à une invite de commande primaire provoque la fermeture " -"de l'interpréteur avec un statut d'erreur nul. Si cela ne fonctionne pas, " -"vous pouvez fermer l'interpréteur en tapant la commande ``quit()``." +"Tapez un caractère de fin de fichier (:kbd:`Ctrl-D` sous Unix, :kbd:`Ctrl-Z` " +"sous Windows) dans une invite de commande primaire provoque la fermeture de " +"l'interpréteur avec un code de sortie nul. Si cela ne fonctionne pas, vous " +"pouvez fermer l'interpréteur en tapant la commande ``quit()``." #: ../Doc/tutorial/interpreter.rst:38 msgid "" @@ -84,14 +84,14 @@ msgid "" "backspace to remove characters from the current line." msgstr "" "Les fonctionnalités d'édition de l'interpréteur comprennent l'édition " -"interactive, la substitution depuis l'historique, et la complétion, sur les " -"systèmes qui gèrent readline. Le moyen le plus rapide de tester si l'édition " -"de la ligne decommande est gérée est peut-être de taper :kbd:`Control-P` " -"suite au premier invite de commande que vous rencontrez. Si cela bip, vous " -"disposez de l'édition de la ligne de commande; voyez l'appendice :ref:`tut-" +"interactive, la substitution depuis l'historique et la complétion sur les " +"systèmes qui gèrent *readline*. Un moyen rapide de tester comment est gérée " +"l'édition de la ligne de commande, c'est de taper :kbd:`Control-P` à la " +"première invite de commande que vous rencontrez. Si cela bipe, vous disposez " +"de l'édition de la ligne de commande ; lisez l'appendice :ref:`tut-" "interacting` pour une introduction aux touches. Si rien ne semble se " "produire ou si ``^P`` s'affiche, l'édition de la ligne de commande n'est pas " -"disponible; vous serez seulement en mesure d'utiliser la touche retour " +"disponible ; vous serez seulement en mesure d'utiliser la touche retour " "arrière pour supprimer des caractères de la ligne courante." #: ../Doc/tutorial/interpreter.rst:47 @@ -101,11 +101,11 @@ msgid "" "interactively; when called with a file name argument or with a file as " "standard input, it reads and executes a *script* from that file." msgstr "" -"L'interpréteur opère de façon similaire au shell Unix : lorsqu'il est appelé " -"avec l'entrée standard connectée à un périphérique tty, il lit et exécute " -"les commandes de façon interactive; lorsqu'il est appelé avec un nom de " -"fichier en argument ou avec un fichier comme entrée standard, il lit et " -"exécute un *script* depuis ce fichier." +"L'interpréteur fonctionne de façon similaire au shell Unix : lorsqu'il est " +"appelé avec l'entrée standard connectée à un périphérique tty, il lit et " +"exécute les commandes de façon interactive ; lorsqu'il est appelé avec un " +"nom de fichier en argument ou avec un fichier comme entrée standard, il lit " +"et exécute un *script* depuis ce fichier." #: ../Doc/tutorial/interpreter.rst:52 msgid "" @@ -129,7 +129,7 @@ msgid "" "as if you had spelled out its full name on the command line." msgstr "" "Certains modules Python sont aussi utiles en tant que scripts. Ils peuvent " -"être appelé avec ``python -m module [arg] ...`` qui exécute le fichier " +"être appelés avec ``python -m module [arg] ...`` qui exécute le fichier " "source de *module* comme si vous aviez tapé son nom complet dans la ligne de " "commande." @@ -171,15 +171,15 @@ msgstr "" "Lorsqu'ils sont connus de l'interpréteur, le nom du script et les arguments " "additionnels sont représentés sous forme d'une liste assignée à la variable " "``argv`` du module ``sys``. Vous pouvez y accéder en exécutant ``import " -"sys``. La liste contient au minimum un élément; quand aucun script ni aucun " -"arguments ne sont donnés, ``sys.argv[0]`` est une chaine vide. Quand ``'-'`` " +"sys``. La liste contient au minimum un élément ; quand aucun script ni aucun " +"argument n'est donné, ``sys.argv[0]`` est une chaine vide. Quand ``'-'`` " "(qui représente l'entrée standard) est passé comme nom de script, ``sys." "argv[0]`` contient ``'-'``. Quand :option:`-c` *commande* est utilisé, ``sys." "argv[0]`` contient ``'-c'``. Enfin, quand :option:`-m` *module* est utilisé, " "le nom complet du module est assigné à ``sys.argv[0]``. Les options trouvées " "après :option:`-c` *commande* ou :option:`-m` *module* ne sont pas lues " "comme options de l'interpréteur Python mais laissées dans ``sys.argv`` pour " -"être utilisée par le module ou la commande." +"être utilisées par le module ou la commande." #: ../Doc/tutorial/interpreter.rst:90 msgid "Interactive Mode" @@ -208,7 +208,7 @@ msgid "" "example, take a look at this :keyword:`if` statement::" msgstr "" "Les lignes de continuation sont nécessaires pour entrer une construction " -"multi-lignes. Par exemple, regardez cette instruction :keyword:`if` ::" +"multi-lignes. Par exemple, regardez cette instruction :keyword:`if` ::" #: ../Doc/tutorial/interpreter.rst:119 msgid "For more on interactive mode, see :ref:`tut-interac`." @@ -233,14 +233,15 @@ msgid "" "properly, your editor must recognize that the file is UTF-8, and it must use " "a font that supports all the characters in the file." msgstr "" -"Par défaut Python considère que ses fichiers source sont encodés en UTF-8. " +"Par défaut, Python considère que ses fichiers sources sont encodés en UTF-8. " "Dans cet encodage, les caractères de la plupart des langues peuvent être " -"utilisés ensemble dans les chaînes de caractères, identifiants, et " -"commentaires, bien que la bibliothèque standard n'utilise que des caractères " -"ASCII dans ses identifiants, une bonne habitude que tout code portable " -"devrait suivre. Pour afficher correctement tous ces caractères, votre " -"éditeur doit reconnaître que le fichier est en UTF-8, et utiliser une fonte " -"de caractère qui comprend tous les caractères utilisés dans le fichier." +"utilisés ensemble dans les chaînes de caractères, identifiants et " +"commentaires. Notez que la bibliothèque standard n'utilise que des " +"caractères ASCII dans ses identifiants et que nous considérons que c'est une " +"bonne habitude que tout code portable devrait suivre. Pour afficher " +"correctement tous ces caractères, votre éditeur doit reconnaître que le " +"fichier est en UTF-8 et utiliser une police qui comprend tous les caractères " +"utilisés dans le fichier." #: ../Doc/tutorial/interpreter.rst:141 msgid "" @@ -251,7 +252,7 @@ msgstr "" "Il est possible d'utiliser un autre encodage dans un fichier source Python. " "La meilleure façon de faire est de placer un commentaire spécial " "supplémentaire juste après le ``#!`` pour définir l'encodage du fichier " -"source::" +"source ::" #: ../Doc/tutorial/interpreter.rst:147 msgid "" @@ -293,6 +294,6 @@ msgid "" "executable named ``python``, so that it does not conflict with a " "simultaneously installed Python 2.x executable." msgstr "" -"Sur Unix, l'interpréteur Python 3.x n'est pas, par défaut, installé sous le " -"nom de ``python`` pour ne pas entrer en conflit avec une éventuelle " +"Sous Unix, par défaut, l'interpréteur Python 3.x n'est pas installé sous le " +"nom de ``python`` afin de ne pas entrer en conflit avec une éventuelle " "installation de Python 2.x." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 01d0d537..b50fa5ee 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -49,13 +49,13 @@ msgid "" msgstr "" "Beaucoup d'exemples de ce manuel, même ceux saisis à l'invite de " "l'interpréteur, incluent des commentaires. Les commentaires en Python " -"commencent avec un caractère dièse, ``#``, et s'étendent jusqu'à la fin de " -"la ligne. Un commentaire peut apparaître au début d'une ligne ou à la suite " -"d'un espace ou de code, mais pas à l'intérieur d'une chaîne de caractères " -"littérale. Un caractère dièse à l'intérieur d'une chaîne de caractères est " -"juste un caractère dièse. Comme les commentaires ne servent qu'à expliquer " -"le code et ne sont pas interprétés par Python, ils peuvent être ignorés " -"lorsque vous tapez les exemples." +"commencent avec un caractère croisillon, ``#``, et s'étendent jusqu'à la fin " +"de la ligne. Un commentaire peut apparaître au début d'une ligne ou à la " +"suite d'un espace ou de code, mais pas à l'intérieur d'une chaîne de " +"caractères littérale. Un caractère croisillon à l'intérieur d'une chaîne de " +"caractères est juste un caractère croisillon. Comme les commentaires ne " +"servent qu'à expliquer le code et ne sont pas interprétés par Python, ils " +"peuvent être ignorés lorsque vous tapez les exemples." #: ../Doc/tutorial/introduction.rst:22 msgid "Some examples::" @@ -63,7 +63,7 @@ msgstr "Quelques exemples : ::" #: ../Doc/tutorial/introduction.rst:33 msgid "Using Python as a Calculator" -msgstr "Utiliser Python comme une calculatrice" +msgstr "Utilisation de Python comme une calculatrice" #: ../Doc/tutorial/introduction.rst:35 msgid "" @@ -99,7 +99,7 @@ msgid "" msgstr "" "Les nombre entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " "alors que les décimaux (comme ``5.0``, ``1.6``) sont de type :class:`float`. " -"Plus de détails sont données sur les types numériques plus loin dans ce " +"Vous trouvez plus de détails sur les types numériques plus loin dans ce " "tutoriel." #: ../Doc/tutorial/introduction.rst:63 @@ -109,17 +109,17 @@ msgid "" "`` operator; to calculate the remainder you can use ``%``::" msgstr "" "Les divisions (``/``) donnent toujours des :class:`float`. Utilisez " -"l'opérateur ``//`` pour effectuer des divisions entières, et donc obtenir un " -"résultat entier. Pour obtenir le reste de cette division entière, utilisez " -"l'opérateur ``%`` ::" +"l'opérateur ``//`` pour effectuer des divisions entières et donc obtenir un " +"résultat entier. Pour obtenir le reste d'une division entière, utilisez " +"l'opérateur ``%`` : ::" #: ../Doc/tutorial/introduction.rst:77 msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" -"Avec Python il est possible de calculer des puissances avec l'opérateur " -"``**`` [#]_ ::" +"En Python, il est possible de calculer des puissances avec l'opérateur " +"``**`` [#]_ : ::" #: ../Doc/tutorial/introduction.rst:84 msgid "" @@ -127,7 +127,7 @@ msgid "" "no result is displayed before the next interactive prompt::" msgstr "" "Le signe égal (``=``) est utilisé pour affecter une valeur à une variable. " -"Après cela, aucun résultat n'est affiché avant l'invite suivante : ::" +"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante : ::" #: ../Doc/tutorial/introduction.rst:92 msgid "" @@ -135,16 +135,18 @@ msgid "" "give you an error::" msgstr "" "Si une variable n'est pas \"définie\" (si aucune valeur ne lui a été " -"affecté), l'utiliser engendrera une erreur : ::" +"affectée), son utilisation produit une erreur : ::" #: ../Doc/tutorial/introduction.rst:100 msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" msgstr "" -"Il y a un support complet des nombres à virgule flottante ; les opérateurs " -"avec des types d'opérandes mélangés convertissent l'opérande entier en " -"virgule flottante : ::" +"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " +"le point *.* comme séparateur entre la partie entière et la partie décimale " +"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " +"opérandes de types différents convertissent l'opérande de type entier en " +"type virgule flottante : ::" #: ../Doc/tutorial/introduction.rst:108 msgid "" @@ -153,9 +155,8 @@ msgid "" "is somewhat easier to continue calculations, for example::" msgstr "" "En mode interactif, la dernière expression affichée est affectée à la " -"variable ``_``. Ce qui signifie que lorsque vous utilisez Python comme " -"calculatrice, il est parfois plus simple de continuer des calculs, par " -"exemple : ::" +"variable ``_``. Ainsi, lorsque vous utilisez Python comme calculatrice, cela " +"vous permet de continuer des calculs facilement, par exemple : ::" #: ../Doc/tutorial/introduction.rst:121 msgid "" @@ -165,7 +166,7 @@ msgid "" msgstr "" "Cette variable doit être considérée comme une variable en lecture seule par " "l'utilisateur. Ne lui affectez pas de valeur explicitement --- vous créeriez " -"ainsi une variable locale indépendante avec le même nom qui masquerait la " +"ainsi une variable locale indépendante, avec le même nom, qui masquerait la " "variable native et son fonctionnement magique." #: ../Doc/tutorial/introduction.rst:125 @@ -178,12 +179,12 @@ msgid "" msgstr "" "En plus des :class:`int` et des :class:`float`, il existe les :class:" "`~decimal.Decimal` et les :class:`~fractions.Fraction`. Python gère aussi " -"les :ref:`nombre complexes `, en utilisant le suffixe ``j`` ou " -"``J`` pour indiquer la partie imaginaire (tel que: ``3+5j``)." +"les :ref:`nombres complexes `, en utilisant le suffixe ``j`` " +"ou ``J`` pour indiquer la partie imaginaire (tel que ``3+5j``)." #: ../Doc/tutorial/introduction.rst:135 msgid "Strings" -msgstr "Les chaînes de caractères" +msgstr "Chaînes de caractères" #: ../Doc/tutorial/introduction.rst:137 msgid "" @@ -192,8 +193,8 @@ msgid "" "double quotes (``\"...\"``) with the same result [#]_. ``\\`` can be used " "to escape quotes::" msgstr "" -"Au delà des nombres, Python peut aussi manipuler des chaînes de caractères, " -"qui peuvent être exprimés de différentes manières. Elles peuvent être " +"En plus des nombres, Python sait aussi manipuler des chaînes de caractères, " +"qui peuvent être exprimées de différentes manières. Elles peuvent être " "écrites entre guillemets simples (``'...'``) ou entre guillemets (``\"..." "\"``) sans distinction [#]_. ``\\`` peut être utilisé pour protéger un " "guillemet : ::" @@ -210,13 +211,15 @@ msgid "" "and special characters::" msgstr "" "En mode interactif, l'interpréteur affiche les chaînes de caractères entre " -"guillemets et en protégant les guillemets et autres caractères spéciaux avec " -"des antislash. Bien que cela puisse paraître différent de ce qui a été donné " -"(les guillemets peuvent changer) La chaîne est affichée entre guillemets si " -"elle contient un guillemet simple mais aucun guillemet, sinon elle est " -"affichée entreguillemets simples. La fonction :func:`print` affiche les " -"chaînes de manière plus lisible, en retirant les guillemets et en affichant " -"les caractères spéciaux qui étaient protégées par un antislash : ::" +"guillemets. Les guillemets et autres caractères spéciaux sont protégés avec " +"des barres obliques inverses (*backslash* en anglais). Bien que cela puisse " +"être affiché différemment de ce qui a été entré (les guillemets peuvent " +"changer), les deux formats sont équivalents. La chaîne est affichée entre " +"guillemets si elle contient un guillemet simple et aucun guillemet, sinon " +"elle est affichée entre guillemets simples. La fonction :func:`print` " +"affiche les chaînes de manière plus lisible, en retirant les guillemets et " +"en affichant les caractères spéciaux qui étaient protégés par une barre " +"oblique inverse : ::" #: ../Doc/tutorial/introduction.rst:175 msgid "" @@ -224,9 +227,9 @@ msgid "" "characters, you can use *raw strings* by adding an ``r`` before the first " "quote::" msgstr "" -"Pour éviter que les caractères précédées d'un ``\\`` ne soient interprétés " -"comme étant spéciaux, utilisez les *chaînes brutes* (*raw strings*) en " -"préfixant la chaîne d'un ``r`` ::" +"Si vous ne voulez pas que les caractères précédés d'un ``\\`` soient " +"interprétés comme étant spéciaux, utilisez les *chaînes brutes* (*raw " +"strings* en anglais) en préfixant la chaîne d'un ``r`` : ::" #: ../Doc/tutorial/introduction.rst:185 msgid "" @@ -235,10 +238,10 @@ msgid "" "in the string, but it's possible to prevent this by adding a ``\\`` at the " "end of the line. The following example::" msgstr "" -"Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. On peut " -"utiliser les triples guillemets, simples ou doubles: ``'''...'''`` ou ``" +"Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. Utilisez " +"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" "\"\"\"...\"\"\"``. Les retours à la ligne sont automatiquement inclus, mais " -"on peut l'en empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " +"on peut l'empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " "suivant : ::" #: ../Doc/tutorial/introduction.rst:196 @@ -255,7 +258,7 @@ msgid "" "repeated with ``*``::" msgstr "" "Les chaînes peuvent être concaténées (collées ensemble) avec l'opérateur ``" -"+``, et répétées avec l'opérateur ``*``::" +"+`` et répétées avec l'opérateur ``*`` ::" #: ../Doc/tutorial/introduction.rst:211 msgid "" @@ -269,7 +272,7 @@ msgstr "" msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" -"Cela ne fonctionne cependant qu'avec les chaînes littérales, pas les " +"Cela ne fonctionne cependant qu'avec les chaînes littérales, pas avec les " "variables ni les expressions : ::" #: ../Doc/tutorial/introduction.rst:227 @@ -277,7 +280,7 @@ msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Pour concaténer des variables, ou des variables avec des chaînes littérales, " -"utilisez l'opérateur ``+``::" +"utilisez l'opérateur ``+`` : ::" #: ../Doc/tutorial/introduction.rst:232 msgid "" @@ -292,21 +295,21 @@ msgid "" "index 0. There is no separate character type; a character is simply a string " "of size one::" msgstr "" -"Les chaînes de caractères peuvent être indexées (accéder aux caractères par " -"leur position), le premiercaractère d'une chaîne est à la position 0. Il " -"n'existe pas de type distinct pour les caractères, un caractère est " -"simplement une chaîne de longueur 1 ::" +"Les chaînes de caractères peuvent être indexées (i.e. on peut accéder aux " +"caractères par leur position), le premier caractère d'une chaîne étant à la " +"position 0. Il n'existe pas de type distinct pour les caractères, un " +"caractère est simplement une chaîne de longueur 1 ::" #: ../Doc/tutorial/introduction.rst:249 msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" -"Les indices peuvent également être négatifs, pour effectuer un décompte en " -"partant de la droite. Par exemple : ::" +"Les indices peuvent également être négatifs, on compte alors en partant de " +"la droite. Par exemple : ::" #: ../Doc/tutorial/introduction.rst:258 msgid "Note that since -0 is the same as 0, negative indices start from -1." -msgstr "Notez que puisque -0 égal 0, les indices négatifs commencent par -1." +msgstr "Notez que, comme -0 égale 0, les indices négatifs commencent par -1." #: ../Doc/tutorial/introduction.rst:260 msgid "" @@ -315,8 +318,9 @@ msgid "" "substring::" msgstr "" "En plus d'accéder à un élément par son indice, il est aussi possible de " -"*trancher* une liste. Accéder à une chaîne par un indice permet d'obtenir un " -"caractère, alors que la *trancher* permet d'obtenir une sous-chaîne : ::" +"\"trancher\" (*slice* en anglais) une chaîne. Accéder à une chaîne par un " +"indice permet d'obtenir un caractère, *trancher* permet d'obtenir une sous-" +"chaîne : ::" #: ../Doc/tutorial/introduction.rst:268 msgid "" @@ -324,16 +328,16 @@ msgid "" "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" "Notez que le début est toujours inclus et la fin toujours exclue. Cela " -"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` ::" +"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` : ::" #: ../Doc/tutorial/introduction.rst:276 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"Les indices par tranches ont des valeurs par défaut utiles ; le premier " -"indice lorsqu'il est omis équivaut à zéro, le second à la taille de la " -"chaîne de caractères : ::" +"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " +"indice vaut zéro par défaut (i.e. lorsqu'il est omis), le deuxième " +"correspond par défaut à la taille de la chaîne de caractères : ::" #: ../Doc/tutorial/introduction.rst:286 msgid "" @@ -342,10 +346,10 @@ msgid "" "Then the right edge of the last character of a string of *n* characters has " "index *n*, for example::" msgstr "" -"Une façon de mémoriser la façon dont les tranches fonctionnent est de penser " +"Pour mémoriser la façon dont les tranches fonctionnent, vous pouvez imaginer " "que les indices pointent *entre* les caractères, le côté gauche du premier " "caractère ayant la position 0. Le côté droit du dernier caractère d'une " -"chaîne de *n* caractères a alors pour indice *n*, par exemple : ::" +"chaîne de *n* caractères a alors pour indice *n*. Par exemple : ::" #: ../Doc/tutorial/introduction.rst:297 msgid "" @@ -366,12 +370,12 @@ msgid "" "``word[1:3]`` is 2." msgstr "" "Pour des indices non négatifs, la longueur d'une tranche est la différence " -"entre ces indices, si les deux sont entre les bornes. Par exemple, la longue " -"de ``word[1:3]`` est 2." +"entre ces indices, si les deux sont entre les bornes. Par exemple, la " +"longueur de ``word[1:3]`` est 2." #: ../Doc/tutorial/introduction.rst:306 msgid "Attempting to use an index that is too large will result in an error::" -msgstr "Utiliser un indice trop grand générera une erreur : ::" +msgstr "Utiliser un indice trop grand produit une erreur : ::" #: ../Doc/tutorial/introduction.rst:313 msgid "" @@ -386,15 +390,15 @@ msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" -"Les chaînes de caractères, en Python ne peuvent pas être modifiées, on dit " -"quelles sont :term:`immutable`. Affecter une nouvelle valeur à un indice " +"Les chaînes de caractères, en Python, ne peuvent pas être modifiées. On dit " +"qu'elles sont :term:`immuable`\\s. Affecter une nouvelle valeur à un indice " "dans une chaîne produit une erreur : ::" #: ../Doc/tutorial/introduction.rst:331 msgid "If you need a different string, you should create a new one::" msgstr "" "Si vous avez besoin d'une chaîne différente, vous devez en créer une " -"autre : ::" +"nouvelle : ::" #: ../Doc/tutorial/introduction.rst:338 msgid "The built-in function :func:`len` returns the length of a string::" @@ -409,8 +413,8 @@ msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"Les chaînes de caractères sont des exemples de *types séquences*, et " -"supportent donc lesopérations classiques prises en charge par ces types." +"Les chaînes de caractères sont des exemples de *types séquences* ; elles " +"acceptent donc les opérations classiques prises en charge par ces types." #: ../Doc/tutorial/introduction.rst:353 msgid ":ref:`string-methods`" @@ -421,7 +425,7 @@ msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" -"Les chaînes de caractères supportent un large éventail de méthodes de " +"Les chaînes de caractères gèrent un large éventail de méthodes de " "transformations basiques et de recherche." #: ../Doc/tutorial/introduction.rst:356 @@ -448,7 +452,7 @@ msgstr "" #: ../Doc/tutorial/introduction.rst:366 msgid "Lists" -msgstr "Les listes" +msgstr "Listes" #: ../Doc/tutorial/introduction.rst:368 msgid "" @@ -459,16 +463,16 @@ msgid "" msgstr "" "Python connaît différents types de données *combinés*, utilisés pour " "regrouper plusieurs valeurs. La plus souple est la *liste*, qui peut être " -"écrite comme une suite de valeurs (éléments) séparés par des virgules placée " -"entre crochets. Les éléments d'une liste ne sont pas obligatoirement tous du " -"même type, bien qu'à l'usage ce soit souvent le cas. ::" +"écrite comme une suite, placée entre crochets, de valeurs (éléments) séparés " +"par des virgules. Les éléments d'une liste ne sont pas obligatoirement tous " +"du même type, bien qu'à l'usage ce soit souvent le cas. ::" #: ../Doc/tutorial/introduction.rst:377 msgid "" "Like strings (and all other built-in :term:`sequence` type), lists can be " "indexed and sliced::" msgstr "" -"Comme les chaînes de caractères (et toute autre types de :term:`sequence`), " +"Comme les chaînes de caractères (et toute autre type de :term:`sequence`), " "les listes peuvent être indicées et découpées : ::" #: ../Doc/tutorial/introduction.rst:387 @@ -478,8 +482,8 @@ msgid "" "list::" msgstr "" "Toutes les opérations par tranches renvoient une nouvelle liste contenant " -"les éléments demandés. Ce qui signifie que l'opération suivante renvoie une " -"copie superficielle de la liste : ::" +"les éléments demandés. Cela signifie que l'opération suivante renvoie une " +"copie (superficielle) de la liste : ::" #: ../Doc/tutorial/introduction.rst:393 msgid "Lists also support operations like concatenation::" @@ -491,7 +495,8 @@ msgid "" "type, i.e. it is possible to change their content::" msgstr "" "Mais à la différence des chaînes qui sont :term:`immuable`\\s, les listes " -"sont :term:`mutable`\\s : il est possible de changer leur contenu : ::" +"sont :term:`muables `\\s : il est possible de modifier leur " +"contenu : ::" #: ../Doc/tutorial/introduction.rst:408 msgid "" @@ -499,8 +504,8 @@ msgid "" "append` *method* (we will see more about methods later)::" msgstr "" "Il est aussi possible d'ajouter de nouveaux éléments à la fin d'une liste " -"avec la méthode :meth:`~list.append`. (Les méthodes seront abordées plus " -"tard) ::" +"avec la méthode :meth:`~list.append` (les méthodes sont abordées plus " +"tard) : ::" #: ../Doc/tutorial/introduction.rst:416 msgid "" @@ -519,8 +524,8 @@ msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" -"Il est possible d'imbriquer des listes (de créer des listes contenant " -"d'autres listes), par exemple : ::" +"Il est possible d'imbriquer des listes (i.e. créer des listes contenant " +"d'autres listes). Par exemple : ::" #: ../Doc/tutorial/introduction.rst:457 msgid "First Steps Towards Programming" @@ -533,8 +538,8 @@ msgid "" "*Fibonacci* series as follows::" msgstr "" "Bien entendu, on peut utiliser Python pour des tâches plus compliquées que " -"d'additionner deux et deux. Par exemple, on peut écrire une sous-séquence " -"initiale de la suite de Fibonacci comme ceci : ::" +"d'additionner deux et deux. Par exemple, on peut écrire le début de la suite " +"de Fibonacci comme ceci : ::" #: ../Doc/tutorial/introduction.rst:477 msgid "This example introduces several new features." @@ -608,20 +613,20 @@ msgid "" "things nicely, like this::" msgstr "" "La fonction :func:`print` écrit les valeur des paramètres qui lui sont " -"fournis. Ce n'est pas la même chose que d'écrire l'expression que vousvoulez " -"afficher (comme nous l'avons fait dans l'exemple de la calculatrice), dû à " -"la manière de ``print`` de gérer les paramètres multiples, les nombres " -"décimaux, et les chaînes. Les chaînes sont affichées sans apostrophes et " -"unespace est inséré entre les éléments de telle sorte que vous pouvez " -"facilement formater les choses, comme ceci : ::" +"fournis. Ce n'est pas la même chose que d'écrire l'expression que vous " +"voulez afficher (comme nous l'avons fait dans l'exemple de la calculatrice), " +"en raison de la manière qu'a ``print`` de gérer les paramètres multiples, " +"les nombres décimaux et les chaînes. Les chaînes sont affichées sans " +"apostrophe et une espace est insérée entre les éléments de telle sorte que " +"vous pouvez facilement formater les choses, comme ceci : ::" #: ../Doc/tutorial/introduction.rst:514 msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" -"Le paramètre nommé *end* peut servir pour enlever le retour à la ligne, ou " -"terminer la ligne par une autre chaîne : ::" +"Le paramètre nommé *end* peut servir pour enlever le retour à la ligne ou " +"pour terminer la ligne par une autre chaîne : ::" #: ../Doc/tutorial/introduction.rst:526 msgid "Footnotes" @@ -633,9 +638,9 @@ msgid "" "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " "can use ``(-3)**2``." msgstr "" -"Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` sera interprété ``-(3 " -"** 2)`` et vaudra donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez " -"des parenthèses : ``(-3) ** 2``." +"Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` est interprété ``-(3 " +"** 2)`` et vaut donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez des " +"parenthèses : ``(-3) ** 2``." #: ../Doc/tutorial/introduction.rst:531 msgid "" @@ -645,6 +650,7 @@ msgid "" "to escape ``\"`` (but you have to escape ``\\'``) and vice versa." msgstr "" "Contrairement à d'autres langages, les caractères spéciaux comme ``\\n`` ont " -"la même signification entre guillemets (`\"...\"`) ou guillemets simples " -"(`'...'`). La seule différence est que dans une chaîne entre guillemets il " -"n'est pas nécessaire de protéger les guillemets simples et vice-versa." +"la même signification entre guillemets (``\"...\"``) ou entre guillemets " +"simples (``'...'``). La seule différence est que, dans une chaîne entre " +"guillemets, il n'est pas nécessaire de protéger les guillemets simples et " +"vice-versa." diff --git a/tutorial/modules.po b/tutorial/modules.po index 5b10b300..26a86de6 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -33,12 +33,12 @@ msgid "" msgstr "" "Lorsque vous quittez et entrez à nouveau dans l'interpréteur Python, tout ce " "que vous avez déclaré dans la session précédente est perdu. Afin de rédiger " -"des programmes plus longs, vous devriez utiliser un éditeur de texte, " -"préparer votre code dans un fichier, et exécuter Python avec ce fichier en " -"paramètre. Ça s'appelle créé un *script*. Lorsque votre programme deviendra " -"plus long encore, vous pourrez séparer votre code dans plusieurs fichiers, " -"et vous trouverez aussi pratique de réutiliser des fonctions écrites pour un " -"programme dans un autre sans avoir à les copier." +"des programmes plus longs, vous devez utiliser un éditeur de texte, préparer " +"votre code dans un fichier et exécuter Python avec ce fichier en paramètre. " +"Cela s'appelle créer un *script*. Lorsque votre programme grandit, vous " +"pouvez séparer votre code dans plusieurs fichiers. Ainsi, il vous est facile " +"de réutiliser des fonctions écrites pour un programme dans un autre sans " +"avoir à les copier." #: ../Doc/tutorial/modules.rst:16 msgid "" @@ -48,12 +48,12 @@ msgid "" "modules or into the *main* module (the collection of variables that you have " "access to in a script executed at the top level and in calculator mode)." msgstr "" -"Pour gérer ça, Python à un moyen de rédiger des définitions dans un fichier " -"et les utiliser dans un script ou une session interactive. Un tel fichier " -"est appelé un *module*, et les définitions d'un module peuvent être " +"Pour gérer cela, Python vous permet de placer des définitions dans un " +"fichier et de les utiliser dans un script ou une session interactive. Un tel " +"fichier est appelé un *module* et les définitions d'un module peuvent être " "importées dans un autre module ou dans le module *main* (qui est le module " -"qui contiens vos variables et définitions lors de l'exécution d'un script ou " -"en mode interactif)." +"qui contient vos variables et définitions lors de l'exécution d'un script au " +"niveau le plus haut ou en mode interactif)." #: ../Doc/tutorial/modules.rst:22 msgid "" @@ -64,19 +64,18 @@ msgid "" "to create a file called :file:`fibo.py` in the current directory with the " "following contents::" msgstr "" -"Un module est un fichier contenant des définitions et des instructions. Son " -"nom de fichier est le même que son nom, suffixé de :file:`.py`. À " -"l'intérieur d'un module, son propre nom est accessible dans la variable " -"``__name__``. Par exemple, prenez votre éditeur favori et créez un fichier :" -"file:`fibo.py` contenant : ::" +"Un module est un fichier contenant des définitions et des instructions. Son " +"nom de fichier est le nom du module suffixé de :file:`.py`. À l'intérieur " +"d'un module, son propre nom est accessible par la variable ``__name__``. Par " +"exemple, prenez votre éditeur favori et créez un fichier :file:`fibo.py` " +"dans le répertoire courant qui contient : ::" #: ../Doc/tutorial/modules.rst:45 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" msgstr "" -"Maintenant, en étant dans le même dossier, ouvrez un interpréteur et " -"importez le module en tapant : ::" +"Maintenant, ouvrez un interpréteur et importez le module en tapant : ::" #: ../Doc/tutorial/modules.rst:50 msgid "" @@ -85,19 +84,19 @@ msgid "" "Using the module name you can access the functions::" msgstr "" "Cela n'importe pas les noms des fonctions définies dans ``fibo`` directement " -"dans la table des symboles courante, mais y ajoute simplement ``fibo``. Vous " -"pouvez donc appeler les fonctions via le nom du module : ::" +"dans la table des symboles courants mais y ajoute simplement ``fibo``. Vous " +"pouvez donc appeler les fonctions *via* le nom du module : ::" #: ../Doc/tutorial/modules.rst:61 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" -"Si vous avez l'intention d'utiliser une fonction souvent, il est possible de " +"Si vous avez l'intention d'utiliser souvent une fonction, il est possible de " "lui assigner un nom local : ::" #: ../Doc/tutorial/modules.rst:71 msgid "More on Modules" -msgstr "Les modules en détails" +msgstr "Les modules en détail" #: ../Doc/tutorial/modules.rst:73 msgid "" @@ -107,10 +106,10 @@ msgid "" "[#]_ (They are also run if the file is executed as a script.)" msgstr "" "Un module peut contenir aussi bien des instructions que des déclarations de " -"fonctions. Ces instructions permettent d'initialiser le module, et ne sont " -"donc exécutées que la première fois que le nom d'un module est trouvé dans " -"un ``import``. [#]_ (Elles sont aussi exécutées lorsque le fichier est " -"exécuté en temps que script.)" +"fonctions. Ces instructions permettent d'initialiser le module. Elles ne " +"sont exécutées que la *première* fois que le nom d'un module est trouvé dans " +"un ``import`` [#]_ (elles sont aussi exécutées lorsque le fichier est " +"exécuté en tant que script)." #: ../Doc/tutorial/modules.rst:78 msgid "" @@ -121,13 +120,13 @@ msgid "" "know what you are doing you can touch a module's global variables with the " "same notation used to refer to its functions, ``modname.itemname``." msgstr "" -"Chaque module a sa propre table de symboles, utilisée comme table de " +"Chaque module possède sa propre table de symboles, utilisée comme table de " "symboles globaux par toutes les fonctions définies par le module. Ainsi " "l'auteur d'un module peut utiliser des variables globales dans un module " -"sans se soucier de collisions de noms avec des globales définies par " -"l'utilisateur du module. D'un autre côté, si vous savez ce que vous faites, " +"sans se soucier de collisions de noms avec des variables globales définies " +"par l'utilisateur du module. Cependant, si vous savez ce que vous faites, " "vous pouvez modifier une variable globale d'un module avec la même notation " -"que pour accéder aux fonctions : ``modname.itemname``." +"que pour accéder aux fonctions : ``nommodule.nomelement``." #: ../Doc/tutorial/modules.rst:85 msgid "" @@ -136,9 +135,9 @@ msgid "" "for that matter). The imported module names are placed in the importing " "module's global symbol table." msgstr "" -"Des modules peuvent importer d'autres modules. Il est habituel mais pas " -"obligatoire de ranger tous les :keyword:`import` au début du module (ou du " -"script). Les noms des module importés sont insérés dans la table des " +"Des modules peuvent importer d'autres modules. Il est courant, mais pas " +"obligatoire, de ranger tous les :keyword:`import` au début du module (ou du " +"script). Les noms des modules importés sont insérés dans la table des " "symboles globaux du module qui importe." #: ../Doc/tutorial/modules.rst:90 @@ -147,7 +146,7 @@ msgid "" "from a module directly into the importing module's symbol table. For " "example::" msgstr "" -"Il existe une variation à l'instruction :keyword:`import` qui importe les " +"Il existe une variante de l'instruction :keyword:`import` qui importe les " "noms d'un module directement dans la table de symboles du module qui " "l'importe, par exemple : ::" @@ -157,14 +156,14 @@ msgid "" "the local symbol table (so in the example, ``fibo`` is not defined)." msgstr "" "Cela n'insère pas le nom du module depuis lequel les définitions sont " -"récupérées dans la table locale de symboles (dans cet exemple, ``fibo`` " +"récupérées dans la table des symboles locaux (dans cet exemple, ``fibo`` " "n'est pas défini)." #: ../Doc/tutorial/modules.rst:100 msgid "There is even a variant to import all names that a module defines::" msgstr "" -"Il existe même une variation permettant d'importer tous les noms qu'un " -"module définit : ::" +"Il existe même une variante permettant d'importer tous les noms qu'un module " +"définit : ::" #: ../Doc/tutorial/modules.rst:106 msgid "" @@ -176,7 +175,7 @@ msgstr "" "Tous les noms ne commençant pas par un tiret bas (``_``) sont importés. Dans " "la grande majorité des cas, les développeurs n'utilisent pas cette syntaxe " "puisqu'en important un ensemble indéfini de noms, des noms déjà définis " -"peuvent se retrouver cachés." +"peuvent se retrouver masqués." #: ../Doc/tutorial/modules.rst:111 msgid "" @@ -185,9 +184,8 @@ msgid "" "However, it is okay to use it to save typing in interactive sessions." msgstr "" "Notez qu'en général, importer ``*`` d'un module ou d'un paquet est " -"déconseillé, en général ça engendre du code difficilement lisible. " -"Cependant, c'est acceptable de l'utiliser pour gagner quelques secondes en " -"mode interactif." +"déconseillé. Souvent, le code devient difficilement lisible. Son utilisation " +"en mode interactif est acceptée pour gagner quelques secondes." #: ../Doc/tutorial/modules.rst:117 msgid "" @@ -197,11 +195,12 @@ msgid "" "use :func:`importlib.reload`, e.g. ``import importlib; importlib." "reload(modulename)``." msgstr "" -"Pour des raisons de performance, chaque module n'est importé qu'une fois par " +"pour des raisons de performance, chaque module n'est importé qu'une fois par " "session. Si vous changez le code d'un module vous devez donc redémarrer " -"l'interpréteur afin d'en voir l'impact. Ou le re-importer explicitement en " -"utilisant :func:`importlib.reload`, par exemple : ``import importlib; " -"importlib.reload(modulename)``." +"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " +"seul module que vous voulez tester en mode interactif, vous pouvez le ré-" +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"``import importlib; importlib.reload(nommodule)``." #: ../Doc/tutorial/modules.rst:127 msgid "Executing modules as scripts" @@ -217,9 +216,9 @@ msgid "" "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " "this code at the end of your module::" msgstr "" -"le code du module sera exécuté comme si vous l'aviez importé, mais son " -"``__name__`` vaudra ``\"__main__\"``. Donc en ajoutant ces lignes à la fin " -"du module : ::" +"le code du module est exécuté comme si vous l'aviez importé mais son " +"``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " +"module : ::" #: ../Doc/tutorial/modules.rst:141 msgid "" @@ -228,7 +227,7 @@ msgid "" "executed as the \"main\" file:" msgstr "" "vous pouvez rendre le fichier utilisable comme script aussi bien que comme " -"module importable, car le code qui parse la ligne de commande n'est lancé " +"module importable, car le code qui analyse la ligne de commande n'est lancé " "que si le module est exécuté comme fichier « main » :" #: ../Doc/tutorial/modules.rst:150 @@ -242,8 +241,8 @@ msgid "" "test suite)." msgstr "" "C'est typiquement utilisé soit pour proposer une interface utilisateur pour " -"un module, soit pour lancer les tests sur le module (où exécuter le module " -"en temps que script lance les tests)." +"un module, soit pour lancer les tests sur le module (exécuter le module en " +"tant que script lance les tests)." #: ../Doc/tutorial/modules.rst:162 msgid "The Module Search Path" @@ -257,18 +256,18 @@ msgid "" "data:`sys.path`. :data:`sys.path` is initialized from these locations:" msgstr "" "Lorsqu'un module nommé par exemple :mod:`spam` est importé, il est d'abord " -"recherché parmis les modules natifs, puis s'il n'y est pas trouvé, " -"l'interpréteur va chercher un fichier nommé :file:`spam.py` dans une liste " -"de dossiers donnés par la variable :data:`sys.path`, :data:`sys.path` est " -"initialisée par défaut à : ::" +"recherché parmi les modules natifs puis, s'il n'est pas trouvé, " +"l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de " +"dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." +"path` est initialisée à : ::" #: ../Doc/tutorial/modules.rst:171 msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." msgstr "" -"Le dossier contenant le script courant (ou le dossier courant si aucun " -"script n'est donné)." +"le dossier contenant le script courant (ou le dossier courant si aucun " +"script n'est donné) ;" #: ../Doc/tutorial/modules.rst:173 msgid "" @@ -276,11 +275,11 @@ msgid "" "shell variable :envvar:`PATH`)." msgstr "" ":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " -"la variable shell :envvar:`PATH`)." +"la variable shell :envvar:`PATH`) ;" #: ../Doc/tutorial/modules.rst:175 msgid "The installation-dependent default." -msgstr "La valeur par défaut, dépendante de l'installation." +msgstr "la valeur par défaut, dépendante de l'installation." #: ../Doc/tutorial/modules.rst:178 msgid "" @@ -288,10 +287,10 @@ msgid "" "script is calculated after the symlink is followed. In other words the " "directory containing the symlink is **not** added to the module search path." msgstr "" -"Sur les systèmes qui gèrent les liens symboliques, le dossier contenant le " -"script courant est résolu après avoir suivi le lien sublimer du script. " -"Autrement dit le dossier contenant le lien symbolique n'est **pas** ajouté " -"au dossiers de recherche de modules." +"sur les systèmes qui gèrent les liens symboliques, le dossier contenant le " +"script courant est résolu après avoir suivi le lien symbolique du script. " +"Autrement dit, le dossier contenant le lien symbolique n'est **pas** ajouté " +"aux dossiers de recherche de modules." #: ../Doc/tutorial/modules.rst:182 msgid "" @@ -304,9 +303,9 @@ msgid "" msgstr "" "Après leur initialisation, les programmes Python peuvent modifier leur :data:" "`sys.path`. Le dossier contenant le script courant est placé au début de la " -"liste des dossiers à rechercher, avant les dossiers de bibliothèques, Cela " +"liste des dossiers à rechercher, avant les dossiers de bibliothèques. Cela " "signifie qu'un module dans ce dossier, ayant le même nom qu'un module, sera " -"chargé à sa place. C'est une erreur typique, à moins que ce soit voulu. " +"chargé à sa place. C'est une erreur typique, à moins que ce ne soit voulu. " "Voir :ref:`tut-standardmodules` pour plus d'informations." #: ../Doc/tutorial/modules.rst:193 @@ -324,12 +323,12 @@ msgid "" "different releases and different versions of Python to coexist." msgstr "" "Pour accélérer le chargement des modules, Python cache une version compilée " -"de chaque module, dans un fichier nommé :file:`module(version).pyc` (ou " +"de chaque module dans un fichier nommé :file:`module(version).pyc` (ou " "*version* représente le format du fichier compilé, typiquement une version " -"de Python) dans le dossier ``__pycache__``. Par exemple avec CPython 3.3 la " -"version compilée de spam.py serait ``__pycache__/spam.cpython-33.pyc``. " -"Cette règle de nommage permet à des versions compilées par des versions de " -"Python différentes de coexister." +"de Python) dans le dossier ``__pycache__``. Par exemple, avec CPython 3.3, " +"la version compilée de spam.py serait ``__pycache__/spam.cpython-33.pyc``. " +"Cette règle de nommage permet à des versions compilées par des versions " +"différentes de Python de coexister." #: ../Doc/tutorial/modules.rst:203 msgid "" @@ -341,9 +340,9 @@ msgid "" msgstr "" "Python compare les dates de modification du fichier source et de sa version " "compilée pour voir si le module doit être recompilé. Ce processus est " -"entièrement automatique, et les versions compilées sont indépendantes de la " -"plateforme, et peuvent donc être partagées entre des systèmes d'architecture " -"différente." +"entièrement automatique. Par ailleurs, les versions compilées sont " +"indépendantes de la plateforme et peuvent donc être partagées entre des " +"systèmes d'architectures différentes." #: ../Doc/tutorial/modules.rst:208 msgid "" @@ -354,13 +353,12 @@ msgid "" "distribution, the compiled module must be in the source directory, and there " "must not be a source module." msgstr "" -"Il existe deux circonstances pour lesquelles Python ne vérifie pas le " -"cache : Le premier cas lorsque le module est donné par la ligne de commande " -"(cas où le module est toujours recompilé, sans même cacher sa version " -"compilée), le second cas est lorsque le module n'a pas de source dans ce cas " -"Python n'essaye pas de charger la version compilée. Pour gérer un module " -"sans source (seulement compilé) le module compilé doit être dans le dossier " -"source et sa source ne doit pas être présente." +"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " +"est lorsque le module est donné par la ligne de commande (cas où le module " +"est toujours recompilé, sans même cacher sa version compilée) ; le second " +"cas est lorsque le module n'a pas de source. Pour gérer un module sans " +"source (où seule la version compilée est fournie), le module compilé doit se " +"trouver dans le dossier source et sa source ne doit pas être présente." #: ../Doc/tutorial/modules.rst:215 msgid "Some tips for experts:" @@ -376,14 +374,14 @@ msgid "" "have an ``opt-`` tag and are usually smaller. Future releases may change " "the effects of optimization." msgstr "" -"Vous pouvez utiliser les options :option:`-O` ou :option:`-OO` lors de " +"vous pouvez utiliser les options :option:`-O` ou :option:`-OO` lors de " "l'appel à Python pour réduire la taille des modules compilés. L'option ``-" -"O`` supprime les instructions ``assert``, et l'option ``-OO`` supprime aussi " +"O`` supprime les instructions ``assert`` et l'option ``-OO`` supprime aussi " "les documentations ``__doc__``. Cependant, puisque certains programmes ont " "besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous " "savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-" "`` et sont généralement plus petits. Les versions futures de Python " -"pourraient changer les effets de l'optimisation." +"pourraient changer les effets de l'optimisation ;" #: ../Doc/tutorial/modules.rst:225 msgid "" @@ -391,25 +389,24 @@ msgid "" "when it is read from a ``.py`` file; the only thing that's faster about ``." "pyc`` files is the speed with which they are loaded." msgstr "" -"Un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " -"il est cependant chargé plus vite puisque le ``.pyc`` est plut petit que le " -"``.py``." +"un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " +"il est juste chargé plus vite ;" #: ../Doc/tutorial/modules.rst:229 msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." msgstr "" -"Le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " -"modules d'un dossier." +"le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " +"modules d'un dossier ;" #: ../Doc/tutorial/modules.rst:232 msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in PEP 3147." msgstr "" -"Voilà plus de détails sur le processus, ainsi qu'un organigramme des " -"decisions, dans la PEP 3147." +"vous trouvez plus de détails sur ce processus, ainsi qu'un organigramme des " +"décisions, dans la PEP 3147." #: ../Doc/tutorial/modules.rst:239 msgid "Standard Modules" @@ -432,13 +429,13 @@ msgstr "" "Python est accompagné d'une bibliothèque de modules standards, décrits dans " "la documentation de la Bibliothèque Python, plus loin. Certains modules sont " "intégrés dans l'interpréteur, ils exposent des outils qui ne font pas partie " -"du langage, mais qui font tout de même partie de l'interpréteur, soit pour " -"le côté pratique, soit pour exposer des outils essentiels tels que l'accès " -"aux appels systems. La composition de ces modules est configurable à la " -"compilation, et dépend aussi de la plateforme ciblée. Par exemple, le " -"module :mod:`winreg` n'est proposé que sur les systèmes Windows. Un module " -"mérite une attention particulière, le module :mod:`sys`, qui est présent " -"dans tous les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " +"du langage mais qui font tout de même partie de l'interpréteur, soit pour le " +"côté pratique, soit pour exposer des outils essentiels tels que l'accès aux " +"appels système. La composition de ces modules est configurable à la " +"compilation et dépend aussi de la plateforme cible. Par exemple, le module :" +"mod:`winreg` n'est proposé que sur les systèmes Windows. Un module mérite " +"une attention particulière, le module :mod:`sys`, qui est présent dans tous " +"les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " "définissent les chaînes d'invites principales et secondaires : ::" #: ../Doc/tutorial/modules.rst:266 @@ -458,11 +455,11 @@ msgid "" "standard list operations::" msgstr "" "La variable ``sys.path`` est une liste de chaînes qui détermine les chemins " -"de recherche de modules pour l'interpréteur. Il est initialisé à un chemin " -"par défaut pris de la variable d'environnement :envvar:`PYTHONPATH`, ou " -"d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas définie. " -"``sys.path`` est modifiable en utilisant les opérations habituelles des " -"listes : ::" +"de recherche de modules pour l'interpréteur. Elle est initialisée à un " +"chemin par défaut pris de la variable d'environnement :envvar:`PYTHONPATH` " +"ou d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas " +"définie. ``sys.path`` est modifiable en utilisant les opérations habituelles " +"des listes : ::" #: ../Doc/tutorial/modules.rst:281 msgid "The :func:`dir` Function" @@ -474,19 +471,20 @@ msgid "" "defines. It returns a sorted list of strings::" msgstr "" "La fonction interne :func:`dir` est utilisée pour trouver quels noms sont " -"définies par un module. Elle donne une liste triée de chaînes :;" +"définis par un module. Elle donne une liste de chaînes classées par ordre " +"lexicographique : ::" #: ../Doc/tutorial/modules.rst:308 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" -msgstr "Sans paramètres, :func:`dir` listes les noms actuellement définis : ::" +msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis : ::" #: ../Doc/tutorial/modules.rst:316 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" -"Notez qu'elle liste tout types de noms : les variables, fonctions, modules, " -"etc." +"Notez qu'elle liste tous les types de noms : les variables, fonctions, " +"modules, etc." #: ../Doc/tutorial/modules.rst:320 msgid "" @@ -494,8 +492,9 @@ msgid "" "you want a list of those, they are defined in the standard module :mod:" "`builtins`::" msgstr "" -":func:`dir` ne liste ni les fonctions primitives ni les variables internes. " -"Si vous voulez les lister, ils sont définis dans le module :mod:`builtins` ::" +":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. " +"Si vous voulez les lister, elles sont définies dans le module :mod:" +"`builtins` : ::" #: ../Doc/tutorial/modules.rst:359 msgid "Packages" @@ -534,26 +533,26 @@ msgid "" "operations. Here's a possible structure for your package (expressed in " "terms of a hierarchical filesystem):" msgstr "" -"Imaginez que vous voulez constuire une collections de modules (un \"paquet" -"\") pour gérer uniformément les fichiers contenant du son et des données " +"Imaginez que vous voulez construire un ensemble de modules (un \"paquet\") " +"pour gérer uniformément les fichiers contenant du son et des données " "sonores. Il existe un grand nombre de formats de fichiers pour stocker du " -"son (généralement repérés par leur extension, par exemple :file:`.wav`, :" -"file:`.aiff`, :file:`.au`), vous aurez donc envie de créer et maintenir un " +"son (généralement identifiés par leur extension, par exemple :file:`.wav`, :" +"file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un " "nombre croissant de modules pour gérer la conversion entre tous ces formats. " -"Il existe aussi tout une floppée d'opérations que vous voudriez pouvoir " -"faire sur du son (mixer, ajouter de l'écho, égaliser, ajouter un effet " -"stéréo articifiel), donc, en plus des modules de conversion, vous allez " -"écrire un nombre illimité de modules permettant d'effectuer ces opérations. " -"Voici une structure possible pour votre paquet (exprimée comme un système de " -"fichier, hierarchiquement) :" +"Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces " +"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " +"artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire " +"une myriade de modules permettant d'effectuer ces opérations. Voici une " +"structure possible pour votre paquet (exprimée sous la forme d'une " +"arborescence de fichiers :" #: ../Doc/tutorial/modules.rst:406 msgid "" "When importing the package, Python searches through the directories on ``sys." "path`` looking for the package subdirectory." msgstr "" -"Lorsqu'il importe des paquets, Python cherche dans chaque dossiers de ``sys." -"path``, à la recherche du dossier du paquet." +"Lorsqu'il importe des paquets, Python cherche dans chaque dossier de ``sys." +"path`` un sous-dossier du nom du paquet." #: ../Doc/tutorial/modules.rst:409 msgid "" @@ -566,10 +565,10 @@ msgid "" "described later." msgstr "" "Les fichiers :file:`__init__.py` sont nécessaires pour que Python considère " -"les dossiers comme contenant des paquets, ça évite des dossiers ayant des " -"noms courants comme ``string`` de cacher des modules qui auraient été " -"trouvés plus loin dans les dossiers de recherche. Dans le plus simple des " -"cas, :file:`__init__.py` peut être vide, mais il peut exécuter du code " +"les dossiers comme contenant des paquets, cela évite que des dossiers ayant " +"des noms courants comme ``string`` ne masquent des modules qui auraient été " +"trouvés plus tard dans la recherche des dossiers. Dans le plus simple des " +"cas, :file:`__init__.py` peut être vide, mais il peut aussi exécuter du code " "d'initialisation pour son paquet ou configurer la variable ``__all__`` " "(documentée plus loin)." @@ -586,8 +585,8 @@ msgid "" "This loads the submodule :mod:`sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" -"Chargera le sous-module :mod:`sound.effects.echo`. Il dit être référencé par " -"son nom complet. ::" +"charge le sous-module :mod:`sound.effects.echo`. Il doit alors être " +"référencé par son nom complet. ::" #: ../Doc/tutorial/modules.rst:426 msgid "An alternative way of importing the submodule is::" @@ -598,15 +597,15 @@ msgid "" "This also loads the submodule :mod:`echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" -"Chargera aussi le sous-module :mod:`echo`, et le rendra disponible dans le " -"préfixe du paquet, il peut donc être utilisé comme ça : ::" +"charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à " +"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci : ::" #: ../Doc/tutorial/modules.rst:435 msgid "" "Yet another variation is to import the desired function or variable " "directly::" msgstr "" -"Une autre méthode consisterait à importer la fonction ou variable désirée " +"Une autre méthode consiste à importer la fonction ou la variable désirée " "directement : ::" #: ../Doc/tutorial/modules.rst:439 @@ -614,7 +613,7 @@ msgid "" "Again, this loads the submodule :mod:`echo`, but this makes its function :" "func:`echofilter` directly available::" msgstr "" -"Le sous-module :mod:`echo` est toujours chargé, mais ici la fonction :func:" +"Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:" "`echofilter` est disponible directement : ::" #: ../Doc/tutorial/modules.rst:444 @@ -626,12 +625,12 @@ msgid "" "module and attempts to load it. If it fails to find it, an :exc:" "`ImportError` exception is raised." msgstr "" -"Notez que lorsque vous utilisez ``from package import item``, ``item`` peut " -"aussi bien être un sous-module, un sous-paquet, ou simplement un nom déclaré " -"dans le paquet (une variable, une fonction ou une classe). L'instruction " -"``import`` cherche en premier si ``item`` est définit dans le paquet, s'il " -"ne l'est pas, elle cherche à charger un module, et si elle n'y arrive pas, " -"une exception :exc:`ImportError` est levée." +"Notez que lorsque vous utilisez ``from package import element``, ``element`` " +"peut aussi bien être un sous-module, un sous-paquet ou simplement un nom " +"déclaré dans le paquet (une variable, une fonction ou une classe). " +"L'instruction ``import`` cherche en premier si ``element`` est défini dans " +"le paquet ; s'il ne l'est pas, elle cherche à charger un module et, si elle " +"n'en trouve pas, une exception :exc:`ImportError` est levée." #: ../Doc/tutorial/modules.rst:451 msgid "" @@ -640,10 +639,11 @@ msgid "" "a package but can't be a class or function or variable defined in the " "previous item." msgstr "" -"Au contraire, en utilisant la syntaxe ``import item.item.subitement." -"subsubitem``, chaque ``item`` sauf le dernier doivent être des paquets. Le " -"dernier ``item`` peut être un module ou un paquet, mais ne peut être ni une " -"fonction, ni une classe, ni une variable défini dans l'élément précédent." +"Au contraire, en utilisant la syntaxe ``import element.souselement." +"soussouselement``, chaque ``element`` sauf le dernier doit être un paquet. " +"Le dernier ``element`` peut être un module ou un paquet, mais ne peut être " +"ni une fonction, ni une classe, ni une variable définie dans l'élément " +"précédent." #: ../Doc/tutorial/modules.rst:460 msgid "Importing \\* From a Package" @@ -658,11 +658,11 @@ msgid "" "effects that should only happen when the sub-module is explicitly imported." msgstr "" "Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " -"Dans l'idéal on pourrait espérer que ça irait chercher tous les sous-modules " -"du paquet sur le système de fichiers, et qu'ils seraient tous importés. Ça " -"pourrait être long, et importer certains sous-modules pourrait avoir des " -"effets secondaires indésirables, du moins, désirés seulement lorsque le sous " -"module est importé explicitement." +"Idéalement, on pourrait espérer que Python aille chercher tous les sous-" +"modules du paquet sur le système de fichiers et qu'ils seraient tous " +"importés. Cela pourrait être long et importer certains sous-modules pourrait " +"avoir des effets secondaires indésirables ou, du moins, désirés seulement " +"lorsque le sous-module est importé explicitement." #: ../Doc/tutorial/modules.rst:470 msgid "" @@ -678,21 +678,22 @@ msgid "" msgstr "" "La seule solution, pour l'auteur du paquet, est de fournir un index " "explicite du contenu du paquet. L'instruction :keyword:`import` utilise la " -"convention suivante: Si le fichier :file:`__init__.py` du paquet définit une " -"liste nommée ``__all__``, cette liste sera utilisée comme liste des noms de " -"modules devant être importés lorsque ``from package import *`` est utilisé. " -"C'est le rôle de l'auteur du paquet de maintenir cette liste à jour lorsque " -"de nouvelles version du paquet sont publiées. Un auteur de paquet peut aussi " -"décider de ne pas autoriser d'importer ``*`` de leur paquet. Par exemple, le " -"fichier :file:`sound/effects/__init__.py` peut contenir le code suivant : ::" +"convention suivante : si le fichier :file:`__init__.py` du paquet définit " +"une liste nommée ``__all__``, cette liste est utilisée comme liste des noms " +"de modules devant être importés lorsque ``from package import *`` est " +"utilisé. Il est de la responsabilité de l'auteur du paquet de maintenir " +"cette liste à jour lorsque de nouvelles versions du paquet sont publiées. Un " +"auteur de paquet peut aussi décider de ne pas autoriser d'importer ``*`` " +"pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` " +"peut contenir le code suivant : ::" #: ../Doc/tutorial/modules.rst:482 msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`sound` package." msgstr "" -"Cela signifierai que ``from sound.effects import *`` importait les trois " -"sous-modules du paquet :mod:`sound`." +"Cela signifie que ``from sound.effects import *`` importe les trois sous-" +"modules explicitement désignés du paquet :mod:`sound`." #: ../Doc/tutorial/modules.rst:485 msgid "" @@ -706,13 +707,13 @@ msgid "" "explicitly loaded by previous :keyword:`import` statements. Consider this " "code::" msgstr "" -"Si ``__all__`` n'est pas défini, l'instruction ``from sound.effects import " -"*`` n'importera *pas* tous les sous-modules du paquet :mod:`sound.effects` " -"dans l'espace de nom courant, mais s'assurera seulement que le paquet :mod:" -"`sound.effects` à été importé (que tout le code du fichier :file:`__init__." -"py` à été executé) et importe ensuite n'importe quels noms définis dans le " -"paquet. Cela inclu tous les noms définis (et sous modules chargés " -"explicitement) par :file:`__init__.py`. Elle inclu aussi tous les sous-" +"Si ``__all__`` n'est pas définie, l'instruction ``from sound.effects import " +"*`` n'importe *pas* tous les sous-modules du paquet :mod:`sound.effects` " +"dans l'espace de noms courant mais s'assure seulement que le paquet :mod:" +"`sound.effects` a été importé (i.e. que tout le code du fichier :file:" +"`__init__.py` a été exécuté) et importe ensuite les noms définis dans le " +"paquet. Cela inclut tous les noms définis (et sous-modules chargés " +"explicitement) par :file:`__init__.py`. Sont aussi inclus tous les sous-" "modules du paquet ayant été chargés explicitement par une instruction :" "keyword:`import`. Typiquement : ::" @@ -724,9 +725,9 @@ msgid "" "when ``__all__`` is defined.)" msgstr "" "Dans cet exemple, les modules :mod:`echo` et :mod:`surround` sont importés " -"dans l'espace de noms courant lorsque ``from...import`` est exécuté, parce " -"qu'ils sont définis dans le paquet :mod:`sound.effects`. (Cela fonctionne " -"lorsque ``__all__`` est défini.)" +"dans l'espace de noms courant lorsque ``from...import`` est exécuté parce " +"qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne " +"aussi lorsque ``__all__`` est définie)." #: ../Doc/tutorial/modules.rst:503 msgid "" @@ -745,10 +746,10 @@ msgid "" "importing module needs to use submodules with the same name from different " "packages." msgstr "" -"Rappelez-vous qu'il n'y a rien de mauvais à utiliser ``from Package import " -"specific_submodule`` ! C'est d'ailleurs la manière recommandée à moins que " -"le module qui fait les imports ai besoin de sous-modules ayant le même nom " -"mais provenant se paquets différents." +"Rappelez-vous que rien ne vous empêche d'utiliser ``from paquet import " +"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " +"que le module qui fait les imports ait besoin de sous-modules ayant le même " +"nom mais provenant de paquets différents." #: ../Doc/tutorial/modules.rst:514 msgid "Intra-package References" @@ -776,9 +777,9 @@ msgid "" "`surround` module for example, you might use::" msgstr "" "Il est aussi possible d'écrire des imports relatifs de la forme ``from " -"module import name``. Ces imports sont préfixés par des points pour indiquer " -"leur origine (paquet courant ou parent). Depuis le module :mod:`surround`, " -"par exemple vous pourriez faire : ::" +"module import name``. Ces imports relatifs sont préfixés par des points pour " +"indiquer leur origine (paquet courant ou parent). Depuis le module :mod:" +"`surround`, par exemple vous pouvez écrire : ::" #: ../Doc/tutorial/modules.rst:531 msgid "" @@ -789,7 +790,7 @@ msgid "" msgstr "" "Notez que les imports relatifs se fient au nom du module actuel. Puisque le " "nom du module principal est toujours ``\"__main__\"``, les modules utilisés " -"par le module principal d'une application ne peuvent être importées que par " +"par le module principal d'une application ne peuvent être importés que par " "des imports absolus." #: ../Doc/tutorial/modules.rst:537 @@ -804,10 +805,10 @@ msgid "" "This variable can be modified; doing so affects future searches for modules " "and subpackages contained in the package." msgstr "" -"Les paquets exposent un attribut supplémentaire, :attr:`__path__`, contenant " -"une liste, initialisée avant l'exécution du fichier :file:`__init__.py`, " -"contenant le nom de son dossier dans le système de fichier. Cette liste peut " -"être modifiée, altérant ainsi les futures recherches de modules et sous-" +"Les paquets possèdent un attribut supplémentaire, :attr:`__path__`, qui est " +"une liste initialisée avant l'exécution du fichier :file:`__init__.py`, " +"contenant le nom de son dossier dans le système de fichiers. Cette liste " +"peut être modifiée, altérant ainsi les futures recherches de modules et sous-" "paquets contenus dans le paquet." #: ../Doc/tutorial/modules.rst:545 @@ -828,6 +829,6 @@ msgid "" "execution of a module-level function definition enters the function name in " "the module's global symbol table." msgstr "" -"En réalité, la déclaration d'une fonction est elle même une instruction, " -"sont l'exécution enregistre le nom de la fonction dans la table des symboles " +"En réalité, la déclaration d'une fonction est elle-même une instruction ; " +"son exécution enregistre le nom de la fonction dans la table des symboles " "globaux du module." diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index e1dbf68d..e9745666 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -18,18 +18,18 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:5 msgid "Brief Tour of the Standard Library" -msgstr "Survol de la Bibliothèque Standard" +msgstr "Survol de la bibliothèque standard" #: ../Doc/tutorial/stdlib.rst:11 msgid "Operating System Interface" -msgstr "Interface avec le Système d'Exploitation" +msgstr "Interface avec le système d'exploitation" #: ../Doc/tutorial/stdlib.rst:13 msgid "" "The :mod:`os` module provides dozens of functions for interacting with the " "operating system::" msgstr "" -"Le modules :mod:`os` propose pléthore fonctions pour interagir avec le " +"Le module :mod:`os` propose des dizaines de fonctions pour interagir avec le " "système d'exploitation : ::" #: ../Doc/tutorial/stdlib.rst:23 @@ -38,8 +38,8 @@ msgid "" "This will keep :func:`os.open` from shadowing the built-in :func:`open` " "function which operates much differently." msgstr "" -"Mais, encore une fois, préférez ``import os``, à ``from os import *``, sans " -"quoi :func:`os.open` cacherait la primitive :func:`open`, qui fonctionne " +"Veillez bien à utiliser ``import os`` plutôt que ``from os import *``, " +"sinon :func:`os.open` cache la primitive :func:`open` qui fonctionne " "différemment." #: ../Doc/tutorial/stdlib.rst:29 @@ -47,8 +47,8 @@ msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" msgstr "" -"Les primitives :func:`dir` et :func:`help` sont des outils utiles lorsque " -"vous travaillez en mode interactif avez des gros modules comme :mod:`os` ::" +"Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" #: ../Doc/tutorial/stdlib.rst:38 msgid "" @@ -60,7 +60,7 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:51 msgid "File Wildcards" -msgstr "Jokers sur les noms de Fichiers" +msgstr "Jokers sur les noms de fichiers" #: ../Doc/tutorial/stdlib.rst:53 msgid "" @@ -72,7 +72,7 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:64 msgid "Command Line Arguments" -msgstr "Paramètres en ligne de Commande" +msgstr "Paramètres passés en ligne de commande" #: ../Doc/tutorial/stdlib.rst:66 msgid "" @@ -83,7 +83,7 @@ msgid "" msgstr "" "Typiquement, les outils en ligne de commande ont besoin de lire les " "paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " -"variable ``argv`` dans le module :mod:`sys` sous forme de liste. Par " +"variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " "exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " "two three`` depuis la ligne de commande : ::" @@ -93,10 +93,10 @@ msgid "" "Unix :func:`getopt` function. More powerful and flexible command line " "processing is provided by the :mod:`argparse` module." msgstr "" -"Le module :mod:`getopt` comprend *sys.argv* en utilisant les conventions " -"habituelles de la fonction Unix :func:`getopt`. Des outils de compréhension " -"des paramètres de la ligne de commande plus flexibles et avancés sont " -"disponibles dnas le module :mod:`argparse`." +"Le module :mod:`getopt` analyse *sys.argv* en utilisant les conventions " +"habituelles de la fonction Unix :func:`getopt`. Des outils d'analyse des " +"paramètres de la ligne de commande plus flexibles et avancés sont " +"disponibles dans le module :mod:`argparse`." #: ../Doc/tutorial/stdlib.rst:83 msgid "Error Output Redirection and Program Termination" @@ -108,7 +108,7 @@ msgid "" "*stderr*. The latter is useful for emitting warnings and error messages to " "make them visible even when *stdout* has been redirected::" msgstr "" -"Le module :mod:`sys` a aussi des attributs pour *stdin*, *stdout*, et " +"Le module :mod:`sys` a aussi des attributs pour *stdin*, *stdout* et " "*stderr*. Ce dernier est utile pour émettre des messages d'avertissement ou " "d'erreur qui restent visibles même si *stdout* est redirigé : ::" @@ -119,7 +119,7 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:98 msgid "String Pattern Matching" -msgstr "Recherche de motifs dans les Chaînes" +msgstr "Recherche de motifs dans les chaînes" #: ../Doc/tutorial/stdlib.rst:100 msgid "" @@ -129,8 +129,8 @@ msgid "" msgstr "" "Le module :mod:`re` fournit des outils basés sur les expressions " "rationnelles permettant des opérations complexes sur les chaînes. C'est une " -"solution optimisée, utilisant une syntaxe consise, pour rechercher des " -"motifs complexes, ou effectuer des remplacements complexes dans les " +"solution optimisée, utilisant une syntaxe concise, pour rechercher des " +"motifs complexes ou effectuer des remplacements complexes dans les " "chaînes : ::" #: ../Doc/tutorial/stdlib.rst:110 @@ -139,7 +139,8 @@ msgid "" "because they are easier to read and debug::" msgstr "" "Lorsque les opérations sont simples, il est préférable d'utiliser les " -"méthodes des chaînes, elles sont plus lisibles et plus facile à débugger : ::" +"méthodes des chaînes. Elles sont plus lisibles et plus faciles à " +"déboguer : ::" #: ../Doc/tutorial/stdlib.rst:120 msgid "Mathematics" @@ -150,13 +151,13 @@ msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating point math::" msgstr "" -"Le module :mod:`math` expose des fonctions d'opération sur les \"float* de " -"la bibliothèque C ::" +"Le module :mod:`math` donne accès aux fonctions sur les nombres à virgule " +"flottante (*float* en anglais) de la bibliothèque C : ::" #: ../Doc/tutorial/stdlib.rst:131 msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" -"Le module :mod:`random` offre des outils pour faire des sélections " +"Le module :mod:`random` offre des outils pour faire des tirages " "aléatoires : ::" #: ../Doc/tutorial/stdlib.rst:143 @@ -165,7 +166,7 @@ msgid "" "mean, median, variance, etc.) of numeric data::" msgstr "" "Le module :mod:`statistics` permet de calculer des valeurs statistiques " -"basiques (la moyenne, la médiane, la variance, ...) ::" +"basiques (moyenne, médiane, variance, ...) : ::" #: ../Doc/tutorial/stdlib.rst:155 msgid "" @@ -173,7 +174,7 @@ msgid "" "computations." msgstr "" "Le projet SciPy contient beaucoup d'autres modules " -"autour des calculs numériques." +"dédiés aux calculs numériques." #: ../Doc/tutorial/stdlib.rst:161 msgid "Internet Access" @@ -185,16 +186,15 @@ msgid "" "internet protocols. Two of the simplest are :mod:`urllib.request` for " "retrieving data from URLs and :mod:`smtplib` for sending mail::" msgstr "" -"Il existe tout un tat de modules permettant d'accéder à internet et gérer " -"des protocoles utilisés sur internet. Les deux plus simples sont :mod:" -"`urllib.request`, qui permet de télécharger à partir d'une URL, et :mod:" -"`smtplib` pour envoyer des emails : ::" +"Il existe beaucoup de modules permettant d'accéder à internet et gérer les " +"protocoles réseaux. Les deux plus simples sont :mod:`urllib.request` qui " +"permet de récupérer des données à partir d'une URL et :mod:`smtplib` pour " +"envoyer des courriers électroniques : ::" #: ../Doc/tutorial/stdlib.rst:186 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -"(Notez que le deuxième exemple a besoin d'un serveur mail tournant " -"localement.)" +"Notez que le deuxième exemple a besoin d'un serveur mail tournant localement." #: ../Doc/tutorial/stdlib.rst:192 msgid "Dates and Times" @@ -209,15 +209,15 @@ msgid "" "that are timezone aware. ::" msgstr "" "Le module :mod:`datetime` propose des classes pour manipuler les dates et " -"les temps de manière à la fois simple ou complexe. Bien que faire des " -"calculs de dates et de temps soit possible, la priorité de l'implémentation " -"est mise sur l'extraction efficace des attributs pour le formatage et la " +"les heures de manière simple ou plus complexe. Bien que faire des calculs de " +"dates et d'heures soit possible, la priorité de l'implémentation est mise " +"sur l'extraction efficace des attributs pour le formatage et la " "manipulation. Le module gère aussi les objets dépendant des fuseaux " "horaires : ::" #: ../Doc/tutorial/stdlib.rst:218 msgid "Data Compression" -msgstr "Compression de donnée" +msgstr "Compression de données" #: ../Doc/tutorial/stdlib.rst:220 msgid "" @@ -227,11 +227,11 @@ msgid "" msgstr "" "Les formats d'archivage et de compression les plus communs sont directement " "gérés par les modules :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :" -"mod:`zipfile`, et :mod:`tarfile` ::" +"mod:`zipfile` et :mod:`tarfile` ::" #: ../Doc/tutorial/stdlib.rst:240 msgid "Performance Measurement" -msgstr "Mesure des Performances" +msgstr "Mesure des performances" #: ../Doc/tutorial/stdlib.rst:242 msgid "" @@ -239,9 +239,9 @@ msgid "" "performance of different approaches to the same problem. Python provides a " "measurement tool that answers those questions immediately." msgstr "" -"Certains utilisateurs de Python développent un intérêt profond des " -"performances de différentes approches d'un même problème. Python propose un " -"outil de mesure répondant simplement à ces questions." +"Certains utilisateurs de Python sont très intéressés par les performances de " +"différentes approches d'un même problème. Python propose un outil de mesure " +"répondant simplement à ces questions." #: ../Doc/tutorial/stdlib.rst:246 msgid "" @@ -251,8 +251,8 @@ msgid "" msgstr "" "Par exemple, pour échanger deux variables, il peut être tentant d'utiliser " "l'empaquetage et le dépaquetage de tuples plutôt que la méthode " -"traditionnelle. Le module :mod:`timeit` montre simplement laquelle est la " -"plus efficace : ::" +"traditionnelle. Le module :mod:`timeit` montre rapidement le léger gain de " +"performance obtenu : ::" #: ../Doc/tutorial/stdlib.rst:256 msgid "" @@ -266,7 +266,7 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:264 msgid "Quality Control" -msgstr "Contrôle Qualité" +msgstr "Contrôle qualité" #: ../Doc/tutorial/stdlib.rst:266 msgid "" @@ -276,7 +276,7 @@ msgid "" msgstr "" "Une approche possible pour développer des application de très bonne qualité " "est d'écrire des tests pour chaque fonction au fur et à mesure de son " -"développement, et d'exécuter ces tests fréquemment lors du processus de " +"développement, puis d'exécuter ces tests fréquemment lors du processus de " "développement." #: ../Doc/tutorial/stdlib.rst:270 @@ -288,8 +288,8 @@ msgid "" "example and it allows the doctest module to make sure the code remains true " "to the documentation::" msgstr "" -"Le module :mod:`doctest` permet de chercher des tests dans les chaînes de " -"documentation. Un tests ressemble à un simple copié-collé d'un appel et son " +"Le module :mod:`doctest` cherche des tests dans les chaînes de " +"documentation. Un test ressemble à un simple copier-coller d'un appel et son " "résultat depuis le mode interactif. Cela améliore la documentation en " "fournissant des exemples tout en prouvant qu'ils sont justes : ::" @@ -299,13 +299,13 @@ msgid "" "module, but it allows a more comprehensive set of tests to be maintained in " "a separate file::" msgstr "" -"Le module :mod:`unittest` est plus lourd que le module :mod:`doctest`, mais " -"il permet de construire un jeu de tests plus complet, maintenable, et " -"compréhensible dans un fichier séparé : ::" +"Le module :mod:`unittest` requiert plus d'efforts que le module :mod:" +"`doctest` mais il permet de construire un jeu de tests plus complet que l'on " +"fait évoluer dans un fichier séparé : ::" #: ../Doc/tutorial/stdlib.rst:310 msgid "Batteries Included" -msgstr "Piles Fournies" +msgstr "Piles fournies" #: ../Doc/tutorial/stdlib.rst:312 msgid "" @@ -313,9 +313,9 @@ msgid "" "the sophisticated and robust capabilities of its larger packages. For " "example:" msgstr "" -"Python respecte la philosophie \"piles fournies\". C'est plus évident en " -"regardant les capacités sophistiquées et solides de ses plus gros paquets. " -"Par exemple:" +"Python adopte le principe des \"piles fournies\". Vous pouvez le constater " +"au travers des fonctionnalités évoluées et solides fournies par ses plus " +"gros paquets. Par exemple :" #: ../Doc/tutorial/stdlib.rst:315 msgid "" @@ -354,13 +354,14 @@ msgid "" "applications and other tools." msgstr "" "Le paquet :mod:`json` permet de lire et d'écrire du JSON, format d'encodage " -"de donnée répandu. Le module :mod:`csv` gère la lecture et l'écriture de " -"données stockés sous forme de valeurs séparés par des virgules dans des " -"fichiers (Coma-Separated Values), typique des base de donnée et feuiles de " -"calculs. Pour la lecture du XML, utilisez les paquet :mod:`xml.etree." -"ElementTree`, :mod:`xml.dom` et :mod:`xml.sax`. Réunis, ces modules et " -"paquets simplifient grandement l'échange de données entre les applications " -"Python et les autres outils." +"de données répandu. Le module :mod:`csv` gère la lecture et l'écriture de " +"données stockées sous forme de valeurs séparées par des virgules dans des " +"fichiers (*Comma-Separated Values* en anglais), format typiquement " +"interopérable avec les bases de données et les feuilles de calculs. Pour la " +"lecture du XML, utilisez les paquets :mod:`xml.etree.ElementTree`, :mod:`xml." +"dom` et :mod:`xml.sax`. Combinés, ces modules et paquets simplifient " +"grandement l'échange de données entre les applications Python et les autres " +"outils." #: ../Doc/tutorial/stdlib.rst:335 msgid "" @@ -369,13 +370,13 @@ msgid "" "slightly nonstandard SQL syntax." msgstr "" "Le module :mod:`sqlite3` est une abstraction de la bibliothèque SQLite, " -"permettant de manipuler une base de donnée persistante, accédée et manipulée " -"en utilisant une syntaxe SQL quasi standard." +"permettant de manipuler une base de données persistante, accédée et " +"manipulée en utilisant une syntaxe SQL quasi standard." #: ../Doc/tutorial/stdlib.rst:339 msgid "" "Internationalization is supported by a number of modules including :mod:" "`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" -"L'internationalisation est possible grâce à moulte paquets, comme :mod:" -"`gettext`, :mod:`locale`, ou :mod:`codecs`." +"L'internationalisation est possible grâce à de nombreux paquets tels que :" +"mod:`gettext`, :mod:`locale` ou :mod:`codecs`." diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 6bceaf06..84897964 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -25,12 +25,12 @@ msgid "" "This second tour covers more advanced modules that support professional " "programming needs. These modules rarely occur in small scripts." msgstr "" -"Cette seconde visite vous fera découvrir des modules d'un usage plus " -"professionnel. Ces modules sont rarement nécessaires dans de petits scripts." +"Cette deuxième partie aborde des modules plus à destination des programmeurs " +"professionnels. Ces modules sont rarement nécessaires dans de petits scripts." #: ../Doc/tutorial/stdlib2.rst:14 msgid "Output Formatting" -msgstr "Formatage" +msgstr "Formatage de l'affichage" #: ../Doc/tutorial/stdlib2.rst:16 msgid "" @@ -38,7 +38,7 @@ msgid "" "abbreviated displays of large or deeply nested containers::" msgstr "" "Le module :mod:`reprlib` est une variante de la fonction :func:`repr`, " -"spécialisée dans l'affichage concis de conteneurs volumineux ou fortement " +"spécialisé dans l'affichage concis de conteneurs volumineux ou fortement " "imbriqués : ::" #: ../Doc/tutorial/stdlib2.rst:23 @@ -49,10 +49,10 @@ msgid "" "adds line breaks and indentation to more clearly reveal data structure::" msgstr "" "Le module :mod:`pprint` propose un contrôle plus fin de l'affichage des " -"objets, aussi bien primitifs que définis par l'utilisateur, et souvent " -"lisible part l'interpréteur. Lorsque le résultat fait plus d'une ligne, il " -"est séparé sur plusieurs lignes et indenté pour rendre la structure plus " -"visible : ::" +"objets, aussi bien natifs que ceux définis par l'utilisateur, de manière à " +"être lisible par l'interpréteur. Lorsque le résultat fait plus d'une ligne, " +"il est séparé sur plusieurs lignes et est indenté pour rendre la structure " +"plus visible : ::" #: ../Doc/tutorial/stdlib2.rst:39 msgid "" @@ -68,9 +68,10 @@ msgid "" "formats. The grouping attribute of locale's format function provides a " "direct way of formatting numbers with group separators::" msgstr "" -"Le module :mod:`locale` offre une base de donnée de formats de donnée " -"spécifique à chaque région. L'attribut ``grouping`` de la fonction de " -"formatage permet de formater directement des nombres avec un séparateur : ::" +"Le module :mod:`locale` utilise une base de données des formats spécifiques " +"à chaque région pour les dates, nombres, etc. L'attribut ``grouping`` de la " +"fonction de formatage permet de formater directement des nombres avec un " +"séparateur : ::" #: ../Doc/tutorial/stdlib2.rst:72 msgid "Templating" @@ -83,11 +84,11 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" -"Le module :mod:`string` contiens une classe fort polyvalente : :class:" -"`~string.Template` permettant d'écrire des gabarits (dits \"templates\") " -"avec une syntaxe simple, si simple qu'elle est compréhensible par des non-" -"développeurs. Cela permet donc à vous utilisateurs de personnaliser leur " -"application sans la modifier." +"Le module :mod:`string` contient une classe polyvalente : :class:`~string." +"Template`. Elle permet d'écrire des gabarits (*templates* en anglais) avec " +"une syntaxe simple, dans le but d'être utilisable par des non-développeurs. " +"Ainsi, vos utilisateurs peuvent personnaliser leur application sans la " +"modifier." #: ../Doc/tutorial/stdlib2.rst:78 msgid "" @@ -97,11 +98,11 @@ msgid "" "letters with no intervening spaces. Writing ``$$`` creates a single escaped " "``$``::" msgstr "" -"Le format est constitué de marqueurs formés d'un ``$`` suivi d'un " -"identifiant Python valide (caractères alphanumériques et tirets-bas). " -"Entourer le marqueur d'accolades permet de lui coller d'autres caractères " -"alphanumériques sans intercaler un espace. Écrire ``$$`` créé un simple ``" -"$``." +"Le format utilise des marqueurs formés d'un ``$`` suivi d'un identifiant " +"Python valide (caractères alphanumériques et tirets-bas). Entourer le " +"marqueur d'accolades permet de lui coller d'autres caractères " +"alphanumériques sans intercaler une espace. Écrire ``$$`` produit un simple " +"``$`` : ::" #: ../Doc/tutorial/stdlib2.rst:88 msgid "" @@ -114,9 +115,9 @@ msgstr "" "La méthode :meth:`~string.Template.substitute` lève une exception :exc:" "`KeyError` lorsqu'un marqueur n'a pas été fourni, ni dans un dictionnaire, " "ni sous forme d'un paramètre nommé. Dans certains cas, lorsque la donnée à " -"appliquer n'est connur que partiellement, la méthode :meth:`~string.Template." -"safe_substitute` est plus appropriée car elle laissera tel quel les " -"marqueurs manquants : ::" +"appliquer peut n'être fournie que partiellement par l'utilisateur, la " +"méthode :meth:`~string.Template.safe_substitute` est plus appropriée car " +"elle laisse tels quels les marqueurs manquants : ::" #: ../Doc/tutorial/stdlib2.rst:103 msgid "" @@ -127,8 +128,8 @@ msgid "" msgstr "" "Les classes filles de ``Template`` peuvent définir leur propre délimiteur. " "Typiquement, un script de renommage de photos par lots peut choisir le " -"symbole pourcent comme marqueur pour, par exemple, la date actuelle, le " -"numéro de l'image, ou son format : ::" +"symbole pourcent comme marqueur pour les champs tels que la date actuelle, " +"le numéro de l'image ou son format : ::" #: ../Doc/tutorial/stdlib2.rst:125 msgid "" @@ -136,13 +137,13 @@ msgid "" "details of multiple output formats. This makes it possible to substitute " "custom templates for XML files, plain text reports, and HTML web reports." msgstr "" -"Un autre usage des templates est de séparer la logique métier dub côté et " -"les détails spécifiques à chaque format de sortie. Il est possible de " -"générer de cette manière des fichiers XML, texte, HTML, ..." +"Une autre utilisation des gabarits consiste à séparer la logique métier des " +"détails spécifiques à chaque format de sortie. Il est ainsi possible de " +"générer des gabarits spécifiques pour les fichiers XML, texte, HTML ..." #: ../Doc/tutorial/stdlib2.rst:133 msgid "Working with Binary Data Record Layouts" -msgstr "Travailler avec des données binaires" +msgstr "Traitement des données binaires" #: ../Doc/tutorial/stdlib2.rst:135 msgid "" @@ -159,11 +160,11 @@ msgstr "" "recourir au module :mod:`zipfile`. Les marqueurs ``\"H\"`` et ``\"I\"`` " "représentent des nombres entiers non signés, stockés respectivement sur deux " "et quatre octets. Le ``\"<\"`` indique qu'ils ont une taille standard et " -"dans le style petit-boutiste." +"utilisent la convention petit-boutiste : ::" #: ../Doc/tutorial/stdlib2.rst:166 msgid "Multi-threading" -msgstr "Threads" +msgstr "Fils d'exécution" #: ../Doc/tutorial/stdlib2.rst:168 msgid "" @@ -173,20 +174,21 @@ msgid "" "background. A related use case is running I/O in parallel with computations " "in another thread." msgstr "" -"Des tâches indépendantes peuvent être exécutées simultanément (on parle de " -"concourance), en utilisant des threads.Les threads peuvent améliorer la " -"réactivité d'une application qui accepterait d'interagir avec l'utilisateur " -"pendant que d'autres traitements sont exécutés en arrière plan. Un autre " -"usage typique est de séparer sur deux threads distincts les I/O (entrées / " -"sorties) et le calcul." +"Des tâches indépendantes peuvent être exécutées de manière non séquentielle " +"en utilisant des fils d'exécution (*threading* en anglais). Les fils " +"d'exécution peuvent être utilisés pour améliorer la réactivité d'une " +"application qui interagit avec l'utilisateur pendant que d'autres " +"traitements sont exécutés en arrière-plan. Une autre utilisation typique est " +"de séparer sur deux fils d'exécution distincts les entrées / sorties et le " +"calcul." #: ../Doc/tutorial/stdlib2.rst:173 msgid "" "The following code shows how the high level :mod:`threading` module can run " "tasks in background while the main program continues to run::" msgstr "" -"Le code suivant donne un exemple d'usage du module :mod:`threading` " -"exécutant des tâches en arrière plan pendant que le programme principal " +"Le code suivant donne un exemple d'utilisation du module :mod:`threading` " +"exécutant des tâches en arrière-plan pendant que le programme principal " "continue de s'exécuter : ::" #: ../Doc/tutorial/stdlib2.rst:197 @@ -196,11 +198,12 @@ msgid "" "module provides a number of synchronization primitives including locks, " "events, condition variables, and semaphores." msgstr "" -"Le challenge principal des applications multi tâches est la coordination " -"entre les threads qui partagent des données ou des ressources. Pour ce " +"Le principal défi des applications avec plusieurs fils d'exécution consiste " +"à coordonner ces fils qui partagent des données ou des ressources. Pour ce " "faire, le module ``threading`` expose quelques outils dédiés à la " -"synchronisation comme les verrous (locks), événement (events), variables " -"conditionnelles (condition variables), et les sémaphores." +"synchronisation comme les verrous (*locks* en anglais), les événements " +"(*events* en anglais), les variables conditionnelles (*condition variables* " +"en anglais) et les sémaphores (*semaphore* en anglais)." #: ../Doc/tutorial/stdlib2.rst:202 msgid "" @@ -212,13 +215,14 @@ msgid "" "thread communication and coordination are easier to design, more readable, " "and more reliable." msgstr "" -"Bien que ces outils soient puissants, des erreurs de conceptions peuvent " -"engendrer des problèmes difficiles à reproduire. Donc, l'approche favorite " -"pour coordonner des tâches est de restreindre l'accès d'une ressource à un " -"seul thread, et d'utiliser le module :mod:`queue` pour alimenter ce thread " -"de requêtes venant d'autres threads. Les applications utilisant des :class:" -"`~queue.Queue` pour leurs communication et coordination entre threads sont " -"plus simples à concevoir, plus lisible, et plus fiables." +"Bien que ces outils soient puissants, de petites erreurs de conception " +"peuvent engendrer des problèmes difficiles à reproduire. Donc, l'approche " +"classique pour coordonner des tâches est de restreindre l'accès d'une " +"ressource à un seul fil d'exécution et d'utiliser le module :mod:`queue` " +"pour alimenter ce fil d'exécution en requêtes venant d'autres fils " +"d'exécution. Les applications utilisant des :class:`~queue.Queue` pour leurs " +"communication et coordination entre fils d'exécution sont plus simples à " +"concevoir, plus lisibles et plus fiables." #: ../Doc/tutorial/stdlib2.rst:213 msgid "Logging" @@ -232,11 +236,11 @@ msgid "" msgstr "" "Le module :mod:`logging` est un système de journalisation complet. Dans son " "utilisation la plus élémentaire, les messages sont simplement envoyés dans " -"un fichier ou sur ``sys.stderr`` ::" +"un fichier ou sur ``sys.stderr`` : ::" #: ../Doc/tutorial/stdlib2.rst:225 msgid "This produces the following output:" -msgstr "Produisant l'affichage suivant :" +msgstr "Cela produit l'affichage suivant :" #: ../Doc/tutorial/stdlib2.rst:233 msgid "" @@ -248,11 +252,11 @@ msgid "" "`~logging.ERROR`, and :const:`~logging.CRITICAL`." msgstr "" "Par défaut, les messages d'information et de débogage sont ignorés, les " -"autres écrites sur la sortie standard. Il est aussi possible d'envoyer les " -"messages par email, datagrammes, sur des sockets, ou postés sur un serveur " -"HTTP. Les nouveaux filtres permettent d'utiliser des sorties différentes en " +"autres sont envoyés vers la sortie standard. Il est aussi possible d'envoyer " +"les messages par courriel, datagrammes, sur des sockets ou vers un serveur " +"HTTP. Des nouveaux filtres permettent d'utiliser des sorties différentes en " "fonction de la priorité du message : :const:`~logging.DEBUG`, :const:" -"`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging.ERROR`, et :" +"`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging.ERROR` et :" "const:`~logging.CRITICAL`." #: ../Doc/tutorial/stdlib2.rst:240 @@ -261,8 +265,9 @@ msgid "" "from a user editable configuration file for customized logging without " "altering the application." msgstr "" -"depuis un fichier de configuration, permettant de personnaliser le log sans " -"modifier l'application." +"La configuration de la journalisation peut être effectuée directement dans " +"le code Python ou peut être chargée depuis un fichier de configuration, " +"permettant de personnaliser la journalisation sans modifier l'application." #: ../Doc/tutorial/stdlib2.rst:248 msgid "Weak References" @@ -274,10 +279,10 @@ msgid "" "and :term:`garbage collection` to eliminate cycles). The memory is freed " "shortly after the last reference to it has been eliminated." msgstr "" -"Python gère lui même la mémoire (par comptage de référence pour la majorité " -"des objets, et en utilisant un :term:`ramasse-miettes`\\s (garbage " -"collector) pour éliminer les cycles). La mémoire est libérée rapidement " -"lorsque sa dernière référence est perdue." +"Python gère lui-même la mémoire (par comptage des références pour la plupart " +"des objets et en utilisant un :term:`ramasse-miettes` (*garbage collector* " +"en anglais) pour éliminer les cycles). La mémoire est libérée rapidement " +"lorsque sa dernière référence est supprimée." #: ../Doc/tutorial/stdlib2.rst:254 msgid "" @@ -290,19 +295,19 @@ msgid "" "weakref objects. Typical applications include caching objects that are " "expensive to create::" msgstr "" -"Cette approche fonctionne bien pour la majorité des applications, mais, " +"Cette approche fonctionne bien pour la majorité des applications mais, " "parfois, il est nécessaire de surveiller un objet seulement durant son " "utilisation par quelque chose d'autre. Malheureusement, le simple fait de le " -"suivre crée une référence, qui rend l'objet permanent. Le module :mod:" +"suivre crée une référence qui rend l'objet permanent. Le module :mod:" "`weakref` expose des outils pour suivre les objets sans pour autant créer " "une référence. Lorsqu'un objet n'est pas utilisé, il est automatiquement " -"supprimé du tableau des références faibles, et une fonction de rappel " -"(callback) est appelée. Un exemple typique est le cache d'objets coûteux à " -"créer : ::" +"supprimé du tableau des références faibles et une fonction de rappel " +"(*callback* en anglais) est appelée. Un exemple typique est le cache " +"d'objets coûteux à créer : ::" #: ../Doc/tutorial/stdlib2.rst:289 msgid "Tools for Working with Lists" -msgstr "Outils pour travailler avec des listes" +msgstr "Outils pour les listes" #: ../Doc/tutorial/stdlib2.rst:291 msgid "" @@ -310,9 +315,9 @@ msgid "" "sometimes there is a need for alternative implementations with different " "performance trade-offs." msgstr "" -"Beaucoup de structures de données peuvent être représentés avec des listes " -"natives. Cependant, parfois, d'autres besoins émergent, pour des structures " -"ayant des caractéristiques différentes, typiquement en terme de performance." +"Beaucoup de structures de données peuvent être représentées avec les listes " +"natives. Cependant, d'autres besoins peuvent émerger pour des structures " +"ayant des caractéristiques différentes, typiquement en termes de performance." #: ../Doc/tutorial/stdlib2.rst:295 msgid "" @@ -322,11 +327,11 @@ msgid "" "binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes per entry " "for regular lists of Python int objects::" msgstr "" -"Le module :mod:`array` fournit un objet :class:`~array.array()`, ne " -"permettant de stocker que des listes homogènes, mais d'une manière plus " -"compacte. L'exemple suivant montre une liste de nombres, stockés chacun sur " +"Le module :mod:`array` fournit un objet :class:`~array.array()` ne " +"permettant de stocker que des listes homogènes mais d'une manière plus " +"compacte. L'exemple suivant montre une liste de nombres stockés chacun sur " "deux octets non signés (marqueur ``\"H\"``) plutôt que d'utiliser 16 octets " -"comme l'aurais fait une liste classique : ::" +"comme l'aurait fait une liste classique : ::" #: ../Doc/tutorial/stdlib2.rst:308 msgid "" @@ -336,10 +341,11 @@ msgid "" "implementing queues and breadth first tree searches::" msgstr "" "Le module :mod:`collections` fournit la classe :class:`~collections." -"deque()`, qui ressemble à une liste, mais plus rapide à insérer ou sortir " -"des éléments par la gauche, et plus lente pour accéder aux éléments du " -"milieu. C'est objets sont particulièrement adaptés pour construire des " -"queues ou des algorithme de parcours d'arbre en largeur : ::" +"deque()`. Elle ressemble à une liste mais est plus rapide pour l'insertion " +"ou l'extraction des éléments par la gauche et plus lente pour accéder aux " +"éléments du milieu. Ces objets sont particulièrement adaptés pour construire " +"des queues ou des algorithmes de parcours d'arbres en largeur (ou BFS, pour " +"*Breadth First Search* en anglais) : ::" #: ../Doc/tutorial/stdlib2.rst:329 msgid "" @@ -347,7 +353,7 @@ msgid "" "other tools such as the :mod:`bisect` module with functions for manipulating " "sorted lists::" msgstr "" -"Au delà de fournir des implémentations de listes alternatives, la " +"En plus de fournir des implémentations de listes alternatives, la " "bibliothèque fournit des outils tels que :mod:`bisect`, un module contenant " "des fonctions de manipulation de listes triées : ::" @@ -358,14 +364,15 @@ msgid "" "This is useful for applications which repeatedly access the smallest element " "but do not want to run a full list sort::" msgstr "" -"Le module :mod:`heapq`, permettant d'implémenter des tas (heaps) à partir de " -"simple listes. La valeur la plus faible est toujours à la première position " -"(indice 0). C'est utile dans les cas où l'application souvent besoin de " -"trouver l'élément le plus petit sans trier entièrement la liste : ::" +"Le module :mod:`heapq` permet d'implémenter des tas (*heap* en anglais) à " +"partir de simples listes. La valeur la plus faible est toujours à la " +"première position (indice 0). C'est utile dans les cas où l'application " +"accède souvent à l'élément le plus petit mais sans vouloir classer " +"entièrement la liste : ::" #: ../Doc/tutorial/stdlib2.rst:355 msgid "Decimal Floating Point Arithmetic" -msgstr "Arithmétique décimale à Virgule Flottante" +msgstr "Arithmétique décimale à virgule flottante" #: ../Doc/tutorial/stdlib2.rst:357 msgid "" @@ -373,28 +380,28 @@ msgid "" "decimal floating point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" -"Le module :mod:`decimal` expose la classe :class:`~decimal.Decimal`, " -"spécialisée dans le calcul de nombres décimaux représentés en virgule " +"Le module :mod:`decimal` expose la classe :class:`~decimal.Decimal` : elle " +"est spécialisée dans le calcul de nombres décimaux représentés en virgule " "flottante. Par rapport à la classe native :class:`float`, elle est " -"particulièrement utile pour" +"particulièrement utile pour :" #: ../Doc/tutorial/stdlib2.rst:361 msgid "" "financial applications and other uses which require exact decimal " "representation," msgstr "" -"les application traitant de finance est autres usages nécessitant une " +"les applications traitant de finance et autres utilisations nécessitant une " "représentation décimale exacte," #: ../Doc/tutorial/stdlib2.rst:363 msgid "control over precision," -msgstr "contrôle sur la précision, " +msgstr "le contrôle de la précision," #: ../Doc/tutorial/stdlib2.rst:364 msgid "control over rounding to meet legal or regulatory requirements," msgstr "" -"contrôle sur les arrondis pour correspondre aux obligations légales ou du " -"régulateur," +"le contrôle sur les arrondis pour répondre à des obligations légales ou " +"réglementaires," #: ../Doc/tutorial/stdlib2.rst:365 msgid "tracking of significant decimal places, or" @@ -405,7 +412,7 @@ msgid "" "applications where the user expects the results to match calculations done " "by hand." msgstr "" -"les applications avec lesquelles l'utilisateur attend des résultats " +"les applications pour lesquelles l'utilisateur attend des résultats " "identiques aux calculs faits à la main." #: ../Doc/tutorial/stdlib2.rst:369 @@ -414,8 +421,8 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" -"Par exemple, calculer 5% de taxe sur une facture de 70 centimes donne un " -"résultat différent en nombre a virgule flottantes binaires et décimales. La " +"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " +"résultat différent en nombre à virgule flottante binaire et décimale. La " "différence devient significative lorsqu'on arrondit le résultat au centime " "près : ::" @@ -428,12 +435,12 @@ msgid "" "decimal quantities." msgstr "" "Le résultat d'un calcul donné par :class:`~decimal.Decimal` conserve les " -"zéro non-significatifs. La classe conserve automatiquement quatre décimales " +"zéros non-significatifs. La classe conserve automatiquement quatre décimales " "significatives pour des opérandes à deux décimales significatives. La classe " -"``Decimal`` imite les mathématiques tels qu'elles pourraient être effectuées " -"à la main, évitant les problèmes typique de l'arithmétique binaire à virgule " -"flottante qui n'est pas capable de représenter exactement certaines " -"quantités décimales." +"``Decimal`` imite les mathématiques telles qu'elles pourraient être " +"effectuées à la main, évitant les problèmes typiques de l'arithmétique " +"binaire à virgule flottante qui n'est pas capable de représenter exactement " +"certaines quantités décimales." #: ../Doc/tutorial/stdlib2.rst:385 msgid "" @@ -442,8 +449,8 @@ msgid "" "floating point::" msgstr "" "La représentation exacte de la classe :class:`~decimal.Decimal` lui permet " -"de faire des calculs du modulo ou des tests d'égalité qui ne seraient pas " -"possibles avec des virgules flottantes binaires : ::" +"de faire des calculs de modulo ou des tests d'égalité qui ne seraient pas " +"possibles avec une représentation à virgule flottante binaire : ::" #: ../Doc/tutorial/stdlib2.rst:399 msgid "" diff --git a/tutorial/venv.po b/tutorial/venv.po index 8d760bc3..62b7f0ad 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/tutorial/venv.rst:6 msgid "Virtual Environments and Packages" -msgstr "Environnements virtuels et Paquets" +msgstr "Environnements virtuels et paquets" #: ../Doc/tutorial/venv.rst:9 msgid "Introduction" @@ -34,9 +34,9 @@ msgid "" msgstr "" "Les programmes Python utilisent souvent des paquets et modules qui ne font " "pas partie de la bibliothèque standard. Ils nécessitent aussi, parfois, une " -"version spécifique de la bibliothèque, nécessitant par exemple qu'un certain " -"bug ai été corrigé, ou encore que le programme à été implémenté en utilisant " -"une version obsolète de l'interface de la bibliothèque." +"version spécifique d'une bibliothèque, par exemple parce qu'un certain bug a " +"été corrigé ou encore que le programme a été implémenté en utilisant une " +"version obsolète de l'interface de cette bibliothèque." #: ../Doc/tutorial/venv.rst:17 msgid "" @@ -46,12 +46,12 @@ msgid "" "are in conflict and installing either version 1.0 or 2.0 will leave one " "application unable to run." msgstr "" -"Cela signifie qu'il n'est pas forcément possible, pour une installation de " -"Python, de couvrir tous les besoins de toutes les applications. Basiquement, " -"si une application A dépend de la version 1.0 d'un module et qu'une " -"application B dépend de la version 2.0, il y a conflit, et installer la " -"version 1.0 ou 2.0 laissera une des deux application incapable de " -"fonctionner." +"Cela signifie qu'il n'est pas toujours possible, pour une installation " +"unique de Python, de couvrir tous les besoins de toutes les applications. " +"Basiquement, si une application A dépend de la version 1.0 d'un module et " +"qu'une application B dépend de la version 2.0, ces dépendances entrent en " +"conflit et installer la version 1.0 ou 2.0 laisse une des deux applications " +"incapable de fonctionner." #: ../Doc/tutorial/venv.rst:23 msgid "" @@ -84,7 +84,7 @@ msgstr "" #: ../Doc/tutorial/venv.rst:37 msgid "Creating Virtual Environments" -msgstr "Création d'Environnements Virtuels" +msgstr "Création d'environnements virtuels" #: ../Doc/tutorial/venv.rst:39 msgid "" @@ -115,9 +115,9 @@ msgid "" "also create directories inside it containing a copy of the Python " "interpreter, the standard library, and various supporting files." msgstr "" -"Cela créera le dossier ``tutorial-env`` (s'il n'existe pas) et des sous " +"Cela crée le dossier ``tutorial-env`` (s'il n'existe pas) et des sous-" "dossiers contenant une copie de l'interpréteur Python, de la bibliothèque " -"standard, et quelques autres fichiers utiles." +"standard et quelques autres fichiers utiles." #: ../Doc/tutorial/venv.rst:56 msgid "Once you've created a virtual environment, you need to activate it." @@ -125,7 +125,7 @@ msgstr "Une fois le virtualenv créé, vous devez l'activer." #: ../Doc/tutorial/venv.rst:59 msgid "On Windows, run::" -msgstr "Sur windows, lancez : ::" +msgstr "Sur Windows, lancez : ::" #: ../Doc/tutorial/venv.rst:63 msgid "On Unix or MacOS, run::" @@ -137,9 +137,9 @@ msgid "" "or :program:`fish` shells, there are alternate ``activate.csh`` and " "``activate.fish`` scripts you should use instead.)" msgstr "" -"(Ce script est écrit pour le shell :program:`bash`, si vous utilisez :" +"NB : ce script est écrit pour le shell :program:`bash`. Si vous utilisez :" "program:`csh` ou :program:`fish`, utilisez les variantes ``activate.csh`` ou " -"``activate.fish``.)" +"``activate.fish``." #: ../Doc/tutorial/venv.rst:72 msgid "" @@ -155,7 +155,7 @@ msgstr "" #: ../Doc/tutorial/venv.rst:89 msgid "Managing Packages with pip" -msgstr "Gérer les Paquets avec pip" +msgstr "Gestion des paquets avec pip" #: ../Doc/tutorial/venv.rst:91 msgid "" @@ -178,9 +178,9 @@ msgid "" "\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete " "documentation for ``pip``.)" msgstr "" -"``pip`` a plusieurs sous commandes : \"search\", \"install\", \" uninstall" -"\", \"freeze\", etc... (Consultez le guide :ref:`installing-index` contenant " -"une documentation exhaustive sur ``pip``.)" +"``pip`` a plusieurs sous-commandes : \"search\", \"install\", \" uninstall" +"\", \"freeze\", etc. Consultez le guide :ref:`installing-index` pour une " +"documentation exhaustive sur ``pip``." #: ../Doc/tutorial/venv.rst:110 msgid "" @@ -216,8 +216,8 @@ msgid "" "``pip uninstall`` followed by one or more package names will remove the " "packages from the virtual environment." msgstr "" -"``pip uninstall`` suivi d'un ou plusieurs noms de paquets les supprimera de " -"votre virtualenv." +"``pip uninstall`` suivi d'un ou plusieurs noms de paquets les supprime de " +"votre environnement virtuel." #: ../Doc/tutorial/venv.rst:144 msgid "``pip show`` will display information about a particular package::" @@ -260,6 +260,6 @@ msgid "" "want to make it available on the Python Package Index, consult the :ref:" "`distributing-index` guide." msgstr "" -"``pip`` a beaucoup d'autres options, documentées dans le guide :ref:" -"`installing-index`. Lorsque vous aurez écrit un paquet, si vous voulez le " +"``pip`` reconnait beaucoup d'autres options, documentées dans le guide :ref:" +"`installing-index`. Lorsque vous avez écrit un paquet, si vous voulez le " "rendre disponible sur PyPI, lisez le guide :ref:`distributing-index`." diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 2549b258..6d637f42 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/tutorial/whatnow.rst:5 msgid "What Now?" -msgstr "Et Maintenant ?" +msgstr "Pour aller plus loin" #: ../Doc/tutorial/whatnow.rst:7 msgid "" @@ -26,16 +26,16 @@ msgid "" "--- you should be eager to apply Python to solving your real-world problems. " "Where should you go to learn more?" msgstr "" -"Lire ce tutoriel a probablement renforcé votre intérêt pour Python, en der " -"l'utiliser pour résoudre des vrais problèmes. Ou devriez vous aller pour en " -"apprendre plus ?" +"La lecture de ce tutoriel a probablement renforcé votre intérêt pour Python " +"et vous devez être impatient de l'utiliser pour résoudre des vrais " +"problèmes. Où aller pour en apprendre plus ?" #: ../Doc/tutorial/whatnow.rst:11 msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" msgstr "" -"Ce tutoriel fait partie de la documentation de Python, mais la documentation " +"Ce tutoriel fait partie de la documentation de Python, et la documentation " "de Python est vaste : ::" #: ../Doc/tutorial/whatnow.rst:14 @@ -52,14 +52,15 @@ msgid "" "compress data, and many other tasks. Skimming through the Library Reference " "will give you an idea of what's available." msgstr "" -"Vous devriez naviguer dans le manuel, il est une référence complète, (et " -"donc laconique...) sur les types, fonctions, et modules de la bibliothèque " -"standard. La distribution standard de Python inclus *énormément* de code " -"supplémentaire. Il existe des modules pour lire des emails, récupérer des " -"documents via HTTP, générer des nombres aléatoires, analyser les paramètres " -"de la ligne de commande, écrire des programmes CGI, compresser de la donnée, " -"et plein d'autres tâches. Vous balader dans la documentation de la " -"bibliothèque vous donnera une idée de ce qui est disponnible." +"Nous vous conseillons de naviguer dans le manuel, c'est une référence " +"complète (quoique laconique) sur les types, fonctions et modules de la " +"bibliothèque standard. La distribution standard de Python inclut " +"*énormément* de code supplémentaire. Il existe des modules pour lire les " +"courriels, récupérer des documents *via* HTTP, générer des nombres " +"aléatoires, analyser les paramètres de la ligne de commande, écrire des " +"programmes CGI, compresser des données et beaucoup d'autres fonctions. Une " +"balade dans la documentation de la bibliothèque vous donnera une idée de ce " +"qui est disponible." #: ../Doc/tutorial/whatnow.rst:24 msgid "" @@ -75,13 +76,13 @@ msgid "" "semantics. It's heavy reading, but is useful as a complete guide to the " "language itself." msgstr "" -":ref:`reference-index`: Une explication détaillée de la syntaxe et " -"sémantique de Python. C'est une lecture fastidieuse, mais qui a sa place " +":ref:`reference-index` contient une explication détaillée de la syntaxe et " +"sémantique de Python. C'est une lecture fastidieuse, mais elle a sa place " "dans une documentation exhaustive." #: ../Doc/tutorial/whatnow.rst:31 msgid "More Python resources:" -msgstr "D'autres ressources:" +msgstr "D'autres ressources :" #: ../Doc/tutorial/whatnow.rst:33 msgid "" @@ -91,18 +92,18 @@ msgid "" "Japan, and Australia; a mirror may be faster than the main site, depending " "on your geographical location." msgstr "" -"https://www.python.org: C'est le site principal pour Python, il y contient " -"du code, de la documentation, des liens vers d'autres sites à propos de " -"Python tout autour d'internet. Il est répliqué dans différents endroits " -"autours du globe, comme en Europe, au Japon, et en Australie, ces répliques " -"peuvent dans certains cas être plus rapides que le site principal, tout " -"dépend d'où vous vous situez." +"https://www.python.org est le site principal pour Python. Il contient du " +"code, de la documentation, des liens vers d'autres sites traitant de Python " +"partout sur Internet. Il est répliqué dans différents endroits autour du " +"globe, comme en Europe, au Japon et en Australie. Ces répliques peuvent dans " +"certains cas être plus rapides que le site principal, en fonction de " +"l'endroit où vous vous trouvez." #: ../Doc/tutorial/whatnow.rst:39 msgid "https://docs.python.org: Fast access to Python's documentation." msgstr "" -"https://docs.python.org/fr/: Un accès rapide à la documentation de Python " -"en français." +"https://docs.python.org/fr/ offre un accès rapide à la documentation de " +"Python en français." #: ../Doc/tutorial/whatnow.rst:41 msgid "" @@ -126,9 +127,9 @@ msgid "" "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" "https://code.activestate.com/recipes/langs/python/: \"The Python Cookbook\" " -"est un recueil assez important d'exemples de code, de modules, et de " -"scripts. Les contributions les plus remarquables y sont regroupées dans un " -"livre appelé \"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3.)" +"est un recueil assez imposant d'exemples de code, de modules et de scripts. " +"Les contributions les plus remarquables y sont regroupées dans le livre " +"\"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3)." #: ../Doc/tutorial/whatnow.rst:51 msgid "" @@ -136,7 +137,8 @@ msgid "" "conferences and user-group meetings." msgstr "" "http://www.pyvideo.org regroupe des liens vers des vidéos relatives à " -"Python, de conférences ou de réunions de groupes d'utilisateurs." +"Python, enregistrées lors de conférences ou de réunions de groupes " +"d'utilisateurs." #: ../Doc/tutorial/whatnow.rst:54 msgid "" @@ -145,11 +147,11 @@ msgid "" "as linear algebra, Fourier transforms, non-linear solvers, random number " "distributions, statistical analysis and the like." msgstr "" -"https://scipy.org: Le projet \"The Scientific Python\" inclu des modules " -"pour manipuler et effectuer des calculs efficients sur des listes. Le projet " -"héberge aussi des paquets divers pour manipuler entre autre l'algèbre " -"linéaire, les transformées de Fourier, des résolveurs non-linéaires, la " -"distributions de nombres aléatoires, l'analyse statistique, etc." +"https://scipy.org : le projet \"The Scientific Python\" contient des modules " +"pour manipuler et calculer rapidement sur des tableaux. Le projet héberge " +"aussi divers paquets sur l'algèbre linéaire, les transformées de Fourier, " +"des résolveurs non-linéaires, différentes distributions de nombres " +"aléatoires, l'analyse statistique et d'autres choses du domaine scientifique." #: ../Doc/tutorial/whatnow.rst:59 msgid "" @@ -161,13 +163,13 @@ msgid "" "new features, and announcing new modules. Mailing list archives are " "available at https://mail.python.org/pipermail/." msgstr "" -"Pour poser des questions ou rapporter des problèmes liés à Python, vous " -"pouvez écrire sur le forum :newsgroup:`comp.lang.python`, ou les envoyer à " -"la liste de diffusion à python-list@python.org. Le forum et la liste de " +"Pour poser des questions ou remonter des problèmes liés à Python, vous " +"pouvez écrire sur le forum :newsgroup:`comp.lang.python` ou les envoyer à la " +"liste de diffusion à python-list@python.org. Le forum et la liste de " "diffusion sont liées, un message publié sur l'un sera automatiquement " -"transféré sur l'autre. Il y sont publiés des centaines de messages par jour, " -"demandant (ou répondant) à des questions, suggérant des nouvelles " -"fonctionalités, et annoncant des nouveaux modules. Les archives sont " +"transféré sur l'autre. Des centaines de messages y sont publiés chaque jour, " +"posant (ou répondant à) des questions, suggérant de nouvelles " +"fonctionnalités et annonçant des nouveaux modules. Les archives sont " "disponibles à https://mail.python.org/pipermail/." #: ../Doc/tutorial/whatnow.rst:67 @@ -177,6 +179,7 @@ msgid "" "questions that come up again and again, and may already contain the solution " "for your problem." msgstr "" -"Avant de poster, assurez vous d'avoir lu la liste de la :ref:`Foire Aux " -"Questions ` (aussi appelée FAQ). La FAQ répond à beaucoup de " -"questions fréquentes, et contient probablement une solution à votre problème." +"Avant de publier un message, assurez-vous d'avoir lu la liste de la :ref:" +"`Foire Aux Questions ` (aussi appelée FAQ). La FAQ répond à " +"beaucoup de questions fréquentes et contient probablement une solution à " +"votre problème." diff --git a/using/cmdline.po b/using/cmdline.po index 6b518628..20e847e1 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -26,15 +26,15 @@ msgid "" "various settings." msgstr "" "L'interpréteur CPython analyse la ligne de commande et l'environnement à la " -"recherche de différents paramètres/" +"recherche de différents paramètres." #: ../Doc/using/cmdline.rst:16 msgid "" "Other implementations' command line schemes may differ. See :ref:" "`implementations` for further resources." msgstr "" -"Le format des lignes de commandes utilisées par d'autres implémentations " -"peut être différent. Voir :ref:`implementations` pour plus d'informations." +"Le format des lignes de commande utilisé par d'autres implémentations peut " +"s'avérer différent. Voir :ref:`implementations` pour plus d'informations." #: ../Doc/using/cmdline.rst:23 msgid "Command line" @@ -44,7 +44,7 @@ msgstr "Ligne de commande" msgid "When invoking Python, you may specify any of these options::" msgstr "" "Quand vous invoquez Python, vous pouvez spécifier n’importe laquelle de ces " -"options :" +"options ::" #: ../Doc/using/cmdline.rst:29 msgid "" @@ -62,7 +62,7 @@ msgid "" "The interpreter interface resembles that of the UNIX shell, but provides " "some additional methods of invocation:" msgstr "" -"L'interface de l’interpréteur ressemble à celle du shell UNIX, mais fournit " +"L'interface de l’interpréteur ressemble à celle du shell UNIX mais fournit " "quelques méthodes d'invocation supplémentaires :" #: ../Doc/using/cmdline.rst:42 @@ -74,7 +74,7 @@ msgid "" msgstr "" "Quand l'interpréteur est appelé avec l'entrée standard connectée à un " "périphérique tty, il lit les lignes de commande et les exécute jusqu'à ce " -"qu'un caractère EOF (un caractère fin de fichier, que vous pouvez produire " +"qu'un caractère EOF (caractère fin de fichier, que vous pouvez produire " "avec :kbd:`Ctrl-D` sous UNIX ou :kbd:`Ctrl-Z, Enter` sous Windows) soit lu." #: ../Doc/using/cmdline.rst:45 @@ -82,7 +82,7 @@ msgid "" "When called with a file name argument or with a file as standard input, it " "reads and executes a script from that file." msgstr "" -"Quand l'interpréteur est appelé avec argument correspondant à un nom de " +"Quand l'interpréteur est appelé avec un argument correspondant à un nom de " "fichier ou avec un fichier comme entrée standard, il lit et exécute le " "script contenu dans ce fichier." @@ -92,8 +92,7 @@ msgid "" "appropriately named script from that directory." msgstr "" "Quand l'interpréteur est appelé avec un argument correspondant à un " -"répertoire, il lit et exécute un script nommé d’une certaine façon depuis ce " -"répertoire." +"répertoire, il lit et exécute un script d’un certain nom dans ce répertoire." #: ../Doc/using/cmdline.rst:49 msgid "" @@ -119,7 +118,7 @@ msgstr "" msgid "" "In non-interactive mode, the entire input is parsed before it is executed." msgstr "" -"En mode non-interactif, toute l’entrée est analysée avant d’être exécutée. " +"En mode non-interactif, toute l’entrée est analysée avant d’être exécutée." #: ../Doc/using/cmdline.rst:57 msgid "" @@ -128,10 +127,10 @@ msgid "" "note that the first element, subscript zero (``sys.argv[0]``), is a string " "reflecting the program's source." msgstr "" -"Une option d'interface termine la listes des options consommées par " -"l'interpréteur ; tous les arguments échoueront dans :data:`sys.argv` — notez " -"que le premier élément, à l'indice zéro (``sys.argv|0]``), est une chaîne de " -"caractères indiquant la source du programme." +"Une option d'interface termine la liste des options consommées par " +"l'interpréteur ; tous les arguments atterrissent dans :data:`sys.argv` " +"— notez que le premier élément, à l'indice zéro (``sys.argv|0]``), est une " +"chaîne de caractères indiquant la source du programme." #: ../Doc/using/cmdline.rst:64 msgid "" @@ -140,8 +139,8 @@ msgid "" "normal module code." msgstr "" "Exécute le code Python dans *command*. *command* peut être une ou plusieurs " -"instructions, séparées par des fins de ligne, dont les espaces en debut de " -"ligne sont significatifs, comme dans le code d’un module." +"instructions, séparées par des fins de ligne, dont les espaces en début de " +"ligne sont significatives, comme dans le code d’un module." #: ../Doc/using/cmdline.rst:68 msgid "" @@ -150,17 +149,17 @@ msgid "" "path` (allowing modules in that directory to be imported as top level " "modules)." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera ``\"-" -"c\"`` et le répertoire courant sera ajouté au début de :data:`sys.path` " -"(permettant aux modules de ce répertoire d'être importé comme des modules de " -"premier niveau)." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-c" +"\"`` et le répertoire courant est ajouté au début de :data:`sys.path` " +"(permettant aux modules de ce répertoire d'être importés comme des modules " +"de premier niveau)." #: ../Doc/using/cmdline.rst:76 msgid "" "Search :data:`sys.path` for the named module and execute its contents as " "the :mod:`__main__` module." msgstr "" -"Parcourir :data:`sys.path` à la recherche du module donné et exécuter son " +"Parcourt :data:`sys.path` à la recherche du module donné et exécute son " "contenu en tant que module :mod:`__main__`." #: ../Doc/using/cmdline.rst:79 @@ -183,11 +182,12 @@ msgid "" "deliberately similar to the handling of directories and zipfiles that are " "passed to the interpreter as the script argument." msgstr "" -"Les noms de paquets sont aussi autorisés (ainsi que les *namespace " -"packages*). Quand un nom de paquet est donné à la place d'un module " -"habituel, l'interpréteur exécutera ``.__main__`` comme module " -"principal. Ce comportement est délibérement identique à un dossier on un " -"fichier zip donné à en argument à l'interpréteur comme script." +"Les noms de paquets sont aussi autorisés (ainsi que les paquets-espace de " +"noms, *namespace packages* en anglais). Quand un nom de paquet est donné à " +"la place d'un simple module, l'interpréteur exécute ``.__main__`` comme " +"module principal. Ce comportement est délibérément identique au traitement " +"d'un dossier ou d'un fichier zip donné en argument à l'interpréteur comme " +"script." #: ../Doc/using/cmdline.rst:93 msgid "" @@ -196,10 +196,10 @@ msgid "" "still be used for precompiled modules, even if the original source file is " "not available." msgstr "" -"Cette option ne peut pas être utilisée avec les modules intégrés et les " +"cette option ne peut pas être utilisée avec les modules intégrés et les " "modules d'extension écrits en C, étant donné qu'il ne possèdent pas de " -"fichiers modules en Python. Cependant, elle peut toujours être utilisées " -"pour les modules pré-complilés, même si le fichier source original n'est pas " +"fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " +"les modules précompilés, même si le fichier source original n'est pas " "disponible." #: ../Doc/using/cmdline.rst:98 @@ -209,10 +209,10 @@ msgid "" "first element will be set to ``\"-m\"``). As with the :option:`-c` option, " "the current directory will be added to the start of :data:`sys.path`." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera le " +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " "chemin complet d'accès au fichier du module (pendant que le fichier est " -"recherché, le premier élément sera mis à ``\"-m\"``). Comme avec l'option :" -"option:`-c`, le dossier courant sera ajouté au début de :data:`sys.path`." +"recherché, le premier élément est mis à ``\"-m\"``). Comme avec l'option :" +"option:`-c`, le dossier courant est ajouté au début de :data:`sys.path`." #: ../Doc/using/cmdline.rst:103 msgid "" @@ -229,19 +229,19 @@ msgstr "" #: ../Doc/using/cmdline.rst:111 ../Doc/using/cmdline.rst:153 msgid "Equivalent functionality directly available to Python code" -msgstr "" +msgstr "Fonctionnalité équivalente directement disponible en code Python" #: ../Doc/using/cmdline.rst:113 msgid ":pep:`338` -- Executing modules as scripts" -msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" #: ../Doc/using/cmdline.rst:116 msgid "Supply the package name to run a ``__main__`` submodule." -msgstr "" +msgstr "Fournir le nom d'un paquet pour exécuter un sous-module ``__main__``." #: ../Doc/using/cmdline.rst:119 msgid "namespace packages are also supported" -msgstr "" +msgstr "Les paquets-espaces de noms sont supportés." #: ../Doc/using/cmdline.rst:125 msgid "" @@ -249,7 +249,7 @@ msgid "" "a terminal, :option:`-i` is implied." msgstr "" "Lit les commandes depuis l'entrée standard (:data:`sys.stdin`). Si l'entrée " -"standard est un terminal, l':option:`-i` est activée implicitement." +"standard est un terminal, l'option :option:`-i` est activée implicitement." #: ../Doc/using/cmdline.rst:128 msgid "" @@ -257,8 +257,8 @@ msgid "" "\"`` and the current directory will be added to the start of :data:`sys." "path`." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera ``\"-" -"\"`` et le dossier courant sera ajouté au début de :data:`sys.path`." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-" +"\"`` et le dossier courant est ajouté au début de :data:`sys.path`." #: ../Doc/using/cmdline.rst:135 msgid "" @@ -268,17 +268,17 @@ msgid "" "file." msgstr "" "Exécute le code Python contenu dans *script*, qui doit être un chemin " -"d'accès au fichier (absolu ou relatif), se référant à un fichier Python, à " -"un répertoire contenant un fichier ``__main__.py`` ou à un fichier zip " -"contenant un fichier ``__main__.py``." +"d'accès (absolu ou relatif) à un fichier, faisant référence à un fichier " +"Python, à un répertoire contenant un fichier ``__main__.py`` ou à un fichier " +"zip contenant un fichier ``__main__.py``." #: ../Doc/using/cmdline.rst:140 msgid "" "If this option is given, the first element of :data:`sys.argv` will be the " "script name as given on the command line." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera le " -"nom du script comme donné sur la ligne de commande." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " +"nom du script tel que donné sur la ligne de commande." #: ../Doc/using/cmdline.rst:143 msgid "" @@ -287,7 +287,7 @@ msgid "" "is executed as the :mod:`__main__` module." msgstr "" "Si le nom du script se réfère directement à un fichier Python, le répertoire " -"contenant ce fichier est ajouté au début de :data:`sys.path`, et le fichier " +"contenant ce fichier est ajouté au début de :data:`sys.path` et le fichier " "est exécuté en tant que module :mod:`__main__`." #: ../Doc/using/cmdline.rst:147 @@ -312,11 +312,11 @@ msgid "" "automatically enabled, if available on your platform (see :ref:`rlcompleter-" "config`)." msgstr "" -"Si aucune option d'interface n'est donnée, :option:`-i` est implicite, ``sys." -"argv[0]`` est une chaine vide (``\"\"``) et le dossier courant sera ajouté " -"au début de :data:`sys.path`. Aussi, la complétion des tabulations et " -"l'édition de l'historique seront automatiquement activés, s'ils sont " -"disponnibles sur votre système (voir :ref:`rlcompleter-config`)." +"Si aucune option d'interface n'est donnée, l'option :option:`-i` est activée " +"implicitement, ``sys.argv[0]`` est une chaine vide (``\"\"``) et le dossier " +"courant est ajouté au début de :data:`sys.path`. Aussi, la complétion par " +"tabulation et l'édition de l'historique sont automatiquement activés, s'ils " +"sont disponibles sur votre système (voir :ref:`rlcompleter-config`)." #: ../Doc/using/cmdline.rst:162 msgid ":ref:`tut-invoking`" @@ -325,6 +325,8 @@ msgstr "" #: ../Doc/using/cmdline.rst:164 msgid "Automatic enabling of tab-completion and history editing." msgstr "" +"activation automatique de la complétion par tabulation et édition de " +"l'historique." #: ../Doc/using/cmdline.rst:169 msgid "Generic options" @@ -333,7 +335,7 @@ msgstr "Options génériques" #: ../Doc/using/cmdline.rst:175 msgid "Print a short description of all command line options." msgstr "" -"Affiche une brève description de toutes les options de ligne de commande." +"Affiche une brève description de toutes les options de la ligne de commande." #: ../Doc/using/cmdline.rst:181 msgid "Print the Python version number and exit. Example output could be::" @@ -352,14 +354,14 @@ msgstr "" #: ../Doc/using/cmdline.rst:197 msgid "Affects comparisons of :class:`bytes` with :class:`int`." -msgstr "" +msgstr "Concerne les comparaisons de :class:`bytes` avec :class:`int`." #: ../Doc/using/cmdline.rst:202 msgid "" "If given, Python won't try to write ``.pyc`` files on the import of source " "modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." msgstr "" -"S'il est donné, Python ne tentera pas d'écrire de fichier ``.pyc``` ou ``." +"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc``` ou ``." "pyo`` à l'importation des modules source. Voir aussi :envvar:" "`PYTHONDONTWRITEBYTECODE`." @@ -368,17 +370,17 @@ msgid "" "Turn on parser debugging output (for wizards only, depending on compilation " "options). See also :envvar:`PYTHONDEBUG`." msgstr "" -"Activer la sortie de l'analyseur de débogage (pour les magiciens uniquement, " -"en fonction des options de compilation). Voir aussi :envvar:`PYTHONDEBUG`." +"Active la sortie de l'analyseur en mode débogage (pour les experts " +"uniquement, en fonction des options de compilation). Voir aussi :envvar:" +"`PYTHONDEBUG`." #: ../Doc/using/cmdline.rst:214 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" -"Ignorer toutes les variables d'environnement :envvar:`PYTHON*`, par " -"exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`, qui pourraient être " -"définies." +"Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " +"être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." #: ../Doc/using/cmdline.rst:220 msgid "" @@ -388,7 +390,7 @@ msgid "" "`PYTHONSTARTUP` file is not read." msgstr "" "Quand un script est passé comme premier argument ou que l'option :option:`-" -"c` est utilisée, entrer en mode interactif après avoir exécuté le script ou " +"c` est utilisée, entre en mode interactif après avoir exécuté le script ou " "la commande, même lorsque :data:`sys.stdin` ne semble pas être un terminal. " "Le fichier :envvar:`PYTHONSTARTUP` n'est pas lu." @@ -409,26 +411,34 @@ msgid "" "too. Further restrictions may be imposed to prevent the user from injecting " "malicious code." msgstr "" +"Lance Python en mode isolé. Cela implique aussi -E et -s. En mode isolé, :" +"data:`sys.path` ne contient ni le répertoire du script ni le répertoire " +"*site-packages* de l'utilisateur. Toutes les variables d'environnement :" +"envvar:`PYTHON*` sont aussi ignorées. Davantage de restrictions peuvent être " +"imposées pour éviter que l'utilisateur n'injecte du code malicieux." #: ../Doc/using/cmdline.rst:242 msgid "Turn on basic optimizations. See also :envvar:`PYTHONOPTIMIZE`." msgstr "" +"Active les optimisations basiques. Voir aussi :envvar:`PYTHONOPTIMIZE`." #: ../Doc/using/cmdline.rst:247 msgid "Discard docstrings in addition to the :option:`-O` optimizations." msgstr "" -"Supprimer les docstrings en plus des optimisations réalisés par :option:`-O`." +"Supprime les docstrings en plus des optimisations réalisées par :option:`-O`." #: ../Doc/using/cmdline.rst:252 msgid "" "Don't display the copyright and version messages even in interactive mode." -msgstr "" +msgstr "N'affiche pas le copyright et la version, même en mode interactif." #: ../Doc/using/cmdline.rst:259 msgid "" "Kept for compatibility. On Python 3.3 and greater, hash randomization is " "turned on by default." msgstr "" +"Conservé pour compatibilité ascendante. Sur Python 3.3 ou supérieur, la " +"randomisation des empreintes (*hash* en anglais) est activée par défaut." #: ../Doc/using/cmdline.rst:262 msgid "" @@ -438,6 +448,12 @@ msgid "" "individual Python process, they are not predictable between repeated " "invocations of Python." msgstr "" +"Sur les versions précédentes de Python, cette option activait la " +"randomisation des empreintes de manière à ce que les :meth:`__hash__` de " +"chaînes, bytes et datetime soient \"salés\" avec une valeur aléatoire non " +"prévisible. Bien que ce sel soit constant durant le déroulement d'un " +"processus Python, il n'est pas prévisible pour des invocations répétées de " +"code Python." #: ../Doc/using/cmdline.rst:268 msgid "" @@ -446,25 +462,32 @@ msgid "" "performance of a dict construction, O(n^2) complexity. See http://www.ocert." "org/advisories/ocert-2011-003.html for details." msgstr "" +"La randomisation des empreintes a pour objectif de se protéger contre les " +"dénis de service qui utiliseraient des valeurs d'entrée judicieusement " +"choisies afin de forcer la construction des dictionnaires dans le pire cas, " +"c'est-à-dire avec une complexité en O(n^2). Voir http://www.ocert.org/" +"advisories/ocert-2011-003.html pour obtenir les détails." #: ../Doc/using/cmdline.rst:273 msgid "" ":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " "secret." msgstr "" +":envvar:`PYTHONHASHSEED` vous permet de définir vous-même la valeur du sel " +"pour l'algorithme de calcul des empreintes." #: ../Doc/using/cmdline.rst:281 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." msgstr "" -"Ne pas ajouter le :data:`user site-packages directory ` à :" -"data:`sys.path`." +"N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:286 ../Doc/using/cmdline.rst:565 #: ../Doc/using/cmdline.rst:577 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Per user site-packages directory" +msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." #: ../Doc/using/cmdline.rst:291 msgid "" @@ -473,10 +496,10 @@ msgid "" "manipulations if :mod:`site` is explicitly imported later (call :func:`site." "main` if you want them to be triggered)." msgstr "" -"Désactiver l’importation du module :mod:`site` et les modifications locales " +"Désactive l’importation du module :mod:`site` et les modifications locales " "de :data:`sys.path` qu’il implique. Désactive aussi ces manipulations si :" -"mod:`site` est importé explicitement pluis tard (appellez :func:`site.main` " -"si vous voulez les déclencher)." +"mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " +"vous voulez les déclencher)." #: ../Doc/using/cmdline.rst:299 msgid "" @@ -485,9 +508,10 @@ msgid "" "still be line-buffered if writing to the console, or block-buffered if " "redirected to a non-interactive file." msgstr "" -"Désactive les buffers de la couche binaire des flux stdout and stderr " -"(disponible comme leur attribut ``buffer``). La couche d’entrée-sortie sera " -"mise en buffer ligne par ligne lors de l'écriture sur la console, ou par " +"Désactive les mémoires tampons de la couche binaire des flux de la sortie " +"standard (stdout) et de la sortie d'erreurs (stderr) (ils restent " +"accessibles *via* leur attribut ``buffer``). La couche d’entrée-sortie est " +"mise en tampon ligne par ligne lors de l'écriture sur la console, ou par " "blocs si elle est redirigée sur un fichier non-interactif." #: ../Doc/using/cmdline.rst:304 @@ -515,9 +539,9 @@ msgid "" "By default, each warning is printed once for each source line where it " "occurs. This option controls how often warnings are printed." msgstr "" -"Par défaut, chaque avertissement est affiché une fois pour chaque ligne de " -"source où il se trouve. Cette option définit à quelle fréquence afficher ces " -"avertissements." +"Par défaut, chaque avertissement est affiché une seule fois pour chaque " +"ligne de source où il se trouve. Cette option définit à quelle fréquence " +"afficher ces avertissements." #: ../Doc/using/cmdline.rst:327 msgid "" @@ -526,20 +550,27 @@ msgid "" "option:`-W` options are ignored (though, a warning message is printed about " "invalid options when the first warning is issued)." msgstr "" +"L'option :option:`-W` peut être répétée ; lorsqu'un avertissement correspond " +"à plus d'une option, l'action associée à la dernière correspondance est " +"effectuée. Les options :option:`-W` invalides sont ignorées (cependant, un " +"message d'avertissement est affiché sur les options invalides au moment où " +"le premier avertissement est généré)." #: ../Doc/using/cmdline.rst:332 msgid "" "Warnings can also be controlled from within a Python program using the :mod:" "`warnings` module." msgstr "" +"Les avertissements peuvent aussi être contrôlés dans le programme Python en " +"utilisant le module :mod:`warnings`." #: ../Doc/using/cmdline.rst:335 msgid "" "The simplest form of argument is one of the following action strings (or a " "unique abbreviation):" msgstr "" -"La forme la plus simple de l'argument est l'une des chaînes d'action " -"suivante (ou une abréviation unique) :" +"La forme la plus simple de l'argument est l'une des chaînes d'actions " +"suivantes (ou une abréviation unique) :" #: ../Doc/using/cmdline.rst:338 msgid "``ignore``" @@ -547,7 +578,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:339 msgid "Ignore all warnings." -msgstr "Ignorer tous les avertissements." +msgstr "Ignore tous les avertissements." #: ../Doc/using/cmdline.rst:341 msgid "``default``" @@ -558,6 +589,8 @@ msgid "" "Explicitly request the default behavior (printing each warning once per " "source line)." msgstr "" +"Demande explicitement le comportement par défaut (affiche chaque " +"avertissement une fois par ligne de code source)." #: ../Doc/using/cmdline.rst:345 msgid "``all``" @@ -625,7 +658,7 @@ msgstr "" "affiché, cette expression est insensible à la casse. Le champ *category* " "correspond à la catégorie d'avertissement. Ce nom doit être un nom complet " "de classe ; La règle s'applique à tous les messages d'alertes construits " -"avec une classe héritante de celle spécifiée. Le nom de la classe complète " +"avec une classe qui hérite de celle spécifiée. Le nom de la classe complète " "doit être donnée. Le champ *module* correspond au nom (pleinement qualifié) " "du module, cette correspondance est sensible à la casse. Le champ *line* " "correspond au numéro de ligne, où zéro correspond à n'importe quel numéro de " @@ -633,7 +666,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:370 msgid ":mod:`warnings` -- the warnings module" -msgstr "" +msgstr ":mod:`warnings` -- le module qui gère les avertissements." #: ../Doc/using/cmdline.rst:372 msgid ":pep:`230` -- Warning framework" @@ -648,6 +681,9 @@ msgid "" "Skip the first line of the source, allowing use of non-Unix forms of ``#!" "cmd``. This is intended for a DOS specific hack only." msgstr "" +"Saute la première ligne du code source, autorisant ainsi les directives de " +"type ``#!cmd`` non conformes au standard Unix. L'objectif est de proposer " +"une astuce spécifique pour le DOS." #: ../Doc/using/cmdline.rst:382 msgid "The line numbers in error messages will be off by one." @@ -658,10 +694,12 @@ msgid "" "Reserved for various implementation-specific options. CPython currently " "defines the following possible values:" msgstr "" +"Réservée pour les options spécifiques aux différentes implémentations. " +"CPython reconnaît actuellement les valeurs suivantes :" #: ../Doc/using/cmdline.rst:390 msgid "``-X faulthandler`` to enable :mod:`faulthandler`;" -msgstr "" +msgstr "``-X faulthandler`` pour activer :mod:`faulthandler` ;" #: ../Doc/using/cmdline.rst:391 msgid "" @@ -677,12 +715,20 @@ msgid "" "traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for " "more information." msgstr "" +"``-X tracemalloc`` pour lancer le suivi des allocations mémoire par Python " +"en utilisant le module :mod:`tracemalloc`. Par défaut, seul l'appel (la " +"*frame* en anglais) le plus récent est stocké dans la trace de la pile " +"d'appels. Utilisez ``-X tracemalloc=NFRAME`` pour lancer le suivi avec une " +"limite des traces à *NFRAME* appels. Voir :func:`tracemalloc.start` pour " +"plus d'informations." #: ../Doc/using/cmdline.rst:399 msgid "" "It also allows passing arbitrary values and retrieving them through the :" "data:`sys._xoptions` dictionary." msgstr "" +"Il est aussi possible de passer des valeurs arbitraires et de les récupérer " +"par le dictionnaire :data:`sys._xoptions`." #: ../Doc/using/cmdline.rst:402 msgid "It is now allowed to pass :option:`-X` with CPython." @@ -690,15 +736,15 @@ msgstr "" #: ../Doc/using/cmdline.rst:405 msgid "The ``-X faulthandler`` option." -msgstr "" +msgstr "option ``-X faulthandler``." #: ../Doc/using/cmdline.rst:408 msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." -msgstr "" +msgstr "options ``-X showrefcount`` et ``-X tracemalloc`` ." #: ../Doc/using/cmdline.rst:413 msgid "Options you shouldn't use" -msgstr "Options que vous ne devriez pas utiliser" +msgstr "Options à ne pas utiliser" #: ../Doc/using/cmdline.rst:417 msgid "Reserved for use by Jython_." @@ -715,6 +761,10 @@ msgid "" "command-line switches override environmental variables where there is a " "conflict." msgstr "" +"Ces variables d'environnement modifient le comportement de Python. Elles " +"sont analysées avant les options de la ligne de commande, autres que -E ou -" +"I. Il est d'usage que les options de la ligne de commande prennent le pas " +"sur les variables d'environnement en cas de conflit." #: ../Doc/using/cmdline.rst:434 msgid "" @@ -724,6 +774,11 @@ msgid "" "`{exec_prefix}` are installation-dependent directories, both defaulting to :" "file:`/usr/local`." msgstr "" +"Modifie l'emplacement des bibliothèques standards de Python. Par défaut, les " +"bibliothèques sont recherchées dans :file:`{préfixe}/lib/python{version}` " +"et :file:`{préfixe_exec}/lib/python{version}` où :file:`{préfixe}` et :file:" +"`{préfixe_exec}` sont des répertoires qui dépendent de l'installation (leur " +"valeur par défaut étant :file:`/usr/local`)." #: ../Doc/using/cmdline.rst:440 msgid "" @@ -731,6 +786,10 @@ msgid "" "both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " "values for these, set :envvar:`PYTHONHOME` to :file:`{prefix}:{exec_prefix}`." msgstr "" +"Quand :envvar:`PYTHONHOME` est défini à un simple répertoire, sa valeur " +"remplace à la fois :file:`{préfixe}` et :file:`{préfixe_exec}`. Pour " +"spécifier des valeurs différentes à ces variables, définissez :envvar:" +"`PYTHONHOME` à :file:`{prefix}:{exec_prefix}`." #: ../Doc/using/cmdline.rst:447 msgid "" @@ -739,6 +798,11 @@ msgid "" "data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). Non-" "existent directories are silently ignored." msgstr "" +"Augmente le chemin de recherche par défaut des fichiers de modules. Le " +"format est le même que pour :envvar:`PATH` du shell : un ou plusieurs " +"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, deux " +"points sous Unix et point-virgule sous Windows). Les répertoires qui " +"n'existent pas sont ignorés silencieusement." #: ../Doc/using/cmdline.rst:452 msgid "" @@ -746,6 +810,11 @@ msgid "" "may refer to zipfiles containing pure Python modules (in either source or " "compiled form). Extension modules cannot be imported from zipfiles." msgstr "" +"En plus des répertoires normaux, des entrées individuelles de :envvar:" +"`PYTHONPATH` peuvent faire référence à des fichiers zip contenant des " +"modules en pur Python (soit sous forme de code source, soit sous forme " +"compilée). Les modules d'extensions ne peuvent pas être importés à partir de " +"fichiers zip." #: ../Doc/using/cmdline.rst:456 msgid "" @@ -753,6 +822,9 @@ msgid "" "with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " "It is *always* appended to :envvar:`PYTHONPATH`." msgstr "" +"Le chemin de recherche par défaut dépend de l'installation mais commence " +"généralement par :file:`{préfixe}/lib/python{version}` (voir :envvar:" +"`PYTHONHOME` ci-dessus). Il est *toujours* ajouté à :envvar:`PYTHONPATH`." #: ../Doc/using/cmdline.rst:460 msgid "" @@ -761,6 +833,10 @@ msgid "" "options`. The search path can be manipulated from within a Python program as " "the variable :data:`sys.path`." msgstr "" +"Comme indiqué ci-dessus dans :ref:`using-on-interface-options`, un " +"répertoire supplémentaire est inséré dans le chemin de recherche devant :" +"envvar:`PYTHONPATH`. Le chemin de recherche peut être manipulé depuis un " +"programme Python avec la variable :data:`sys.path`." #: ../Doc/using/cmdline.rst:468 msgid "" @@ -772,6 +848,14 @@ msgid "" "and :data:`sys.ps2` and the hook :data:`sys.__interactivehook__` in this " "file." msgstr "" +"S'il s'agit d'un nom de fichier accessible en lecture, les commandes Python " +"de ce fichier sont exécutées avant que la première invite ne soit affichée " +"en mode interactif. Le fichier est exécuté dans le même espace de noms que " +"les commandes interactives, de manière à ce que les objets définis ou " +"importés puissent être utilisés sans qualificatif dans la session " +"interactive. Vous pouvez aussi changer les invites :data:`sys.ps1` et :data:" +"`sys.ps2` ainsi que la fonction automatique (*hook* en anglais) :data:`sys." +"__interactivehook__` dans ce fichier." #: ../Doc/using/cmdline.rst:478 msgid "" @@ -779,6 +863,9 @@ msgid "" "option:`-O` option. If set to an integer, it is equivalent to specifying :" "option:`-O` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-O`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-O` plusieurs fois." #: ../Doc/using/cmdline.rst:485 msgid "" @@ -786,24 +873,33 @@ msgid "" "option:`-d` option. If set to an integer, it is equivalent to specifying :" "option:`-d` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-d`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-d` plusieurs fois." #: ../Doc/using/cmdline.rst:492 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." msgstr "" +"Si elle est définie à une chaîne non vide, C'est équivalent à spécifier " +"l'option :option:`-i`." #: ../Doc/using/cmdline.rst:495 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." msgstr "" +"Cette variable peut aussi être modifiée par du code Python en utilisant :" +"data:`os.environ` pour forcer le mode introspectif à la fin du programme." #: ../Doc/using/cmdline.rst:501 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-u` option." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-u`." #: ../Doc/using/cmdline.rst:507 msgid "" @@ -811,12 +907,17 @@ msgid "" "option:`-v` option. If set to an integer, it is equivalent to specifying :" "option:`-v` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-v`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-v` plusieurs fois." #: ../Doc/using/cmdline.rst:514 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and OS X." msgstr "" +"Si elle est définie, Python ignore la casse dans les instructions :keyword:" +"`import`. Ceci ne fonctionne que sous Windows et OS X." #: ../Doc/using/cmdline.rst:520 msgid "" @@ -833,6 +934,9 @@ msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str, bytes and datetime objects." msgstr "" +"Si cette variable n'est pas définie ou définie à ``random``, une valeur " +"aléatoire est utilisée pour saler les empreintes des objets chaines, bytes " +"et datetime." #: ../Doc/using/cmdline.rst:530 msgid "" @@ -840,6 +944,9 @@ msgid "" "fixed seed for generating the hash() of the types covered by the hash " "randomization." msgstr "" +"Si :envvar:`PYTHONHASHSEED` est définie à une valeur entiere, elle est " +"utilisée comme valeur de salage pour générer les empreintes des types " +"utilisant la randomisation du hachage." #: ../Doc/using/cmdline.rst:534 msgid "" @@ -847,12 +954,18 @@ msgid "" "interpreter itself, or to allow a cluster of python processes to share hash " "values." msgstr "" +"L'objectif est d'avoir des empreintes reproductibles, pour des tests de " +"l'interpréteur lui-même ou pour qu'un groupe de processus Python puisse " +"partager des empreintes." #: ../Doc/using/cmdline.rst:538 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" +"Le nombre entier doit être écrit en base 10 et compris entre 0 et " +"4 294 967 295. Spécifier la valeur 0 désactive la randomisation des " +"empreintes." #: ../Doc/using/cmdline.rst:546 msgid "" @@ -861,22 +974,32 @@ msgid "" "Both the ``encodingname`` and the ``:errorhandler`` parts are optional and " "have the same meaning as in :func:`str.encode`." msgstr "" +"Si la variable est définie sous la forme ``nom_encodage:" +"gestionnaire_erreur`` avant le lancement de l'interpréteur, cela prend le " +"pas sur l'encodage utilisé pour l'entrée standard, la sortie standard ou la " +"sortie d'erreur. ``nom_encodage`` et ``:gestionnaire_erreur`` sont " +"facultatifs tous les deux et possèdent la même signification que dans :func:" +"`str.encode`." #: ../Doc/using/cmdline.rst:551 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." msgstr "" +"Pour la sortie d'erreur, la partie ``:gestionnaire_erreur`` est ignorée : le " +"gestionnaire est toujours ``'backslashreplace'``." #: ../Doc/using/cmdline.rst:554 msgid "The ``encodingname`` part is now optional." -msgstr "" +msgstr "la partie ``nom_encodage`` est maintenant optionnelle." #: ../Doc/using/cmdline.rst:560 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." msgstr "" +"Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " +"utilisateur ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:570 msgid "" @@ -885,6 +1008,10 @@ msgid "" "USER_SITE>` and :ref:`Distutils installation paths ` " "for ``python setup.py install --user``." msgstr "" +"Définit le répertoire :data:`base utilisateur `. Celui-ci " +"est utilisé pour déterminer le chemin du répertoire utilisateur :data:`site-" +"packages ` et :ref:`Installation alternative : le schéma " +"user ` pour ``python setup.py install --user``." #: ../Doc/using/cmdline.rst:582 msgid "" @@ -892,12 +1019,18 @@ msgid "" "value instead of the value got through the C runtime. Only works on Mac OS " "X." msgstr "" +"Si cette variable d'environnement est définie, ``sys.argv[0]`` est définie à " +"la même valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " +"que sur Mac OS X." #: ../Doc/using/cmdline.rst:588 msgid "" "This is equivalent to the :option:`-W` option. If set to a comma separated " "string, it is equivalent to specifying :option:`-W` multiple times." msgstr "" +"C'est équivalent à spécifier l'option :option:`-W`. Si la valeur est une " +"chaîne séparée par des virgules, c'est équivalent à spécifier l'option :" +"option:`-W` plusieurs fois." #: ../Doc/using/cmdline.rst:594 msgid "" @@ -907,6 +1040,11 @@ msgid "" "`SIGILL` signals to dump the Python traceback. This is equivalent to :" "option:`-X` ``faulthandler`` option." msgstr "" +"Si elle est définie à une chaîne non vide, :func:`faulthandler.enable` est " +"appelée au démarrage : ceci installe un gestionnaire pour les signaux :const:" +"`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` et :const:" +"`SIGILL` afin de générer une trace de la pile d'appels. C'est équivalent à " +"spécifier l'option :option:`-X` ``faulthandler``." #: ../Doc/using/cmdline.rst:605 msgid "" @@ -916,32 +1054,48 @@ msgid "" "trace. For example, ``PYTHONTRACEMALLOC=1`` stores only the most recent " "frame. See the :func:`tracemalloc.start` for more information." msgstr "" +"Si elle est définie à une chaîne non vide, lance le suivi des allocations " +"mémoire par Python en utilisant le module :mod:`tracemalloc`. La valeur de " +"la variable définit le nombre maximum d'appels (les *frames* en anglais) " +"stockés dans la trace de pile d'appels. Par exemple, ``PYTHONTRACEMALLOC=1`` " +"ne stocke que l'appel le plus récent. Voir :func:`tracemalloc.start` pour " +"davantage d'informations." #: ../Doc/using/cmdline.rst:616 msgid "" "If this environment variable is set to a non-empty string, enable the :ref:" "`debug mode ` of the :mod:`asyncio` module." msgstr "" +"Si elle est définie à une chaîne non vide, active le :ref:`mode debogage " +"` du module :mod:`asyncio`." #: ../Doc/using/cmdline.rst:623 msgid "Debug-mode variables" -msgstr "" +msgstr "Variables en mode débogage" #: ../Doc/using/cmdline.rst:625 msgid "" "Setting these variables only has an effect in a debug build of Python, that " "is, if Python was configured with the ``--with-pydebug`` build option." msgstr "" +"Définir ces variables n'a d'effet que si Python a été compilé en mode " +"débogage, c'est-à-dire que l'option de compilation ``--with-pydebug`` a été " +"spécifiée." #: ../Doc/using/cmdline.rst:630 msgid "If set, Python will print threading debug info." msgstr "" +"Si elle est définie, Python affiche des informations de débogage relatives " +"aux différents fils d'exécution." #: ../Doc/using/cmdline.rst:635 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." msgstr "" +"Si elle est définie, Python affiche (de manière brute) les objets et les " +"compteurs de références toujours existant après la fermeture de " +"l'interpréteur." #: ../Doc/using/cmdline.rst:641 msgid "" diff --git a/using/index.po b/using/index.po index 7a7ec0a5..f7cd542f 100644 --- a/using/index.po +++ b/using/index.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/using/index.rst:5 msgid "Python Setup and Usage" -msgstr "Installation et Utilisation de Python" +msgstr "Installation et utilisation de Python" #: ../Doc/using/index.rst:8 msgid "" diff --git a/using/mac.po b/using/mac.po index 09e2d70e..e80fa036 100644 --- a/using/mac.po +++ b/using/mac.po @@ -273,7 +273,7 @@ msgstr "" #: ../Doc/using/mac.rst:173 msgid "Other Resources" -msgstr "Autres Ressources" +msgstr "Autres ressources" #: ../Doc/using/mac.rst:175 msgid "" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 3dbb6e51..a4d3b71e 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -499,7 +499,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 msgid "This produces the following output::" -msgstr "Ceci produit l’affichage suivant :" +msgstr "Ceci produit l’affichage suivant ::" #: ../Doc/whatsnew/2.3.rst:481 msgid "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index cab8481a..cfb9c3fd 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -628,7 +628,7 @@ msgstr "" #: ../Doc/whatsnew/2.5.rst:548 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr "" +msgstr ":pep:`342` - Coroutines *via* des générateurs améliorés" #: ../Doc/whatsnew/2.5.rst:544 msgid "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 4b2a2610..2cb1a708 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -689,7 +689,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:642 msgid "This produces the following output::" -msgstr "Ceci produit l’affichage suivant :" +msgstr "Ceci produit l’affichage suivant ::" #: ../Doc/whatsnew/2.6.rst:651 msgid "" @@ -1418,7 +1418,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:1303 msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr "" +msgstr ":pep:`3119` - Introduction aux classes de bases abstraites" #: ../Doc/whatsnew/2.6.rst:1302 msgid "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 83f9b798..465c1c74 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -353,7 +353,7 @@ msgstr "" #: ../Doc/whatsnew/3.1.rst:315 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." -msgstr "(Contribution par Vinay Sajip; :issue:`4384`.)" +msgstr "(Contribution par Vinay Sajip ; :issue:`4384`)." #: ../Doc/whatsnew/3.1.rst:317 msgid "" @@ -533,7 +533,7 @@ msgid "" "issue:`4753`)." msgstr "" "(Contribution par Antoine Pitrou ainsi qu’un certain nombre d’autres " -"participants; :issue:`4753`.)" +"participants ; :issue:`4753`)." #: ../Doc/whatsnew/3.1.rst:445 msgid "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 42a19a40..0ad422f8 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -480,7 +480,7 @@ msgstr "" #: ../Doc/whatsnew/3.2.rst:493 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." -msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)" +msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)." #: ../Doc/whatsnew/3.2.rst:495 msgid "" @@ -2535,7 +2535,7 @@ msgstr "" #: ../Doc/whatsnew/3.2.rst:2306 msgid "Multi-threading" -msgstr "Threads" +msgstr "Fils d'exécution" #: ../Doc/whatsnew/3.2.rst:2308 msgid "" diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index 2870f861..ec8679a8 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -634,7 +634,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:464 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" -msgstr "" +msgstr ":pep:`380` - Syntaxe pour déléguer à un sous-générateur" #: ../Doc/whatsnew/3.3.rst:463 msgid "" @@ -3557,7 +3557,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:2327 msgid "Deprecated features" -msgstr "Fonctionnalités dépréciées" +msgstr "Fonctionnalités obsolètes" #: ../Doc/whatsnew/3.3.rst:2329 msgid "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index 676a7df2..f6a4b90b 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -2929,7 +2929,7 @@ msgstr "" #: ../Doc/whatsnew/3.4.rst:2146 msgid "Deprecated Features" -msgstr "Fonctionnalités dépréciées" +msgstr "Fonctionnalités obsolètes" #: ../Doc/whatsnew/3.4.rst:2148 msgid "" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index 5d1f6413..93f811bf 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -282,6 +282,9 @@ msgid "" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" +"À partir de CPython 3.5.2, ``__aiter__`` peut directement renvoyer des :term:" +"`itérateurs asynchrones `. Renvoyer un objet :term:" +"`awaitable` entraine un avertissement :exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/3.5.rst:258 msgid "See more details in the :ref:`async-iterators` documentation section."