@@ -19,7 +19,7 @@ msgstr ""
1919
2020#: ../Doc/extending/windows.rst:8
2121msgid "Building C and C++ Extensions on Windows"
22- msgstr ""
22+ msgstr "Construire des extensions C et C++ sur Windows "
2323
2424#: ../Doc/extending/windows.rst:10
2525msgid ""
@@ -30,6 +30,12 @@ msgid ""
3030"programmer interested in producing software which can be successfully built "
3131"on both Unix and Windows."
3232msgstr ""
33+ "Cette page explique rapidement comment créer un module d'extension Windows "
34+ "pour Python en utilisant Microsoft Visual C++, et donne plus d'informations "
35+ "contextuelles sur son fonctionnement. Le texte explicatif est utile tant pour "
36+ "le développeur Windows qui apprend à construire des extensions Python que "
37+ "pour le développeur Unix souhaitant produire des logiciels pouvant être "
38+ "construits sur Unix et Windows."
3339
3440#: ../Doc/extending/windows.rst:17
3541msgid ""
@@ -38,6 +44,10 @@ msgid ""
3844"still need the C compiler that was used to build Python; typically Microsoft "
3945"Visual C++."
4046msgstr ""
47+ "Les auteurs de modules sont invités à utiliser l'approche *distutils* pour "
48+ "construire des modules d'extension, au lieu de celle décrite dans cette "
49+ "section. Vous aurez toujours besoin du compilateur C utilisé pour construire "
50+ "Python ; typiquement Microsoft Visual C++."
4151
4252#: ../Doc/extending/windows.rst:24
4353msgid ""
@@ -48,10 +58,16 @@ msgid ""
4858"working with. For example, if you are using Python 2.2.1, ``XY`` will "
4959"actually be ``22``."
5060msgstr ""
61+ "Cette page mentionne plusieurs noms de fichiers comprenant un numéro de "
62+ "version Python encodé. Ces noms de fichiers sont construits sous le format "
63+ "de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version majeu"
64+ "re et ``'Y'`` représente le numéro de version mineure de la version Python ave"
65+ "c laquelle vous travaillez. Par exemple, si vous utilisez Python 2.2.1, ``XY``"
66+ " correspond à ``22``."
5167
5268#: ../Doc/extending/windows.rst:34
5369msgid "A Cookbook Approach"
54- msgstr ""
70+ msgstr "Une approche " recette de cuisine" "
5571
5672#: ../Doc/extending/windows.rst:36
5773msgid ""
@@ -64,17 +80,30 @@ msgid ""
6480"project file for the :source:`winsound <PCbuild/winsound.vcxproj>` standard "
6581"library module."
6682msgstr ""
83+ "Il y a deux approches lorsque l'on construit des modules d'extension sur "
84+ "Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour "
85+ "contrôler le processus de construction, ou faire les choses manuellement."
86+ " L'approche distutils fonctionne bien pour la plupart des extensions ; la "
87+ "documentation pour utiliser :mod:`distutils` pour construire et empaqueter "
88+ "les modules d'extension est disponible dans :ref:`distutils-index`. Si vous "
89+ "considerez que vous avez réellement besoin de faire les choses manuellement, "
90+ "il pourrait être enrichissant d'étudier le fichier de projet :source:`winsound"
91+ " <PCbuild/winsound.vcxproj>` pour le module de la bibliothèque standard."
6792
6893#: ../Doc/extending/windows.rst:48
6994msgid "Differences Between Unix and Windows"
70- msgstr ""
95+ msgstr "Différences entre Unix et Windows "
7196
7297#: ../Doc/extending/windows.rst:53
7398msgid ""
7499"Unix and Windows use completely different paradigms for run-time loading of "
75100"code. Before you try to build a module that can be dynamically loaded, be "
76101"aware of how your system works."
77102msgstr ""
103+ "Unix et Windows utilisent des paradigmes complètement différents pour le "
104+ "chargement du code pendant l'exécution. Avant d'essayer de construire un "
105+ "module qui puisse être chargé dynamiquement, soyez conscient du mode de "
106+ "fonctionnement du système."
78107
79108#: ../Doc/extending/windows.rst:57
80109msgid ""
@@ -85,6 +114,13 @@ msgid ""
85114"actual locations in the program where the functions and data are placed in "
86115"memory. This is basically a link operation."
87116msgstr ""
117+ "Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au "
118+ "programme, ainsi que les noms des fonctions et les données que l'on s'attend "
119+ " à trouver dans le programme. Quand le fichier est attaché au programme, "
120+ "toutes les réferences à ces fonctions et données dans le code du fichier sont"
121+ " modifiées pour pointer vers les localisations actuelles dans le programme où "
122+ "sont désormais placées les fonctions et données dans la mémoire. C'est tout "
123+ "simplement une opération de liaison."
88124
89125#: ../Doc/extending/windows.rst:64
90126msgid ""
@@ -95,6 +131,12 @@ msgid ""
95131"and the lookup table is modified at runtime to point to the functions and "
96132"data."
97133msgstr ""
134+ "Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a "
135+ "pas de références paresseuses. A la place, un accès aux fonctions ou données "
136+ "passe par une table de conversion. Cela est fait pour que le code DLL ne doive"
137+ " pas être réarrangé à l'exécution pour renvoyer à la mémoire du programme ; à "
138+ "la place, le code utilise déjà la table de conversion DLL, et cette table est "
139+ "modifiée à l'exécution pour pointer vers les fonctions et données."
98140
99141#: ../Doc/extending/windows.rst:70
100142msgid ""
@@ -105,6 +147,12 @@ msgid ""
105147"files in the libraries; if it finds it, it will include all the code from "
106148"that object file."
107149msgstr ""
150+ "Sur Unix, il n'y a qu'un type de bibliothèque de fichier (:file:`.a`) qui "
151+ "contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant "
152+ "l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le lieur"
153+ " peut informer qu'il ne sait pas où un identificateur est défini. Le lieur le "
154+ "cherchera dans les fichiers objet dans les bibliothèques ; s'il le trouve, il "
155+ "incluera tout le code provenant de ce fichier objet."
108156
109157#: ../Doc/extending/windows.rst:76
110158msgid ""
@@ -119,6 +167,17 @@ msgid ""
119167"will need to be used for all future DLLs that depend on the symbols in the "
120168"application or DLL."
121169msgstr ""
170+ "Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique et "
171+ "une bibliothèque d'import (toutes deux appelées :file:`.lib`). Une bibliothèqu"
172+ "e statique est comme un fichier Unix :file:`.a` ; elle contient du code pouvan"
173+ "t être inclus si nécessaire. Une bibliothèque d'import est uniquement utilisée"
174+ " pour rassurer le lieur qu'un certain identificateur est légal, et sera présen"
175+ "t dans le programme quand la DLL est chargé. Comme ça le lieur utilise les "
176+ "informations provenant de la bibliothèque d'import pour construire la table de"
177+ " conversion pour utiliser les identificateurs qui ne sont pas inclus dans la "
178+ "DLL. Quand une application ou une DLL est lié, une bibliothèque d'import peut "
179+ "être générée, qui devra être utilisée pour tous les futures DLL dépendantes "
180+ "aux symboles provenant de l'application ou de la DLL."
122181
123182#: ../Doc/extending/windows.rst:86
124183msgid ""
@@ -130,6 +189,14 @@ msgid ""
130189"`A.lib` to the linker for B and C. :file:`A.lib` does not contain code; it "
131190"just contains information which will be used at runtime to access A's code."
132191msgstr ""
192+ "Supposons que vous construisez deux modules de chargement dynamiques, B et C, "
193+ "qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, vous ne "
194+ "transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C.so` ; cela"
195+ " le ferait être inclus deux fois, pour que B et C aient chacuns leur propre "
196+ "copie. Sur Windows, construire :file:`A.dll` construira aussi :file:`A.lib`. "
197+ "Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A.lib` ne contient"
198+ " pas de code ; il contient uniquement des informations qui seront utilisées "
199+ "lors de l'exécution pour accéder au code de A."
133200
134201#: ../Doc/extending/windows.rst:94
135202msgid ""
@@ -138,24 +205,34 @@ msgid ""
138205"On Unix, linking with a library is more like ``from spam import *``; it does "
139206"create a separate copy."
140207msgstr ""
208+ "Sur Windows, utiliser une bibliothèque d'import est comme utiliser ``import "
209+ "spam``; cela vous donne accès aux noms des spams, mais ne crée par de copie "
210+ "séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from spam "
211+ "import *`` ; cela créé une copie séparée."
141212
142213#: ../Doc/extending/windows.rst:103
143214msgid "Using DLLs in Practice"
144- msgstr ""
215+ msgstr "Utiliser les DLL en pratique "
145216
146217#: ../Doc/extending/windows.rst:108
147218msgid ""
148219"Windows Python is built in Microsoft Visual C++; using other compilers may "
149220"or may not work (though Borland seems to). The rest of this section is MSVC+"
150221"+ specific."
151222msgstr ""
223+ "Le Python de Windows est construit en Microsoft Visual C++ ; utiliser d'autres"
224+ " compilateurs pourrait fonctionner, ou pas (cependant Borland a l'air de "
225+ "fonctionner). Le reste de cette section est spécifique à MSVC++."
152226
153227#: ../Doc/extending/windows.rst:112
154228msgid ""
155229"When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the "
156230"linker. To build two DLLs, spam and ni (which uses C functions found in "
157231"spam), you could use these commands::"
158232msgstr ""
233+ "Lorsque vous créez des DLL sur Windows, vous devez transmettre :file:`pythonXY"
234+ ".lib` au lieur. Pour construire deux DLL, spam et ni (qui utilisent des "
235+ "fonctions C trouvées dans spam), vous pouvez utiliser ces commandes::"
159236
160237#: ../Doc/extending/windows.rst:119
161238msgid ""
@@ -164,13 +241,20 @@ msgid ""
164241"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find "
165242"the Python code thanks to :file:`pythonXY.lib`."
166243msgstr ""
244+ "La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam."
245+ "dll` et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions Python"
246+ " (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver le code"
247+ " Python grâce à :file:`pythonXY.lib`."
167248
168249#: ../Doc/extending/windows.rst:124
169250msgid ""
170251"The second command created :file:`ni.dll` (and :file:`.obj` and :file:`."
171252"lib`), which knows how to find the necessary functions from spam, and also "
172253"from the Python executable."
173254msgstr ""
255+ "La seconde commande a créé :file:`ni.dll` (et :file:`.obj` et :file:`."
256+ "lib`), qui sait comment trouver les fonctions nécessaires dans spam, ainsi "
257+ "qu'à partir de l'exécutable Python."
174258
175259#: ../Doc/extending/windows.rst:128
176260msgid ""
@@ -179,11 +263,21 @@ msgid ""
179263"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) "
180264"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``."
181265msgstr ""
266+ "Chaque identificateur n'est pas exporté vers la table de conversion. Si vous "
267+ "voulez que tout autre module (y compris Python) soit capable de voir vos "
268+ "identificateurs, vous devez préciser ``_declspec(dllexport)``, comme dans "
269+ "``void _declspec(dllexport) initspam(void)`` ou ``PyObject _declspec"
270+ "(dllexport) *NiGetSpamData(void)``."
182271
183272#: ../Doc/extending/windows.rst:133
184273msgid ""
185- "Developer Studio will throw in a lot of import libraries that you do not "
274+ "* Developer Studio* will throw in a lot of import libraries that you do not "
186275"really need, adding about 100K to your executable. To get rid of them, use "
187276"the Project Settings dialog, Link tab, to specify *ignore default "
188277"libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries."
189278msgstr ""
279+ "Developer Studio apportera beaucoup de bibliothèques d'import dont vous "
280+ "n'avez pas vraiment besoin, augmentant d'environ 100K votre exécutable. Pour "
281+ "s'en débarasser, allez dans les Paramètres du Projet, onglet Lien, pour "
282+ "préciser *ignorer les bibliothèques par défaut*. Et la :file:`msvcrtxx.lib` "
283+ "correcte à la liste des bibliothèques."
0 commit comments