From 99f572c9f584477173ae929c583f6edd48a14fcc Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Wed, 20 Jan 2016 22:36:22 +0100 Subject: [PATCH] Propagating translations to older versions. --- c-api.po | 8 +++ extending.po | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++- faq.po | 92 ++++++++++++++++++++++++++++- howto.po | 2 +- license.po | 82 ++++++++++++++++++-------- 5 files changed, 314 insertions(+), 29 deletions(-) diff --git a/c-api.po b/c-api.po index c220653b..bfe809f7 100644 --- a/c-api.po +++ b/c-api.po @@ -75,6 +75,11 @@ msgid "" "detector's set of observed objects. Other fields of the object are not " "affected." msgstr "" +"Permet d'initialiser un objet *op* nouvellement alloué ainsi que son type et " +"sa référence initiale. Retourne l'objet initialisé. La présence de *type* " +"indique que l'objet doit être traité par le détecteur d'ordures cycliques, " +"il est de ce fait ajouté à l'ensemble du détecteur d'objets observés. Les " +"autres champs de l'objet ne sont pas affectés." #: c-api/allocation.rst:33 msgid "" @@ -6543,6 +6548,9 @@ msgid "" "standard headers on some systems, you *must* include :file:`Python.h` before " "any standard headers are included." msgstr "" +"Python pouvant définir certaines définitions pré-processeur qui affectent " +"les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." +"h` avant les en-têtes standards." #: c-api/intro.rst:53 msgid "" diff --git a/extending.po b/extending.po index 6ae782da..6bf70909 100644 --- a/extending.po +++ b/extending.po @@ -302,6 +302,17 @@ msgid "" "which saves you the trouble of allocating memory space and loading the file " "contents." msgstr "" +"La fonction :c:func:`Py_SetProgramName` devrait être appelée avant :c:func:" +"`Py_Initialize` pour informer l'interpréteur des chemins vers les " +"bibliothèque Python. Ensuite, l'interpréteur Python est initialisé avec :c:" +"func:`Py_Initialize`, suivi par l'exécution d'un script Python, codé en dur, " +"qui affiche la date et l'heure. Ensuite, l'interpréteur est arrêté par un " +"appel à :c:func:`Py_Finalize`, puis le programme se termine. Dans un vrai " +"programme, vous voudrez peut-être obtenir le script Python d'une autre " +"source, peut-être d'une fonction d'un éditeur de texte, un fichier ou une " +"base de données. Obtenir le code Python à partir d'un fichier se fait plus " +"aisément avec :c:func:`PyRun_SimpleFile`,ce qui vous évite d'avoir à allouer " +"la mémoire et d'y charger le contenu du fichier." #: extending/embedding.rst:87 msgid "Beyond Very High Level Embedding: An overview" @@ -493,6 +504,15 @@ msgid "" "and write some glue code that gives Python access to those routines, just " "like you would write a normal Python extension. For example::" msgstr "" +"Jusqu'à présent, l'interpréteur Python intégré n'avait pas accès aux " +"fonctionnalités de l'application elle-même. L'API Python le permet en " +"étendant l'interpréteur intégré. Autrement dit, l'interpréteur intégré est " +"étendu avec des fonctions fournies par l'application. Bien que cela puisse " +"sembler complexe, ce n'est pas si dur. Il suffit d'oublier que l'application " +"démarre l'interpréteur Python, au lieu de cela, voyez l'application comme un " +"ensemble de fonctions, et rédigez un peu de code pour exposer ces fonctions " +"à Python, tout comme vous écririez une extension Python normale. Par " +"exemple ::" #: extending/embedding.rst:226 msgid "" @@ -600,6 +620,15 @@ msgid "" "extract the configuration values that you will want to combine together. " "For example:" msgstr "" +"Si cette procédure ne fonctionne pas pour vous (il n'est pas garanti " +"qu'ellefonctionne pour toutes les plateformes Unix, mais nous traiteront " +"volontiers les :ref: `rapports de bugs `), vous devrez lire " +"ladocumentation de votre système sur la liaison dynamique (*dynamic " +"linking*) et / ouexaminer le :file:`Makefile` de Python (utilisez :func:" +"`sysconfig.get_makefile_filename` pour trouver son emplacement) et les " +"options de compilation. Dans ce cas, le module :mod:`sysconfig` est un outil " +"utile pour extraire automatiquement les valeurs de configuration que vous " +"voudrez combiner ensemble. Par example :" #: extending/extending.rst:8 msgid "Extending Python with C or C++" @@ -625,12 +654,19 @@ msgid "" "aspects of the Python run-time system. The Python API is incorporated in a " "C source file by including the header ``\"Python.h\"``." msgstr "" +"Pour gérer les extensions, l'API Python (*Application Programmer Interface*) " +"définit un ensemble de fonctions, macros et variables qui donnent accès à la " +"plupart des aspects du système d'exécution de Python. L'API Python est " +"incorporée dans un fichier source C en incluant l'en-tête ``\"Python.h\"``." #: extending/extending.rst:20 msgid "" "The compilation of an extension module depends on its intended use as well " "as on your system setup; details are given in later chapters." msgstr "" +"La compilation d'un module d'extension dépend de l'usage prévu et de la " +"configuration du système, plus de détails peuvent être trouvés dans les " +"chapitres suivants." #: extending/extending.rst:25 msgid "" @@ -644,6 +680,17 @@ msgid "" "with C code and are more portable between implementations of Python than " "writing and compiling a C extension module." msgstr "" +"L'interface d'extension C est spécifique à CPython, et les modules " +"d'extension ne fonctionne pas sur les autres implémentations de Python. Dans " +"de nombreux cas, il est possible d'éviter la rédaction des extensions en C " +"et ainsi préserver la portabilité vers d'autres implémentations. Par " +"exemple, si vous devez appeler une fonction de la bibliothèque C ou faire un " +"appel système, vous devriez envisager d'utiliser le module :mod:`ctypes` ou " +"d'utiliser la bibliothèque `CFFI `_ plutôt que " +"d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du code " +"Python s'interfaçant avec le code C et sont plus portables entre les " +"implémentations de Python que l'écriture et la compilation d'une d'extension " +"C." #: extending/extending.rst:39 #, fuzzy @@ -658,6 +705,12 @@ msgid "" "terminated character string as argument and returns an integer. We want " "this function to be callable from Python as follows::" msgstr "" +"Créons un module d'extension appelé ``spam`` (la nourriture préférée de fans " +"des Monty Python ...) et disons que nous voulons créer une interface Python " +"à la fonction de la bibliothèque C :c:func:`system`. [#] _ Cette fonction " +"prend une chaîne de caractères terminée par NULL comme argument et renvoie " +"un entier. Nous voulons que cette fonction soit appelable à partir de Python " +"comme suit ::" #: extending/extending.rst:50 msgid "" @@ -666,6 +719,10 @@ msgid "" "`spammodule.c`; if the module name is very long, like ``spammify``, the " "module name can be just :file:`spammify.c`.)" msgstr "" +"Commencez par créer un fichier :file:`spammodule.c`. (Historiquement, si un " +"module se nomme ``spam``, le fichier C contenant son implémentation est " +"appelé :file:`spammodule.c`. Si le nom du module est très long, comme " +"``spammify``, le nom du module peut être juste :file: `spammify.c`.)" #: extending/extending.rst:55 #, fuzzy @@ -677,6 +734,8 @@ msgid "" "which pulls in the Python API (you can add a comment describing the purpose " "of the module and a copyright notice if you like)." msgstr "" +"qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant le " +"but du module et un avis de droit d'auteur si vous le souhaitez)." #: extending/extending.rst:64 msgid "" @@ -684,6 +743,9 @@ msgid "" "standard headers on some systems, you *must* include :file:`Python.h` before " "any standard headers are included." msgstr "" +"Python pouvant définir certaines définitions pré-processeur qui affectent " +"les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." +"h` avant les en-têtes standards." #: extending/extending.rst:68 msgid "" @@ -695,6 +757,13 @@ msgid "" "on your system, it declares the functions :c:func:`malloc`, :c:func:`free` " "and :c:func:`realloc` directly." msgstr "" +"Tous les symboles exposés par:file:`Python.h` sont préfixés de ``Py`` ou " +"``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le " +"confort, et comme ils sont largement utilisés par l'interpréteur Python, ``" +"\"Python.h\"`` inclu lui même quelques d'en-têtes standard : ````, " +"````, ```` et ````. Si ce dernier n'existe pas " +"sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` " +"et :c:func:`realloc` directement." #: extending/extending.rst:76 msgid "" @@ -702,6 +771,10 @@ msgid "" "called when the Python expression ``spam.system(string)`` is evaluated " "(we'll see shortly how it ends up being called)::" 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) ::" #: extending/extending.rst:92 msgid "" @@ -710,6 +783,10 @@ msgid "" "C function. The C function always has two arguments, conventionally named " "*self* and *args*." msgstr "" +"Il ya une correspondance directe de la liste des arguments en Python (par " +"exemple, l'expression ``\"ls -l\"``) aux arguments passés à la fonction C. " +"La fonction C a toujours deux arguments, appelés par convention *self* et " +"*args*." #: extending/extending.rst:97 msgid "" @@ -729,6 +806,15 @@ msgid "" "determine the required types of the arguments as well as the types of the C " "variables into which to store the converted values. More about this later." msgstr "" +"L'argument *args* sera un pointeur vers un *tuple* Python contenant les " +"arguments. Chaque élément du *tuple* correspond à un argument dans la liste " +"des arguments de l'appel. Les arguments sont des objets Python --- afin d'en " +"faire quelque chose dans notre fonction C, nous devons les convertir en " +"valeurs C. La fonction :c:func:`PyArg_ParseTuple` de l'API Python vérifie " +"les types des arguments et les convertit en valeurs C. Elle utilise un " +"modèle sous forme de chaîne pour déterminer les types requis des arguments " +"ainsi que les types de variables C dans lequel stocker les valeurs " +"converties. Nous en verront plus, plus tard." #: extending/extending.rst:110 msgid "" @@ -739,10 +825,16 @@ msgid "" "the calling function can return *NULL* immediately (as we saw in the " "example)." msgstr "" +":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " +"le bon type et que ses composants ont été stockés dans les variables dont " +"les adresses données. Il retourne faux (zéro) si une liste d'arguments " +"invalide a été passée. Dans ce dernier cas, elle soulève également une " +"exception appropriée de sorte que la fonction d'appel puisse retourner " +"*NULL* immédiatement (comme nous l'avons vu dans l'exemple)." #: extending/extending.rst:120 msgid "Intermezzo: Errors and Exceptions" -msgstr "" +msgstr "Intermezzo: Les Erreurs et Exceptions" #: extending/extending.rst:122 msgid "" @@ -764,6 +856,8 @@ msgid "" "The Python API defines a number of functions to set various types of " "exceptions." msgstr "" +"L'API Python définit un certain nombre de fonctions pour créer différents " +"types d'exceptions." #: extending/extending.rst:136 msgid "" @@ -773,6 +867,11 @@ msgid "" "indicates the cause of the error and is converted to a Python string object " "and stored as the \"associated value\" of the exception." msgstr "" +"La plus courante est :c:func:`PyErr_SetString`. Ses arguments sont un objet " +"exception et une chaîne C. L'objet exception est généralement un objet " +"prédéfini comme :c:data:`PyExc_ZeroDivisionError`. La chaîne C indique la " +"cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " +"que \"valeur associée\" à l'exception." #: extending/extending.rst:142 msgid "" @@ -783,6 +882,11 @@ msgid "" "associated value. You don't need to :c:func:`Py_INCREF` the objects passed " "to any of these functions." msgstr "" +"Une autre fonction utile est :c:func:`PyErr_SetFromErrno`, qui construit une " +"exception à partir de la valeur de la variable globale :c:data:`errno`. La " +"fonction la plus générale est :c:func: `PyErr_SetObject`, qui prend deux " +"arguments: l'exception et sa valeur associée. Vous ne devez pas appliquer :c:" +"func:`Py_INCREF` aux objets transmis à ces fonctions." #: extending/extending.rst:149 msgid "" @@ -792,6 +896,12 @@ msgid "" "`PyErr_Occurred` to see whether an error occurred in a function call, since " "you should be able to tell from the return value." msgstr "" +"Vous pouvez tester de manière non destructive si une exception a été levée " +"avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " +"*NULL* si aucune exception n'a eu lieu. Cependant, vous ne devriez pas avoir " +"besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " +"survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " +"de le déterminer à partir de la valeur de retour." #: extending/extending.rst:155 msgid "" @@ -806,6 +916,17 @@ msgid "" "code and tries to find an exception handler specified by the Python " "programmer." msgstr "" +"lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que " +"cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour " +"(habituellement *NULL* ou ``-1``). *f* ne devrait *pas* appeler l'une des " +"fonctions :c:func:`PyErr_\\*`, l'une d'elles ayant déjà été appelée par *g*. " +"La fonction appelant *f* est alors censée retourner aussi un code d'erreur à " +"celle qui la appelée, toujours sans utiliser :c:func:`PyErr_\\*`, et ainsi " +"de suite. La cause la plus détaillée de l'erreur a déjà été signalée par la " +"fonction l'ayant détectée en premier. Une fois l'erreur remontée à la boucle " +"principale de l'interpréteur Python, il interrompt le code en cours " +"d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " +"développeur Python." #: extending/extending.rst:165 msgid "" @@ -815,6 +936,12 @@ msgid "" "can cause information about the cause of the error to be lost: most " "operations can fail for a variety of reasons.)" msgstr "" +"(Il ya des situations où un module peut effectivement donner un message " +"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, " +"dans de tels cas, c'est tout à fait possible de le faire. Cependant, ce " +"n'est généralement pas nécessaire, et peut amener à perdre des informations " +"sur la cause de l'erreur: la plupart des opérations peuvent échouer pour " +"tout un tas de raisons)." #: extending/extending.rst:171 msgid "" @@ -824,6 +951,12 @@ msgid "" "pass the error on to the interpreter but wants to handle it completely by " "itself (possibly by trying something else, or pretending nothing went wrong)." msgstr "" +"Pour ignorer une exception qui aurait été émise lors d'un un appel de " +"fonction qui aurait échoué, l'exception doit être retirée explicitement en " +"appelant :c:func:`PyErr_Clear`. Le seul cas pour lequel du code C devrait " +"appeler :c:func:`PyErr_Clear` est lorsqu'il ne veut pas passer l'erreur à " +"l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " +"quelque chose d'autre, ou de prétendre rien a mal tourné)." #: extending/extending.rst:177 msgid "" @@ -841,6 +974,10 @@ msgid "" "positive value or zero for success and ``-1`` for failure, like Unix system " "calls." msgstr "" +"Notez également que, à l'exception notable de :c:func:`PyArg_ParseTuple` et " +"compagnie, les fonctions qui renvoient leur statut sous forme d'entier " +"donnent généralement une valeur positive ou zéro en cas de succès et ``-1`` " +"en cas d'échec, comme les appels système Unix." #: extending/extending.rst:187 msgid "" @@ -848,6 +985,9 @@ msgid "" "c:func:`Py_DECREF` calls for objects you have already created) when you " "return an error indicator!" msgstr "" +"Enfin, lorsque vous renvoyez un code d'erreur, n'oubliez pas faire un brin " +"de nettoyage (en appelant :c:func:`Py_XDECREF` ou :c: func:` Py_DECREF` avec " +"les objets que vous auriez déjà créé) !" #: extending/extending.rst:191 msgid "" @@ -861,12 +1001,25 @@ msgid "" "you have an argument whose value must be in a particular range or must " "satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate." msgstr "" +"Le choix de l'exception à lever vous incombe. Il existe des objets C " +"correspondant à chaque exception Python, tel que :c:data:" +"`PyExc_ZeroDivisionError`, que vous pouvez utiliser directement. Choisissez " +"judicieusement vos exceptions, typiquement n'utilisez pas :c:data:" +"`PyExc_TypeError` pour indiquer qu'un fichier n'a pas pu être ouvert (qui " +"devrait probablement être :c:data:`PyExc_IOError`). Si quelque chose ne va " +"pas avec la liste d'arguments, la fonction :c:func:`PyArg_ParseTuple` " +"soulève habituellement une exception :c:data:`PyExc_TypeError`. Mais si vous " +"avez un argument dont la valeur doit être dans une intervalle particulière " +"ou qui doit satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera " +"plus appropriée." #: extending/extending.rst:201 msgid "" "You can also define a new exception that is unique to your module. For this, " "you usually declare a static object variable at the beginning of your file::" msgstr "" +"Vous pouvez également créer une exception spécifique à votre module. Pour " +"cela, déclarez simplement une variable statique au début de votre fichier ::" #: extending/extending.rst:206 msgid "" @@ -882,6 +1035,10 @@ msgid "" "class being :exc:`Exception` (unless another class is passed in instead of " "*NULL*), described in :ref:`bltin-exceptions`." msgstr "" +"Notez que le nom de exception, côté Python, est :exc:`spam.error`. La " +"fonction :c:func:`PyErr_NewException` peut créer une classe héritant de :exc:" +"`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " +"*NULL*), voir :ref:`bltin-exceptions`." #: extending/extending.rst:228 msgid "" diff --git a/faq.po b/faq.po index 840b04e5..3f869389 100644 --- a/faq.po +++ b/faq.po @@ -562,7 +562,7 @@ msgstr "" #: faq/design.rst:298 msgid "How fast are exceptions?" -msgstr "" +msgstr "À quel point les exceptions sont-elles rapides ?" #: faq/design.rst:300 msgid "" @@ -570,12 +570,19 @@ msgid "" "Actually catching an exception is expensive. In versions of Python prior to " "2.0 it was common to use this idiom::" 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::" #: faq/design.rst:310 msgid "" "This only made sense when you expected the dict to have the key almost all " "the time. If that wasn't the case, you coded it like this::" msgstr "" +"Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la " +"clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " +"comme suit ::" #: faq/design.rst:320 msgid "" @@ -586,6 +593,8 @@ msgstr "" #: faq/design.rst:325 msgid "Why isn't there a switch or case statement in Python?" msgstr "" +"Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " +"à *switch / case* en Python ?" #: faq/design.rst:327 msgid "" @@ -594,6 +603,10 @@ msgid "" "there is no consensus (yet) on whether and how to do range tests. See :pep:" "`275` for complete details and the current status." msgstr "" +"Vous pouvez le faire assez facilement avec une séquence de ``if... elif... " +"elif... else``. Il y a eu quelques propositions pour la syntaxe de " +"l'instruction switch, mais il n'y a pas (encore) de consensus sur le cas des " +"intervalles. Voir la :pep:`275` pour tous les détails et l'état actuel." #: faq/design.rst:332 msgid "" @@ -601,12 +614,18 @@ msgid "" "possibilities, you can create a dictionary mapping case values to functions " "to call. For example::" msgstr "" +"Dans les cas où vous devez choisir parmi un très grand nombre de " +"possibilités, vous pouvez créer un dictionnaire faisant correspondre des " +"valeurs à des fonctions à appeler. Par exemple ::" #: faq/design.rst:346 msgid "" "For calling methods on objects, you can simplify yet further by using the :" "func:`getattr` built-in to retrieve methods with a particular name::" msgstr "" +"Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage " +"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " +"avec un nom donné ::" #: faq/design.rst:358 msgid "" @@ -615,12 +634,18 @@ msgid "" "from an untrusted source, an attacker would be able to call any method on " "your object." msgstr "" +"Il est suggéré que vous utilisiez un préfixe pour les noms de méthodes, " +"telles que ``visit_`` dans cet exemple. Sans ce préfixe, si les valeurs " +"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler " +"n'importe quelle méthode sur votre objet." #: faq/design.rst:364 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 ?" #: faq/design.rst:366 msgid "" @@ -629,6 +654,11 @@ msgid "" "almost random moments. Therefore, a complete threads implementation " "requires thread support for C." 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." #: faq/design.rst:371 msgid "" @@ -636,10 +666,14 @@ msgid "" "com>`_, which has a completely redesigned interpreter loop that avoids the C " "stack." msgstr "" +"Réponse 2: Heureusement, il existe `Stackless Python `_, qui à complètement ré-architecturé la boucle principale de " +"l'interpréteur afin de ne pas utiliser la pile C." #: faq/design.rst:376 msgid "Why can't lambda expressions contain statements?" msgstr "" +"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" #: faq/design.rst:378 msgid "" @@ -649,6 +683,13 @@ msgid "" "other languages, where they add functionality, Python lambdas are only a " "shorthand notation if you're too lazy to define a function." msgstr "" +"Les expressions lambda de Python ne peuvent pas contenir d'instructions " +"parce que le cadre syntaxique de Python ne peut pas gérer les instructions " +"imbriquées à l'intérieur d'expressions. Cependant, en Python, ce n'est pas " +"vraiment un problème. Contrairement aux formes lambda dans d'autres " +"langages, où elles ajoutent des fonctionnalités, les expressions lambda de " +"Python sont seulement une notation concise si vous êtes trop paresseux pour " +"définir une fonction." #: faq/design.rst:384 msgid "" @@ -659,10 +700,17 @@ msgid "" "(which is exactly the same type of object that a lambda expression yields) " "is assigned!" msgstr "" +"Les fonctions sont déjà des objets de première classe en Python et peuvent " +"être déclarées dans une portée locale. L'unique avantage d'utiliser une " +"fonction lambda au lieu d'une fonction définie localement est que vous " +"n'avez nullement besoin d'un nom pour la fonction -- Mais c'est juste une " +"variable locale à laquelle est affecté l'objet fonction (qui est exactement " +"le même type d'objet qui donne une expression lambda) !" #: faq/design.rst:392 msgid "Can Python be compiled to machine code, C or some other language?" msgstr "" +"Python peut-il être compilé en code machine, en C ou dans un autre langage ?" #: faq/design.rst:394 msgid "" @@ -684,6 +732,15 @@ msgid "" "See the proceedings from the `1997 Python conference `_ for more information.)" msgstr "" +"Plusieurs projets décrits dans le forum de Python ou dans les anciennes " +"`Conférences Python `_ ont " +"montré que cette approche est réalisable, même si les améliorations " +"atteintes restaient modestes (autour de ×2). Jython utilise la même " +"stratégie pour compiler en *bytecode* Java. (Jim Hugunin a démontré qu'en " +"combinaison avec une analyse de la totalité du programme, des améliorations " +"de ×1000 sont possibles sur de petits programmes de démonstration. Voir le " +"compte rendu de la `Conférence de Python 1997 `_ pour plus d'informations.)" #: faq/design.rst:409 msgid "" @@ -728,7 +785,7 @@ msgstr "" #: faq/design.rst:441 msgid "How does Python manage memory?" -msgstr "" +msgstr "Comment Python gère la mémoire ?" #: faq/design.rst:443 msgid "" @@ -815,16 +872,27 @@ msgid "" "about these). Python is, however, aggressive about cleaning up memory on " "exit and does try to destroy every single object." msgstr "" +"Les objets référencés depuis les espaces de noms globaux des modules Python " +"ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " +"produire s'il y a des références circulaires. Il y a aussi certaines parties " +"de mémoire qui sont alloués par la bibliothèque C qui sont impossibles à " +"libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, " +"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à " +"détruire chaque objet." #: faq/design.rst:513 msgid "" "If you want to force Python to delete certain things on deallocation use " "the :mod:`atexit` module to run a function that will force those deletions." msgstr "" +"Si vous voulez forcer Python à désallouer certains objets en quittant, " +"utilisez le module :mod:`texit` pour exécuter une fonction qui va forcer ces " +"destructions." #: faq/design.rst:518 msgid "Why are there separate tuple and list data types?" msgstr "" +"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" #: faq/design.rst:520 msgid "" @@ -835,6 +903,13 @@ msgid "" "Cartesian coordinate is appropriately represented as a tuple of two or three " "numbers." msgstr "" +"Les listes et les *tuples*, bien que semblable à bien des égards, sont " +"généralement utilisés de façons fondamentalement différentes. Les *tuples* " +"peuvent être considérés comme étant similaires aux dossiers en Pascal ou aux " +"structures en C; Ce sont de petites collections de données associées qui " +"peuvent être de différents types qui sont utilisées sensemble. Par exemple, " +"un repère cartésien est correctement représenté comme un *tuple* de deux ou " +"trois nombres." #: faq/design.rst:527 msgid "" @@ -845,6 +920,13 @@ msgid "" "Functions which operate on this output would generally not break if you " "added another file or two to the directory." msgstr "" +"Les listes, ressemblent davantage à des tableaux dans d'autres langues. " +"Elles ont tendance à contenir un nombre variable d'objets de même type " +"manipulés individuellement. Par exemple, ``os.listdir('.')`` retourne une " +"liste de chaînes représentant les fichiers dans le dossier courant. Les " +"fonctions travaillant sur cette sortie accepteraient généralement sans aucun " +"problème que vous ajoutiez un ou deux fichiers supplémentaire dans le " +"dossier." #: faq/design.rst:534 msgid "" @@ -854,6 +936,12 @@ msgid "" "be used as dictionary keys, and hence only tuples and not lists can be used " "as keys." 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 variables, 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." #: faq/design.rst:541 msgid "How are lists implemented?" diff --git a/howto.po b/howto.po index 6fe4196c..cdec7695 100644 --- a/howto.po +++ b/howto.po @@ -7923,7 +7923,7 @@ msgstr "" #: howto/sockets.rst:20 msgid "Sockets" -msgstr "" +msgstr "Interfaces de connexion (*sockets*)" #: howto/sockets.rst:22 msgid "" diff --git a/license.po b/license.po index f6d0ea45..ea8c81bd 100644 --- a/license.po +++ b/license.po @@ -212,7 +212,7 @@ msgstr "2.1.3" #: license.rst:57 msgid "2.2 and above" -msgstr "" +msgstr "2.2 et supérieur" #: license.rst:57 #, fuzzy @@ -245,7 +245,7 @@ msgstr "" #: license.rst:73 msgid "Terms and conditions for accessing or otherwise using Python" -msgstr "" +msgstr "Conditions générales pour accéder à, ou utiliser, Python" #: license.rst:77 msgid "PSF LICENSE AGREEMENT FOR PYTHON release" @@ -320,11 +320,11 @@ msgstr "" #: license.rst:123 msgid "BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0" -msgstr "" +msgstr "LICENCE D'UTILISATION BEOPEN.COM POUR PYTHON 2.0" #: license.rst:125 msgid "BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1" -msgstr "" +msgstr "LICENCE D'UTILISATION LIBRE BEOPEN PYTHON VERSION 1" #: license.rst:126 msgid "" @@ -384,7 +384,7 @@ msgstr "" #: license.rst:167 msgid "CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1" -msgstr "" +msgstr "LICENCE D'UTILISATION CNRI POUR PYTHON 1.6.1" #: license.rst:168 msgid "" @@ -471,7 +471,7 @@ msgstr "" #: license.rst:232 msgid "CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2" -msgstr "" +msgstr "LICENCE D'UTILISATION CWI POUR PYTHON 0.9.0 à 1.2" #: license.rst:233 msgid "" @@ -503,7 +503,7 @@ msgstr "" #: license.rst:254 msgid "Licenses and Acknowledgements for Incorporated Software" -msgstr "" +msgstr "Licences et Remerciements pour les logiciels inclus" #: license.rst:256 msgid "" @@ -511,10 +511,13 @@ msgid "" "acknowledgements for third-party software incorporated in the Python " "distribution." msgstr "" +"Cette section est une liste incomplète mais grandissante de licences et " +"remerciements pour les logiciels tiers incorporés dans la distribution de " +"Python." #: license.rst:261 msgid "Mersenne Twister" -msgstr "" +msgstr "Mersenne Twister" #: license.rst:263 msgid "" @@ -522,10 +525,13 @@ msgid "" "math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. The following " "are the verbatim comments from the original code::" 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::" #: license.rst:310 msgid "Sockets" -msgstr "" +msgstr "Interfaces de connexion (*sockets*)" #: license.rst:312 msgid "" @@ -533,14 +539,17 @@ msgid "" "`getnameinfo`, which are coded in separate source files from the WIDE " "Project, http://www.wide.ad.jp/. ::" msgstr "" +"Le module :mod:`socket` utilise les fonctions :func:`getaddrinfo` et :func:" +"`getnameinfo` codées dans des fichiers source séparés et provenant du projet " +"WIDE: http://www.wide.ad.jp/. ::" #: license.rst:345 msgid "Floating point exception control" -msgstr "" +msgstr "Virgule flottante et contrôle d'exception" #: license.rst:347 msgid "The source for the :mod:`fpectl` module includes the following notice::" -msgstr "" +msgstr "Le code source pour le module :mod:`fpectl` inclu la note suivante::" #: license.rst:387 msgid "MD5 message digest algorithm" @@ -553,17 +562,19 @@ msgstr "" #: license.rst:437 msgid "Asynchronous socket services" -msgstr "" +msgstr "Interfaces de connexion asynchrones" #: license.rst:439 msgid "" "The :mod:`asynchat` and :mod:`asyncore` modules contain the following " "notice::" msgstr "" +"Les modules :mod:`asynchat` et :mod:`asyncore` contiennent la note " +"suivante ::" #: license.rst:464 msgid "Cookie management" -msgstr "" +msgstr "Gestion de témoin (*cookie*)" #: license.rst:466 msgid "The :mod:`Cookie` module contains the following notice::" @@ -571,23 +582,24 @@ msgstr "" #: license.rst:492 msgid "Execution tracing" -msgstr "" +msgstr "Traçage d'exécution" #: license.rst:494 msgid "The :mod:`trace` module contains the following notice::" -msgstr "" +msgstr "Le module :mod:`trace` contient la note suivante ::" #: license.rst:525 msgid "UUencode and UUdecode functions" -msgstr "" +msgstr "Les fonctions UUencode et UUdecode" #: license.rst:527 msgid "The :mod:`uu` module contains the following notice::" -msgstr "" +msgstr "Le module :mod:`uu` contient la note suivante:" #: license.rst:555 msgid "XML Remote Procedure Calls" msgstr "" +"Appel de procédures distantes en XML (*RPC*, pour *Remote Procedure Call*)" #: license.rst:557 msgid "The :mod:`xmlrpclib` module contains the following notice::" @@ -595,25 +607,26 @@ msgstr "" #: license.rst:588 msgid "test_epoll" -msgstr "" +msgstr "test_epoll" #: license.rst:590 msgid "The :mod:`test_epoll` contains the following notice::" -msgstr "" +msgstr "Le module :mod:`test_epoll` contient la note suivante ::" #: license.rst:614 msgid "Select kqueue" -msgstr "" +msgstr "Select kqueue" #: license.rst:616 msgid "" "The :mod:`select` and contains the following notice for the kqueue " "interface::" msgstr "" +"Le module :mod:`select` contiens la note suivante pour l'interface kqueue ::" #: license.rst:644 msgid "strtod and dtoa" -msgstr "" +msgstr "strtod et dtoa" #: license.rst:646 msgid "" @@ -623,10 +636,15 @@ msgid "" "org/fp/. The original file, as retrieved on March 16, 2009, contains the " "following copyright and licensing notice::" msgstr "" +"Le fichier :file:`Python/dtoa.c`, qui fournit les fonctions ``dtoa`` et " +"``strtod`` pour la conversions de *doubles* C vers et depuis les chaînes, et " +"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " +"http://www.netlib.org/fp/. Le fichier original, tel que récupéré le 16 mars " +"2009, contiens la licence suivante ::" #: license.rst:674 msgid "OpenSSL" -msgstr "" +msgstr "OpenSSL" #: license.rst:676 msgid "" @@ -636,30 +654,41 @@ msgid "" "include a copy of the OpenSSL libraries, so we include a copy of the OpenSSL " "license here::" msgstr "" +"Les modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, et :mod:`crypt` " +"utilisent la bibliothèque OpenSSL pour améliorer les performances, si elle " +"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::" #: license.rst:811 msgid "expat" -msgstr "" +msgstr "expat" #: license.rst:813 msgid "" "The :mod:`pyexpat` extension is built using an included copy of the expat " "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``::" #: license.rst:840 msgid "libffi" -msgstr "" +msgstr "libffi" #: license.rst:842 msgid "" "The :mod:`_ctypes` extension is built using an included copy of the libffi " "sources unless the build is configured ``--with-system-libffi``::" 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``::" #: license.rst:869 msgid "zlib" -msgstr "" +msgstr "zlib" #: license.rst:871 msgid "" @@ -667,6 +696,9 @@ msgid "" "sources if the zlib version found on the system is too old to be used for " "the build::" 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::" #~ msgid "2.2" #~ msgstr "2.2"