@@ -19,7 +19,7 @@ msgstr ""
19
19
20
20
#: ../Doc/extending/windows.rst:8
21
21
msgid "Building C and C++ Extensions on Windows"
22
- msgstr ""
22
+ msgstr "Construire des extensions C et C++ sur Windows "
23
23
24
24
#: ../Doc/extending/windows.rst:10
25
25
msgid ""
@@ -30,6 +30,12 @@ msgid ""
30
30
"programmer interested in producing software which can be successfully built "
31
31
"on both Unix and Windows."
32
32
msgstr ""
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."
33
39
34
40
#: ../Doc/extending/windows.rst:17
35
41
msgid ""
@@ -38,6 +44,10 @@ msgid ""
38
44
"still need the C compiler that was used to build Python; typically Microsoft "
39
45
"Visual C++."
40
46
msgstr ""
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++."
41
51
42
52
#: ../Doc/extending/windows.rst:24
43
53
msgid ""
@@ -48,10 +58,16 @@ msgid ""
48
58
"working with. For example, if you are using Python 2.2.1, ``XY`` will "
49
59
"actually be ``22``."
50
60
msgstr ""
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``."
51
67
52
68
#: ../Doc/extending/windows.rst:34
53
69
msgid "A Cookbook Approach"
54
- msgstr ""
70
+ msgstr "Une approche " recette de cuisine" "
55
71
56
72
#: ../Doc/extending/windows.rst:36
57
73
msgid ""
@@ -64,17 +80,30 @@ msgid ""
64
80
"project file for the :source:`winsound <PCbuild/winsound.vcxproj>` standard "
65
81
"library module."
66
82
msgstr ""
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."
67
92
68
93
#: ../Doc/extending/windows.rst:48
69
94
msgid "Differences Between Unix and Windows"
70
- msgstr ""
95
+ msgstr "Différences entre Unix et Windows "
71
96
72
97
#: ../Doc/extending/windows.rst:53
73
98
msgid ""
74
99
"Unix and Windows use completely different paradigms for run-time loading of "
75
100
"code. Before you try to build a module that can be dynamically loaded, be "
76
101
"aware of how your system works."
77
102
msgstr ""
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."
78
107
79
108
#: ../Doc/extending/windows.rst:57
80
109
msgid ""
@@ -85,6 +114,13 @@ msgid ""
85
114
"actual locations in the program where the functions and data are placed in "
86
115
"memory. This is basically a link operation."
87
116
msgstr ""
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."
88
124
89
125
#: ../Doc/extending/windows.rst:64
90
126
msgid ""
@@ -95,6 +131,12 @@ msgid ""
95
131
"and the lookup table is modified at runtime to point to the functions and "
96
132
"data."
97
133
msgstr ""
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."
98
140
99
141
#: ../Doc/extending/windows.rst:70
100
142
msgid ""
@@ -105,6 +147,12 @@ msgid ""
105
147
"files in the libraries; if it finds it, it will include all the code from "
106
148
"that object file."
107
149
msgstr ""
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."
108
156
109
157
#: ../Doc/extending/windows.rst:76
110
158
msgid ""
@@ -119,6 +167,17 @@ msgid ""
119
167
"will need to be used for all future DLLs that depend on the symbols in the "
120
168
"application or DLL."
121
169
msgstr ""
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."
122
181
123
182
#: ../Doc/extending/windows.rst:86
124
183
msgid ""
@@ -130,6 +189,14 @@ msgid ""
130
189
"`A.lib` to the linker for B and C. :file:`A.lib` does not contain code; it "
131
190
"just contains information which will be used at runtime to access A's code."
132
191
msgstr ""
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."
133
200
134
201
#: ../Doc/extending/windows.rst:94
135
202
msgid ""
@@ -138,24 +205,34 @@ msgid ""
138
205
"On Unix, linking with a library is more like ``from spam import *``; it does "
139
206
"create a separate copy."
140
207
msgstr ""
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."
141
212
142
213
#: ../Doc/extending/windows.rst:103
143
214
msgid "Using DLLs in Practice"
144
- msgstr ""
215
+ msgstr "Utiliser les DLL en pratique "
145
216
146
217
#: ../Doc/extending/windows.rst:108
147
218
msgid ""
148
219
"Windows Python is built in Microsoft Visual C++; using other compilers may "
149
220
"or may not work (though Borland seems to). The rest of this section is MSVC+"
150
221
"+ specific."
151
222
msgstr ""
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++."
152
226
153
227
#: ../Doc/extending/windows.rst:112
154
228
msgid ""
155
229
"When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the "
156
230
"linker. To build two DLLs, spam and ni (which uses C functions found in "
157
231
"spam), you could use these commands::"
158
232
msgstr ""
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::"
159
236
160
237
#: ../Doc/extending/windows.rst:119
161
238
msgid ""
@@ -164,13 +241,20 @@ msgid ""
164
241
"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find "
165
242
"the Python code thanks to :file:`pythonXY.lib`."
166
243
msgstr ""
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`."
167
248
168
249
#: ../Doc/extending/windows.rst:124
169
250
msgid ""
170
251
"The second command created :file:`ni.dll` (and :file:`.obj` and :file:`."
171
252
"lib`), which knows how to find the necessary functions from spam, and also "
172
253
"from the Python executable."
173
254
msgstr ""
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."
174
258
175
259
#: ../Doc/extending/windows.rst:128
176
260
msgid ""
@@ -179,11 +263,21 @@ msgid ""
179
263
"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) "
180
264
"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``."
181
265
msgstr ""
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)``."
182
271
183
272
#: ../Doc/extending/windows.rst:133
184
273
msgid ""
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 "
186
275
"really need, adding about 100K to your executable. To get rid of them, use "
187
276
"the Project Settings dialog, Link tab, to specify *ignore default "
188
277
"libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries."
189
278
msgstr ""
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