1
0
Fork 0
python-docs-fr/howto/cporting.po

276 lines
13 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-04 11:33+0200\n"
"PO-Revision-Date: 2019-07-19 23:34+0200\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/howto/cporting.rst:7
msgid "Porting Extension Modules to Python 3"
msgstr "Portage des modules d'extension vers Python 3"
#: ../Doc/howto/cporting.rst:9
msgid ""
"We recommend the following resources for porting extension modules to Python "
"3:"
msgstr ""
#: ../Doc/howto/cporting.rst:11
msgid ""
"The `Migrating C extensions`_ chapter from *Supporting Python 3: An in-depth "
"guide*, a book on moving from Python 2 to Python 3 in general, guides the "
"reader through porting an extension module."
msgstr ""
#: ../Doc/howto/cporting.rst:15
msgid ""
"The `Porting guide`_ from the *py3c* project provides opinionated "
"suggestions with supporting code."
msgstr ""
#: ../Doc/howto/cporting.rst:17
msgid ""
"The `Cython`_ and `CFFI`_ libraries offer abstractions over Python's C API. "
"Extensions generally need to be re-written to use one of them, but the "
"library then handles differences between various Python versions and "
"implementations."
msgstr ""
#~ msgid "author"
#~ msgstr "auteur"
#~ msgid "Benjamin Peterson"
#~ msgstr "Benjamin Peterson"
#~ msgid "Abstract"
#~ msgstr "Résumé"
#~ msgid ""
#~ "Although changing the C-API was not one of Python 3's objectives, the "
#~ "many Python-level changes made leaving Python 2's API intact impossible. "
#~ "In fact, some changes such as :func:`int` and :func:`long` unification "
#~ "are more obvious on the C level. This document endeavors to document "
#~ "incompatibilities and how they can be worked around."
#~ msgstr ""
#~ "Changer l'API C n'était pas l'un des objectifs de Python 3, cependant les "
#~ "nombreux changements au niveau Python ont rendu impossible de garder "
#~ "l'API de Python 2 comme elle était. Certains changements tels que "
#~ "l'unification de :func:`int` et :func:`long` sont plus apparents au "
#~ "niveau C. Ce document s'efforce de documenter les incompatibilités et la "
#~ "façon dont elles peuvent être contournées."
#~ msgid "Conditional compilation"
#~ msgstr "Compilation conditionnelle"
#~ msgid ""
#~ "The easiest way to compile only some code for Python 3 is to check if :c:"
#~ "macro:`PY_MAJOR_VERSION` is greater than or equal to 3. ::"
#~ msgstr ""
#~ "La façon la plus simple de compiler seulement une section de code pour "
#~ "Python 3 est de vérifier si :c:macro:`PY_MAJOR_VERSION` est supérieur ou "
#~ "égal à 3. ::"
#~ msgid ""
#~ "API functions that are not present can be aliased to their equivalents "
#~ "within conditional blocks."
#~ msgstr ""
#~ "Les fonctions manquantes dans l'API peuvent être remplacées par des alias "
#~ "à leurs équivalents dans des blocs conditionnels."
#~ msgid "Changes to Object APIs"
#~ msgstr "Modifications apportées aux API des objets"
#~ msgid ""
#~ "Python 3 merged together some types with similar functions while cleanly "
#~ "separating others."
#~ msgstr ""
#~ "Python 3 a fusionné certains types avec des fonctions identiques tout en "
#~ "séparant de façon propre, d'autres."
#~ msgid "str/unicode Unification"
#~ msgstr "Unification de *str* et *unicode*"
#~ msgid ""
#~ "Python 3's :func:`str` type is equivalent to Python 2's :func:`unicode`; "
#~ "the C functions are called ``PyUnicode_*`` for both. The old 8-bit "
#~ "string type has become :func:`bytes`, with C functions called "
#~ "``PyBytes_*``. Python 2.6 and later provide a compatibility header, :"
#~ "file:`bytesobject.h`, mapping ``PyBytes`` names to ``PyString`` ones. "
#~ "For best compatibility with Python 3, :c:type:`PyUnicode` should be used "
#~ "for textual data and :c:type:`PyBytes` for binary data. It's also "
#~ "important to remember that :c:type:`PyBytes` and :c:type:`PyUnicode` in "
#~ "Python 3 are not interchangeable like :c:type:`PyString` and :c:type:"
#~ "`PyUnicode` are in Python 2. The following example shows best practices "
#~ "with regards to :c:type:`PyUnicode`, :c:type:`PyString`, and :c:type:"
#~ "`PyBytes`. ::"
#~ msgstr ""
#~ "Le type :func:`str` de Python 3 est l'équivalent de :func:`unicode` sous "
#~ "Python 2 ; Les fonctions C sont appelées ``PyUnicode_*`` pour les deux "
#~ "versions. L'ancien type de chaîne de caractères de 8 bits est devenue :"
#~ "func:`bytes`, avec des fonctions C nommées ``PyBytes_*``. Python 2.6 et "
#~ "toutes les versions supérieures fournissent un en-tête de compatibilité, :"
#~ "file:`bytesobject.h`, faisant correspondre les noms ``PyBytes`` aux "
#~ "``PyString``. Pour une meilleure compatibilité avec Python 3, :c:type:"
#~ "`PyUnicode` doit être utilisé seulement pour des données textuelles et :c:"
#~ "type:`PyBytes` pour des données binaires. Il est important de noter que :"
#~ "c:type:`PyBytes` et :c:type:`PyUnicode` en Python 3 ne sont pas "
#~ "remplaçables contrairement à :c:type:`PyString` et :c:type:`PyUnicode` "
#~ "dans Python 2. L'exemple suivant montre l'utilisation optimale de :c:type:"
#~ "`PyUnicode`, :c:type:`PyString`, et :c:type:`PyBytes`. ::"
#~ msgid "long/int Unification"
#~ msgstr "Unification de *long* et *int*"
#~ msgid ""
#~ "Python 3 has only one integer type, :func:`int`. But it actually "
#~ "corresponds to Python 2's :func:`long` type—the :func:`int` type used in "
#~ "Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced "
#~ "by their ``PyLong_*`` equivalents."
#~ msgstr ""
#~ "Python 3 n'a qu'un type d'entier, :func:`int`. Mais il correspond au "
#~ "type :func:`long` de Python 2 — le type :func:`int` utilisé dans Python 2 "
#~ "a été supprimé. Dans l'API C, les fonctions ``PyInt_*`` sont remplacées "
#~ "par leurs équivalents ``PyLong_*``."
#~ msgid "Module initialization and state"
#~ msgstr "Initialisation et état du module"
#~ msgid ""
#~ "Python 3 has a revamped extension module initialization system. (See :"
#~ "pep:`3121`.) Instead of storing module state in globals, they should be "
#~ "stored in an interpreter specific structure. Creating modules that act "
#~ "correctly in both Python 2 and Python 3 is tricky. The following simple "
#~ "example demonstrates how. ::"
#~ msgstr ""
#~ "Python 3 a remanié son système d'initialisation des modules d'extension "
#~ "(Voir :pep:`3121`.). Au lieu de stocker les états de module dans les "
#~ "variables globales, les états doivent être stockés dans une structure "
#~ "spécifique à l'interpréteur. Créer des modules qui ont un fonctionnement "
#~ "correct en Python 2 et Python 3 est délicat. L'exemple suivant montre "
#~ "comment. ::"
#~ msgid "CObject replaced with Capsule"
#~ msgstr "CObject remplacé par Capsule"
#~ msgid ""
#~ "The :c:type:`Capsule` object was introduced in Python 3.1 and 2.7 to "
#~ "replace :c:type:`CObject`. CObjects were useful, but the :c:type:"
#~ "`CObject` API was problematic: it didn't permit distinguishing between "
#~ "valid CObjects, which allowed mismatched CObjects to crash the "
#~ "interpreter, and some of its APIs relied on undefined behavior in C. (For "
#~ "further reading on the rationale behind Capsules, please see :issue:"
#~ "`5630`.)"
#~ msgstr ""
#~ "L'objet :c:type:`Capsule` a été introduit dans Python 3.1 et 2.7 pour "
#~ "remplacer :c:type:`CObject`. Le type :c:type:`CObject` était utile, mais "
#~ "son API posait des soucis : elle ne permettait pas la distinction entre "
#~ "les objets C valides, ce qui permettait aux objets C assortis "
#~ "incorrectement de planter l'interpréteur, et certaines des API "
#~ "s'appuyaient sur un comportement indéfini en C. (Pour plus de détails sur "
#~ "la logique de Capsules, veuillez consulter :issue:`5630`)."
#~ msgid ""
#~ "If you're currently using CObjects, and you want to migrate to 3.1 or "
#~ "newer, you'll need to switch to Capsules. :c:type:`CObject` was "
#~ "deprecated in 3.1 and 2.7 and completely removed in Python 3.2. If you "
#~ "only support 2.7, or 3.1 and above, you can simply switch to :c:type:"
#~ "`Capsule`. If you need to support Python 3.0, or versions of Python "
#~ "earlier than 2.7, you'll have to support both CObjects and Capsules. "
#~ "(Note that Python 3.0 is no longer supported, and it is not recommended "
#~ "for production use.)"
#~ msgstr ""
#~ "Si vous utilisez actuellement CObjects et que vous voulez migrer vers la "
#~ "version 3.1 ou plus récente, vous devrez passer à Capsules. :c:type:"
#~ "`CObject` est déprécié dans 3.1 et 2.7 et est supprimé dans Python 3.2. "
#~ "Si vous ne gérez que les versions 2.7, ou 3.1 et supérieures, vous pouvez "
#~ "simplement passer à :c:type:`Capsule`. Si vous avez besoin de gérer "
#~ "Python 3.0, ou des versions de Python antérieures à 2.7, vous devez gérer "
#~ "CObjects et Capsules. (Notez que Python 3.0 n'est plus maintenu, et qu'il "
#~ "n'est pas recommandé pour une utilisation en production)."
#~ msgid ""
#~ "The following example header file :file:`capsulethunk.h` may solve the "
#~ "problem for you. Simply write your code against the :c:type:`Capsule` "
#~ "API and include this header file after :file:`Python.h`. Your code will "
#~ "automatically use Capsules in versions of Python with Capsules, and "
#~ "switch to CObjects when Capsules are unavailable."
#~ msgstr ""
#~ "L'exemple suivant d'en-tête de fichier :file:`capsulethunk.h` peut "
#~ "résoudre le problème. Il suffit d'écrire votre code dans l'API :c:type:"
#~ "`Capsule` et d'inclure ce fichier d'en-tête après :file:`Python.h`. Votre "
#~ "code utilisera automatiquement Capsules dans les versions de Python avec "
#~ "Capsules, et passera à CObjects lorsque les Capsules ne sont pas "
#~ "disponibles."
#~ msgid ""
#~ ":file:`capsulethunk.h` simulates Capsules using CObjects. However, :c:"
#~ "type:`CObject` provides no place to store the capsule's \"name\". As a "
#~ "result the simulated :c:type:`Capsule` objects created by :file:"
#~ "`capsulethunk.h` behave slightly differently from real Capsules. "
#~ "Specifically:"
#~ msgstr ""
#~ ":file:`capsulethunk.h` reproduit le fonctionnement de Capsules en "
#~ "utilisant CObjects. Cependant, :c:type:`CObject` ne permet pas de stocker "
#~ "le \"nom\" de la capsule. Les objets simulés :c:type:`Capsule` créés par :"
#~ "file:`capsulethunk.h` se comportent légèrement différemment des "
#~ "véritables Capsules. Ainsi :"
#~ msgid "The name parameter passed in to :c:func:`PyCapsule_New` is ignored."
#~ msgstr "Le paramètre *name* passé à :c:func:`PyCapsule_New` est ignoré."
#~ msgid ""
#~ "The name parameter passed in to :c:func:`PyCapsule_IsValid` and :c:func:"
#~ "`PyCapsule_GetPointer` is ignored, and no error checking of the name is "
#~ "performed."
#~ msgstr ""
#~ "Le paramètre *name* passé à :c:func:`PyCapsule_IsValid` et :c:func:"
#~ "`PyCapsule_GetPointer` est ignoré et il n'y a pas de vérification "
#~ "d'erreur du nom."
#~ msgid ":c:func:`PyCapsule_GetName` always returns NULL."
#~ msgstr ":c:func:`PyCapsule_GetName` renvoie toujours un NULL."
#~ msgid ""
#~ ":c:func:`PyCapsule_SetName` always raises an exception and returns "
#~ "failure. (Since there's no way to store a name in a CObject, noisy "
#~ "failure of :c:func:`PyCapsule_SetName` was deemed preferable to silent "
#~ "failure here. If this is inconvenient, feel free to modify your local "
#~ "copy as you see fit.)"
#~ msgstr ""
#~ ":c:func:`PyCapsule_SetName` lève toujours une exception et renvoie un "
#~ "échec. Note : Puisqu'il n'y a aucun moyen de stocker un nom dans un "
#~ "CObject, l'échec verbeux de :c:func:`PyCapsule_SetName` a été jugé "
#~ "préférable à un échec non-verbeux dans ce cas. Si cela ne vous convenait "
#~ "pas, vous pouvez modifier votre copie locale selon vos besoins."
#~ msgid ""
#~ "You can find :file:`capsulethunk.h` in the Python source distribution as :"
#~ "source:`Doc/includes/capsulethunk.h`. We also include it here for your "
#~ "convenience:"
#~ msgstr ""
#~ "Vous pouvez trouver :file:`capsulethunk.h` dans la distribution source de "
#~ "Python comme :source:`Doc/includes/capsulethunk.h`. Nous l'incluons ici "
#~ "pour votre confort :"
#~ msgid "Other options"
#~ msgstr "Autres options"
#~ msgid ""
#~ "If you are writing a new extension module, you might consider `Cython "
#~ "<http://cython.org/>`_. It translates a Python-like language to C. The "
#~ "extension modules it creates are compatible with Python 3 and Python 2."
#~ msgstr ""
#~ "Si vous écrivez un nouveau module d'extension, vous pouvez envisager "
#~ "d'utiliser `Cython <http://cython.org/>`_. Il traduit un langage de type "
#~ "Python en C. Les modules d'extension qu'il crée sont compatibles avec "
#~ "Python 3 et Python 2."