# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 12:46+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\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"

#: extending/building.rst:7
msgid "Building C and C++ Extensions"
msgstr "Construire des extensions C et C++"

#: extending/building.rst:9
msgid ""
"A C extension for CPython is a shared library (e.g. a ``.so`` file on Linux, "
"``.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*."

#: extending/building.rst:12
msgid ""
"To be importable, the shared library must be available on :envvar:"
"`PYTHONPATH`, and must be named after the module name, with an appropriate "
"extension. When using distutils, the correct filename is generated "
"automatically."
msgstr ""
"Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être "
"trouvée dans :envvar:`PYTHONPATH`, et doit porter le nom du module, avec "
"l'extension appropriée. En utilisant *distutils*, le nom est généré "
"automatiquement."

#: extending/building.rst:16
msgid "The initialization function has the signature:"
msgstr "La fonction d'initialisation doit avoir le prototype :"

#: extending/building.rst:20
#, fuzzy
msgid ""
"It returns either a fully initialized module, or a :c:type:`PyModuleDef` "
"instance. See :ref:`initializing-modules` for details."
msgstr ""
"Elle doit donner soit un module entièrement initialisé, soit une instance "
"de :c:type:`PyModuleDef`. Voir :ref:`initializing-modules` pour plus de "
"détails."

#: extending/building.rst:25
msgid ""
"For modules with ASCII-only names, the function must be named "
"``PyInit_<modulename>``, with ``<modulename>`` replaced by the name of the "
"module. When using :ref:`multi-phase-initialization`, non-ASCII module names "
"are allowed. In this case, the initialization function name is "
"``PyInitU_<modulename>``, with ``<modulename>`` encoded using Python's "
"*punycode* encoding with hyphens replaced by underscores. In Python::"
msgstr ""
"Pour les modules dont les noms sont entièrement en ASCII, la fonction doit "
"être nommée ``PyInit_<modulename>``, dont ``<modulename>`` est remplacé par "
"le nom du module. En utilisant :ref:`multi-phase-initialization`, il est "
"possible d'utiliser des noms de modules comptant des caractères non ASCII. "
"Dans ce cas, le nom de la fonction d'initialisation est "
"``PyInitU_<modulename>``, où ``modulename`` est encodé avec l'encodage "
"*punyencode* de Python, dont les tirets sont remplacés par des tirets-bas. "
"En Python ça donne ::"

#: extending/building.rst:39
msgid ""
"It is possible to export multiple modules from a single shared library by "
"defining multiple initialization functions. However, importing them requires "
"using symbolic links or a custom importer, because by default only the "
"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* personnalisé, puisque par défaut seule la fonction correspondant "
"au nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one "
"library\"* dans la :pep:`489` pour plus d'informations."

#: extending/building.rst:49
msgid "Building C and C++ Extensions with distutils"
msgstr "Construire les extensions C et C++ avec *distutils*"

#: extending/building.rst:53
msgid ""
"Extension modules can be built using distutils,  which is included in "
"Python. Since distutils also supports creation of binary packages, users "
"don't necessarily need a compiler and distutils to install the extension."
msgstr ""
"Des modules d'extension peuvent être construits avec *distutils*, qui est "
"inclus dans Python. Puisque *distutils* gère aussi la création de paquets "
"binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un "
"compilateur ni de *distutils* pour installer l'extension."

#: extending/building.rst:57
msgid ""
"A distutils package contains a driver script, :file:`setup.py`. This is a "
"plain Python file, which, in the most simple case, could look like this:"
msgstr ""
"Un paquet *distutils* contient un script :file:`setup.py`. C'est un simple "
"fichier Python, ressemblant dans la plupart des cas à :"

#: extending/building.rst:73
msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::"
msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::"

#: extending/building.rst:77
msgid ""
"will compile :file:`demo.c`, and produce an extension module named ``demo`` "
"in the :file:`build` directory. Depending on the system, the module file "
"will end up in a subdirectory :file:`build/lib.system`, and may have a name "
"like :file:`demo.so` or :file:`demo.pyd`."
msgstr ""
"compilera :file:`demo.c`, et produira un module d'extension nommé ``demo`` "
"dans le dossier :file:`build`. En fonction du système, le fichier du module "
"peut se retrouver dans :file:`build/lib.system`, et son nom peut être :file:"
"`demo.py` ou :file:`demo.pyd`."

