From fa5ab2955f1d108235b42340f265f9037bc371f0 Mon Sep 17 00:00:00 2001 From: remil Date: Fri, 17 Feb 2023 16:46:19 +0000 Subject: [PATCH] Add initial translation for c-api/stable.po (#85) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rémi Lapeyre Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/85 Co-authored-by: remil Co-committed-by: remil --- c-api/stable.po | 198 +++++++++++++++++++++++++++++------------------- 1 file changed, 119 insertions(+), 79 deletions(-) diff --git a/c-api/stable.po b/c-api/stable.po index 0e0c2607..a790ddbf 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -6,20 +6,20 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-23 16:16+0200\n" -"PO-Revision-Date: 2018-10-04 12:26+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2023-02-17 17:33+0100\n" +"Last-Translator: Rémi Lapeyre \n" "Language-Team: FRENCH \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 3.2.2\n" #: c-api/stable.rst:7 msgid "C API Stability" -msgstr "" +msgstr "Stabilité de l’API C" #: c-api/stable.rst:9 -#, fuzzy msgid "" "Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. " "While the C API will change with every minor release (e.g. from 3.9 to " @@ -27,10 +27,12 @@ msgid "" "API. Changing existing API or removing API is only done after a deprecation " "period or to fix serious issues." 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)." +"L'API C respecte la politique de rétrocompatibilité de Python, :pep:`387`. " +"Malgré la présence d’évolutions dans chaque version mineure (par exemple " +"entre 3.9 et 3.10), la majorité de ces changement n'affecte pas la " +"compatibilité du code source. Typiquement des APIs sont ajoutées mais pas " +"modifiées ou supprimées, bien que cela puisse arriver après une période de " +"dépréciation ou pour corriger un problème important." #: c-api/stable.rst:15 msgid "" @@ -40,16 +42,24 @@ msgid "" "work on 3.10.8 and vice versa, but will need to be compiled separately for " "3.9.x and 3.10.x." msgstr "" +"L’interface binaire de CPython (ABI) est entièrement compatible au sein " +"d’une version mineure (à condition que la compilation soit toujours faite de " +"même manière, comme indiqué dans :ref:`stable-abi-platform` ci-dessous). " +"Ainsi le code compilé pour Python 3.10.0 fonctionnera avec Python 3.10.8 et " +"inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x." #: c-api/stable.rst:21 msgid "" "Names prefixed by an underscore, such as ``_Py_InternalState``, are private " "API that can change without notice even in patch releases." msgstr "" +"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, " +"font partie de l’API privée et peuvent changer sans préavis même dans une " +"version de correctif." #: c-api/stable.rst:26 msgid "Stable Application Binary Interface" -msgstr "ABI Stable" +msgstr "ABI stable" #: c-api/stable.rst:28 msgid "" @@ -58,6 +68,11 @@ msgid "" "multiple versions of Python. Contents of the Limited API are :ref:`listed " "below `." msgstr "" +"Le concept d’*API restreinte*, un sous-ensemble de l’API C de Python, existe " +"depuis Python 3.2. Les extensions qui utilisent uniquement l’API restreinte " +"peuvent être compilées une seule fois et fonctionner avec plusieurs versions " +"de Python. Les objets faisant partie de l’API restreinte sont :ref:`documentés " +"ci-dessous `." #: c-api/stable.rst:33 msgid "" @@ -66,6 +81,11 @@ msgid "" "symbols exposed in the Limited API, but also other ones – for example, " "functions necessary to support older versions of the Limited API." msgstr "" +"Python a aussi une *ABI stable* : un ensemble de symboles qui sont " +"compatibles avec l’ensemble des versions Python 3.x. L’ABI stable contient " +"les symboles utilisés par l’API restreinte, mais pas seulement — par exemple " +"les fonctions nécessaires pour supporter les versions précédentes de l’API " +"restreinte en font aussi partie." #: c-api/stable.rst:38 msgid "" @@ -73,12 +93,17 @@ msgid "" "and Stable ABI work the same way for all uses of the API – for example, " "embedding Python.)" msgstr "" +"(Par simplicité ce document parle *d’extensions*, mais l’API restreinte et " +"l’ABI stable fonctionnent de la même manière pour tous les cas d’usages de " +"l’API — par exemple pour embarquer Python.)" #: c-api/stable.rst:44 msgid "" "Define this macro before including ``Python.h`` to opt in to only use the " "Limited API, and to select the Limited API version." msgstr "" +"Définissez cette macro avant d’inclure ``Python.h`` pour n’inclure que l’API " +"restreinte et indiquer sa version." #: c-api/stable.rst:47 msgid "" @@ -88,6 +113,11 @@ msgid "" "the specified one onward, and can use Limited API introduced up to that " "version." msgstr "" +"Définissez ``Py_LIMITED_API`` à la valeur de :c:data:`PY_VERSION_HEX` " +"correspond à la version minimale de Python que votre extension supporte. " +"Cette extension fonctionnera sans re-compilation avec toutes les versions " +"futures de Python 3, et peut utiliser l’ensemble des éléments de l’API " +"restreinte présent dans cette version." #: c-api/stable.rst:53 msgid "" @@ -95,12 +125,19 @@ msgid "" "minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when " "compiling with future Python versions." msgstr "" +"Il est recommandé de renseigner une version mineure minimale (par exemple " +"``0x030A0000`` pour Python 3.10) plutôt que d’utiliser directement la macro " +"``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée " +"lors de la compilation." #: c-api/stable.rst:57 msgid "" "You can also define ``Py_LIMITED_API`` to ``3``. This works the same as " "``0x03020000`` (Python 3.2, the version that introduced Limited API)." msgstr "" +"Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est " +"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version " +"à supporter l’API restreinte." #: c-api/stable.rst:60 msgid "" @@ -108,6 +145,9 @@ msgid "" "``python3.dll`` rather than a version-specific library such as ``python39." "dll``." msgstr "" +"Sur Windows les extensions qui utilisent l’ABI stable doivent être liées " +"avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une " +"version comme ``python39.dll``." #: c-api/stable.rst:64 msgid "" @@ -117,6 +157,12 @@ msgid "" "to ensure that, for example, extensions built with the 3.10+ Limited API are " "not installed for lower versions of Python." msgstr "" +"Sur certaines plateformes Python essaiera de charger une bibliothèque " +"partagée dont le nom contient ``abi3`` (par exemple ``mymodule.abi3.so``). " +"Il ne vérifie pas si ces extensions respectent l’ABI stable. L’utilisateur " +"(ou ses outils d’administration) doit s’assurer que les extensions compilées " +"avec une version donnée de l’API restreinte, par exemple 3.10+, ne sont pas " +"utilisées avec des versions plus anciennes de Python." #: c-api/stable.rst:71 msgid "" @@ -124,16 +170,23 @@ msgid "" "library, not solely as macros. This makes them usable from languages that " "don't use the C preprocessor." msgstr "" +"Toutes les fonctions de l’ABI stable sont présentes dans la bibliothèque " +"dynamique de Python en tant que fonction, et pas uniquement comme macro. " +"Elles peuvent donc être utilisées avec des langages qui n’utilisent pas le " +"pré-processeur C." #: c-api/stable.rst:77 msgid "Limited API Scope and Performance" -msgstr "" +msgstr "Porté de l’API restreinte et performance" #: c-api/stable.rst:79 msgid "" "The goal for the Limited API is to allow everything that is possible with " "the full C API, but possibly with a performance penalty." msgstr "" +"L’objectif de l’API restreinte est de permettre l’ensemble des opérations " +"possibles avec l’API C étendue, mais peut avoir un impact sur les " +"performances." #: c-api/stable.rst:82 msgid "" @@ -141,6 +194,10 @@ msgid "" "variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it " "can rely on version-specific implementation details of the list object." msgstr "" +"Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la " +"macro « dangereuse » :c:func:`PyList_GET_ITEM` ne l’est pas. Cette macro " +"peut être plus rapide car elle dépend de détails d’implémentation spécifique " +"à l’objet ``list``." #: c-api/stable.rst:87 msgid "" @@ -149,6 +206,11 @@ msgid "" "allowing stability as Python's data structures are improved, but possibly " "reducing performance." msgstr "" +"Si ``Py_LIMITED_API`` n’est pas défini certaines fonctions de l’API C seront " +"remplacées par des macros ou une version en-ligne. Définir " +"``Py_LIMITED_API`` désactive cette optimisation, permettant de se garantir " +"contre les évolutions des structures de données utilisées par Python, et " +"peut réduire les performances." #: c-api/stable.rst:92 msgid "" @@ -159,10 +221,17 @@ msgid "" "where a version-specific one is not available – for example, for prereleases " "of an upcoming Python version." msgstr "" +"En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler " +"une extension utilisant l’API restreinte avec une version spécifique de l’ABI. " +"Les performances seront meilleures pour cette version de Python, mais la " +"compatibilité sera réduite. Compiler en définissant ``Py_LIMITED_API`` " +"produira une extension qui peut être utilisée quand une variante spécifique " +"à une version n’est pas disponible — par exemple pour une version alpha de " +"Python." #: c-api/stable.rst:101 msgid "Limited API Caveats" -msgstr "" +msgstr "Inconvénients de l’API restreinte" #: c-api/stable.rst:103 msgid "" @@ -171,6 +240,10 @@ msgid "" "only covers definitions, but an API also includes other issues, such as " "expected semantics." msgstr "" +"Compiler avec ``Py_LIMITED_API`` *n’est pas* une garantie absolue que le " +"code est conforme à l’API restreinte ou à l’ABI stable. ``Py_LIMITED_API`` ne " +"concerne que la définition des objets, mais une API inclut aussi d’autres " +"spécificités comme le comportement attendu." #: c-api/stable.rst:108 msgid "" @@ -181,18 +254,31 @@ msgid "" "the argument will be used directly, causing a ``NULL`` dereference and " "crash. A similar argument works for fields of structs." msgstr "" +"Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre l’appel " +"d’une fonction avec des arguments qui sont invalides pour une version de " +"Python plus ancienne. Par exemple considérons une fonction qui accepte " +"``NULL`` comme argument à partir de 3.9. ``NULL`` permet maintenant " +"d’utiliser le comportement par défaut, mais Python 3.8 essayera d’accéder à " +"l’objet pointé et dé-référencera ``NULL``, causant un crash. Des problèmes " +"similaires peuvent se produire avec les attributs des structures." #: c-api/stable.rst:115 msgid "" "Another issue is that some struct fields are currently not hidden when " "``Py_LIMITED_API`` is defined, even though they're part of the Limited API." msgstr "" +"Un autre problème est que certains attributs ne sont pas encore cachés " +"lorsque ``Py_LIMITED_API`` est défini, même s’il ne font pas partie de l’API " +"restreinte." #: c-api/stable.rst:118 msgid "" "For these reasons, we recommend testing an extension with *all* minor Python " "versions it supports, and preferably to build with the *lowest* such version." msgstr "" +"Pour ces raisons il est recommandé de tester une extension avec *l’ensemble " +"des versions mineures* supportées de Python, et généralement de la compiler " +"avec la plus *ancienne* de ces versions." #: c-api/stable.rst:121 msgid "" @@ -201,6 +287,10 @@ msgid "" "few private declarations are exposed for technical reasons (or even " "unintentionally, as bugs)." msgstr "" +"Il est aussi recommandé de vérifier la documentation de toutes les API " +"utilisées pour vérifier qu’elles fassent bien partie de l’API restreinte. Même " +"lorsque ``Py_LIMITED_API`` est défini quelques fonctions privées peuvent " +"être exposées aux utilisateurs pour des raisons techniques, ou par erreur." #: c-api/stable.rst:126 msgid "" @@ -210,10 +300,15 @@ msgid "" "particular, parts of the Limited API may be deprecated and removed, provided " "that the Stable ABI stays stable." msgstr "" +"Notez aussi que l’API restreinte n’est pas forcément stable : compiler avec " +"Python 3.8 en définissant ``Py_LIMITED_API`` garanti que l’extension " +"fonctionnera avec Python 3.12, mais pas qu’elle pourra *être compilée* avec " +"Python 3.12. En particulier certaines parties de l’API restreinte peuvent être " +"dépréciées et retirées tant que l’ABI stable n’est pas modifiée." #: c-api/stable.rst:136 msgid "Platform Considerations" -msgstr "" +msgstr "Considérations relatives aux plateformes" #: c-api/stable.rst:138 msgid "" @@ -222,6 +317,11 @@ msgid "" "ABI, these details define a “platform”. They usually depend on the OS type " "and processor architecture" msgstr "" +"La stabilité de l’ABI ne dépend pas que de Python mais aussi du compilateur " +"utilisé, des bibliothèques systèmes et des options du compilateur. " +"L’ensemble de ces détails correspondent à ce que l’ABI stable appelle une " +"« plateforme ». Ils dépendent généralement du système d’exploitation et de " +"l’architecture du processeur." #: c-api/stable.rst:143 msgid "" @@ -230,76 +330,16 @@ msgid "" "does not break the Stable ABI. This is the case with Windows and macOS " "releases from ``python.org`` and many third-party distributors." msgstr "" +"Les distributeurs de Python doivent s’assurer que toutes les versions de " +"Python pour une plateforme donnée sont compilées de manière à ne pas rompre " +"la compatibilité de l’ABI stable. C’est le cas des versions produites pour " +"Windows et macOS de ``python.org`` et de la plupart des distributions " +"tierces." #: c-api/stable.rst:153 msgid "Contents of Limited API" -msgstr "" +msgstr "Contenu de l’API restreinte" #: c-api/stable.rst:156 msgid "Currently, the Limited API includes the following items:" -msgstr "" - -#~ msgid "" -#~ "Unfortunately, the API compatibility does not extend to binary " -#~ "compatibility (the ABI). The reason is primarily the evolution of struct " -#~ "definitions, where addition of a new field, or changing the type of a " -#~ "field, might not break the API, but can break the ABI. As a consequence, " -#~ "extension modules need to be recompiled for every Python release " -#~ "(although an exception is possible on Unix when none of the affected " -#~ "interfaces are used). In 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." - -#~ msgid "" -#~ "Since Python 3.2, a subset of the API has been declared to guarantee a " -#~ "stable ABI. Extension modules wishing to use this API (called \"limited " -#~ "API\") need to define ``Py_LIMITED_API``. A number of interpreter details " -#~ "then 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." - -#~ msgid "" -#~ "In some cases, the stable ABI needs to be extended with new functions. " -#~ "Extension modules wishing to use these new APIs need to set " -#~ "``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:" -#~ "`apiabiversion`) of the minimum Python version they want to support (e.g. " -#~ "``0x03030000`` for Python 3.3). Such modules will work on all subsequent " -#~ "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." - -#~ msgid "" -#~ "As of Python 3.2, the set of functions available to the limited API is " -#~ "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\"*)." +msgstr "Pour le moment l’API restreinte inclut les éléments suivants :"