#: extending/building.rst:82
msgid ""
"In the :file:`setup.py`, all execution is performed by calling the ``setup`` "
"function. This takes a variable number of keyword arguments, of which the "
"example above uses only a subset. Specifically, the example specifies meta-"
"information to build packages, and it specifies the contents of the "
"package.  Normally, a package will contain additional modules, like Python "
"source modules, documentation, subpackages, etc. Please refer to the "
"distutils documentation in :ref:`distutils-index` to learn more about the "
"features of distutils; this section explains building extension modules only."
msgstr ""
"Dans le fichier :file:`setup.py`, tout est exécuté en appelant la fonction "
"``setup``. Elle prend un nombre variable d'arguments nommés, dont l'exemple "
"précédent n'utilise qu'une partie. L'exemple précise des méta-informations "
"pour construire les paquets, et définir le contenu du paquet. Normalement un "
"paquet contient des modules additionnels, comme des modules sources, "
"documentation, sous paquets, etc. Référez-vous à la documentation de "
"*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les "
"fonctionnalités de *distutils*. Cette section n'explique que la construction "
"de modules d'extension."

#: extending/building.rst:91
msgid ""
"It is common to pre-compute arguments to :func:`setup`, to better structure "
"the driver script. In the example above, the ``ext_modules`` argument to :"
"func:`~distutils.core.setup` is a list of extension modules, each of which "
"is an instance of the :class:`~distutils.extension.Extension`. In the "
"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`."

#: extending/building.rst:99
msgid ""
"In many cases, building an extension is more complex, since additional "
"preprocessor defines and libraries may be needed. This is demonstrated in "
"the example below."
msgstr ""
"Dans la plupart des cas, construire une extension est plus complexe à cause "
"des bibliothèques et définitions de préprocesseurs dont la compilation "
"pourrait dépendre. C'est ce qu'on remarque dans l'exemple plus bas."

#: extending/building.rst:127
msgid ""
"In this example, :func:`~distutils.core.setup` is called with additional "
"meta-information, which is recommended when distribution packages have to be "
"built. For the extension itself, it specifies preprocessor defines, include "
"directories, library directories, and libraries. Depending on the compiler, "
"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 appelé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 ::"

#: extending/building.rst:139
msgid ""
"These lines are for demonstration purposes only; distutils users should "
"trust that distutils gets the invocations right."
msgstr ""
"Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* "
"doivent avoir confiance en *distutils* qui fera les appels correctement."

#: extending/building.rst:146
msgid "Distributing your extension modules"
msgstr "Distribuer vos modules d'extension"

#: extending/building.rst:148
msgid ""
"When an extension has been successfully built, there are three ways to use "
"it."
msgstr ""
"Lorsqu'une extension a été construite avec succès, il existe trois moyens de "
"l'utiliser."

#: extending/building.rst:150
msgid ""
"End-users will typically want to install the module, they do so by running ::"
msgstr ""
"Typiquement, les utilisateurs vont vouloir installer le module, ils le font "
"en exécutant ::"

#: extending/building.rst:154
msgid ""
"Module maintainers should produce source packages; to do so, they run ::"
msgstr ""
"Les mainteneurs de modules voudront produire des paquets source, pour ce "
"faire ils exécuteront ::"

#: extending/building.rst:158
msgid ""
"In some cases, additional files need to be included in a source "
"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`."

#: extending/building.rst:161
msgid ""
"If the source distribution has been built successfully, maintainers can also "
"create binary distributions. Depending on the platform, one of the following "
"commands can be used to do so. ::"
msgstr ""
"Si la distribution source a été construite avec succès, les mainteneurs "
"peuvent aussi créer une distribution binaire. En fonction de la plateforme, "
"une des commandes suivantes peut être utilisée. ::"
