From 1b2de6d0d9b884ca83011e10a51e303c13fb2501 Mon Sep 17 00:00:00 2001 From: antoine Date: Thu, 21 Nov 2019 23:03:02 +0100 Subject: [PATCH 01/19] Premier jet --- library/ctypes.po | 156 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 126 insertions(+), 30 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 6b8885c7b..077839409 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2018-07-29 19:07+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-21 23:00+0100\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" +"Last-Translator: Antoine Wecxsteen\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr "" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonction externes" #: ../Doc/library/ctypes.rst:11 msgid "" @@ -24,10 +25,14 @@ msgid "" "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonction externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"pemet d'appeller des fonctions depuis des DLLs ou des bibliothèques " +"partagées. Elle sert à interfacer ces bibliothèques avec du pur code Python." #: ../Doc/library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "" +msgstr "Didactiel de *ctypes*" #: ../Doc/library/ctypes.rst:21 msgid "" @@ -35,6 +40,10 @@ msgid "" "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" +"Remarque : Les exemples de code de ce didactiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Window ou Mac OS X, il " +"contiennent des directives doctest dans les commentaires." #: ../Doc/library/ctypes.rst:25 msgid "" @@ -43,16 +52,23 @@ msgid "" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" +"Remarque : Le type de ctypes :class:`c_int` apparaît dans certains de ces " +"des exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce " +"type est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — c'est bien " +"le même type." #: ../Doc/library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des bibliothèques à lien dynamique" #: ../Doc/library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" +":mod:`ctypes` fournit l'objet *cdll*, et sur Windows, les objets *windll* " +"and *oledll*, pour charger des bibliothèques à lien dynamique." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -64,12 +80,22 @@ msgid "" "error code is used to automatically raise an :class:`OSError` exception when " "the function call fails." msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle-aussi la convention ``stdcall``, et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement un exception :class:`OSError` quand " +"l'appel de la fonction échoue." #: ../Doc/library/ctypes.rst:46 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." #: ../Doc/library/ctypes.rst:51 msgid "" @@ -77,10 +103,13 @@ msgid "" "C library containing most standard C functions, and uses the cdecl calling " "convention::" msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions C standards, et qui suit " +"la convention d'appel cdecl ::" #: ../Doc/library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." #: ../Doc/library/ctypes.rst:66 msgid "" @@ -89,6 +118,11 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" +"Charger la bibliothèque C avec ``cdll.msvcrt`` utilisera une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, il faut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." #: ../Doc/library/ctypes.rst:71 msgid "" @@ -98,14 +132,19 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" +"En Linux, pour charger une bibliothèque, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger des bibliothèques " +"par des accès aux attributs. Il faut utiliser la méthode :meth:`LoadLibrary` " +"des chargeurs des dlls, ou bien charger la bibliothèque en créant une " +"instance de CDLL en appellant le constructeur :" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "" +msgstr "Les fonctions sont alors les attributs des objets dll ::" #: ../Doc/library/ctypes.rst:106 msgid "" @@ -117,6 +156,13 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" +"Les dlls des systèmes win32 comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une function. La version " +"UNICODE est exposée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction win32 ``GetModuleHandle``, qui renvoie un handle sur un " +"module à partir de son nom, a le prototype C suivant. C'est une macro qui " +"décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon si " +"UNICODE est définie ou non :" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -124,6 +170,10 @@ msgid "" "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"demandant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW``, et " +"ensuite en les appelant respectivement avec des objets bytes ou avec des " +"chaînes de caractères." #: ../Doc/library/ctypes.rst:123 msgid "" @@ -131,6 +181,9 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" +"Les dlls exposent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" #: ../Doc/library/ctypes.rst:131 msgid "" @@ -138,10 +191,13 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" +"En Windows, certaines dlls exposent des fonctions à travers un indice plutôt " +"qu'à travers un nom. On accède à ces fonctions en indiçant l'objet dll avec " +"son index :" #: ../Doc/library/ctypes.rst:148 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" #: ../Doc/library/ctypes.rst:150 msgid "" @@ -150,12 +206,18 @@ msgid "" "Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " "module handle." msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'epoch Unix, et la fonction ``GetModuleHandleA()``, qui retourne un " +"module handle win32." #: ../Doc/library/ctypes.rst:155 msgid "" "This example calls both functions with a ``NULL`` pointer (``None`` should " "be used as the ``NULL`` pointer)::" msgstr "" +"Cet exemple appelle les deux fonctions avec un pointeur NULL (on utilise " +"``None`` pour passer un pointeur NULL) :" #: ../Doc/library/ctypes.rst:166 msgid "" @@ -164,18 +226,26 @@ msgid "" "should not be relied upon. It is deprecated in 3.6.2, and will be removed " "in 3.7." msgstr "" +"Si, après avoir appelé une fonction, :mod:`ctypes` détecte qu'un nombre " +"incorrect d'arguments a été passé, il peut lever une :exc:`ValueError`. Il " +"ne faut pas se baser sur ce comportement ; celui-ci est obsolète depuis la " +"version 3.6.2 et sera supprimé en 3.7." #: ../Doc/library/ctypes.rst:171 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl``, et vice-versa ::" #: ../Doc/library/ctypes.rst:186 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" +"Pour déterminer la covention d'appel, il faut regarder dans l'en-tête C ou " +"dans la documentation de la fonction considérée." #: ../Doc/library/ctypes.rst:189 msgid "" @@ -183,6 +253,11 @@ msgid "" "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion des exception structurée " +"(*structured exception handling*) win32 pour empêcher des plantages dus à " +"des interruptions pour préserver la protection globale (*general protection " +"faults*) du système quand des fonctions sont appellées avec un nombre " +"d'argument incorrect ::" #: ../Doc/library/ctypes.rst:199 msgid "" @@ -191,6 +266,11 @@ msgid "" "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentations produites par des appels erronés à la bibliothèque " +"C)." #: ../Doc/library/ctypes.rst:204 msgid "" @@ -202,20 +282,31 @@ msgid "" "platforms default C :c:type:`int` type, their value is masked to fit into " "the C type." msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres dans ces appels de fonction. ``None`` est passé comme " +"le pointeur C ``NULL``, les objets octet et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` or :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, des zéros sont rajoutés " +"pour qu'ils tiennent dans le type C." #: ../Doc/library/ctypes.rst:211 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." #: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2099 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" #: ../Doc/library/ctypes.rst:220 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" -msgstr "" +msgstr ":mod:`ctypes` defines a number of primitive C compatible data types:" #: ../Doc/library/ctypes.rst:223 msgid "ctypes type" @@ -251,7 +342,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -263,7 +354,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractère de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -348,7 +439,7 @@ msgstr ":class:`c_ulonglong`" #: ../Doc/library/ctypes.rst:249 msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" #: ../Doc/library/ctypes.rst:252 msgid ":class:`c_size_t`" @@ -433,7 +524,7 @@ msgstr "``int`` ou ``None``" #: ../Doc/library/ctypes.rst:271 msgid "The constructor accepts any object with a truth value." -msgstr "" +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." #: ../Doc/library/ctypes.rst:273 msgid "" @@ -475,7 +566,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:350 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" #: ../Doc/library/ctypes.rst:352 msgid "" @@ -709,7 +800,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" -msgstr "" +msgstr "Tableaux" #: ../Doc/library/ctypes.rst:664 msgid "" @@ -745,7 +836,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" #: ../Doc/library/ctypes.rst:714 msgid "" @@ -811,7 +902,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:814 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" #: ../Doc/library/ctypes.rst:816 msgid "" @@ -866,7 +957,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:887 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" #: ../Doc/library/ctypes.rst:889 msgid "" @@ -896,7 +987,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" #: ../Doc/library/ctypes.rst:948 msgid "" @@ -1065,23 +1156,28 @@ msgstr "" #: ../Doc/library/ctypes.rst:1135 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" #: ../Doc/library/ctypes.rst:1137 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." #: ../Doc/library/ctypes.rst:1140 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" #: ../Doc/library/ctypes.rst:1160 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" #: ../Doc/library/ctypes.rst:1168 msgid "" @@ -1122,7 +1218,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1203 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" #: ../Doc/library/ctypes.rst:1205 msgid "" @@ -1154,11 +1250,11 @@ msgstr "" #: ../Doc/library/ctypes.rst:1247 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" #: ../Doc/library/ctypes.rst:1253 msgid "Finding shared libraries" -msgstr "" +msgstr "Trouver les bibliothèques partagées" #: ../Doc/library/ctypes.rst:1255 msgid "" @@ -1234,7 +1330,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1324 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" #: ../Doc/library/ctypes.rst:1326 msgid "" @@ -1261,7 +1357,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1346 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." #: ../Doc/library/ctypes.rst:1352 msgid "" @@ -1351,7 +1447,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1409 msgid "Added *winmode* parameter." -msgstr "" +msgstr "Ajout du paramètre *winmode*." #: ../Doc/library/ctypes.rst:1416 msgid "" @@ -2493,7 +2589,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2465 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" #: ../Doc/library/ctypes.rst:2469 msgid "Abstract base class for arrays." From 8508ba0be3522c6cd8a6c809e02a5eeff7c68813 Mon Sep 17 00:00:00 2001 From: antoine Date: Thu, 21 Nov 2019 23:10:54 +0100 Subject: [PATCH 02/19] Premier jet II --- library/ctypes.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 077839409..85fc5c85f 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -27,12 +27,12 @@ msgid "" msgstr "" ":mod:`ctypes` est une bibliothèque d'appel à des fonction externes en " "python. Elle fournit des types de données compatibles avec le langage C et " -"pemet d'appeller des fonctions depuis des DLLs ou des bibliothèques " +"permet d'appeler des fonctions depuis des DLLs ou des bibliothèques " "partagées. Elle sert à interfacer ces bibliothèques avec du pur code Python." #: ../Doc/library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "Didactiel de *ctypes*" +msgstr "Didacticiel de *ctypes*" #: ../Doc/library/ctypes.rst:21 msgid "" @@ -40,7 +40,7 @@ msgid "" "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" -"Remarque : Les exemples de code de ce didactiel utilisent :mod:`doctest` " +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " "pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " "exemples ont un comportement différent en Linux, Window ou Mac OS X, il " "contiennent des directives doctest dans les commentaires." @@ -52,7 +52,7 @@ msgid "" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" -"Remarque : Le type de ctypes :class:`c_int` apparaît dans certains de ces " +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " "des exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce " "type est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" "`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — c'est bien " @@ -68,7 +68,7 @@ msgid "" "objects, for loading dynamic link libraries." msgstr "" ":mod:`ctypes` fournit l'objet *cdll*, et sur Windows, les objets *windll* " -"and *oledll*, pour charger des bibliothèques à lien dynamique." +"et *oledll*, pour charger des bibliothèques à lien dynamique." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -157,7 +157,7 @@ msgid "" "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" "Les dlls des systèmes win32 comme ``kernel32`` et ``user32`` exportent " -"souvent une version ANSI et une version UNICODE d'une function. La version " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " "UNICODE est exposée avec un ``W`` à la fin, et la version ANSI avec un " "``A``. La fonction win32 ``GetModuleHandle``, qui renvoie un handle sur un " "module à partir de son nom, a le prototype C suivant. C'est une macro qui " @@ -244,7 +244,7 @@ msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" -"Pour déterminer la covention d'appel, il faut regarder dans l'en-tête C ou " +"Pour déterminer la convention d'appel, il faut regarder dans l'en-tête C ou " "dans la documentation de la fonction considérée." #: ../Doc/library/ctypes.rst:189 @@ -256,7 +256,7 @@ msgstr "" "En Windows, :mod:`ctypes` tire profit de la gestion des exception structurée " "(*structured exception handling*) win32 pour empêcher des plantages dus à " "des interruptions pour préserver la protection globale (*general protection " -"faults*) du système quand des fonctions sont appellées avec un nombre " +"faults*) du système quand des fonctions sont appelées avec un nombre " "d'argument incorrect ::" #: ../Doc/library/ctypes.rst:199 From 461bfbd62198e8d93918cf3f27c9ed9b0301773e Mon Sep 17 00:00:00 2001 From: antoine Date: Mon, 25 Nov 2019 22:00:40 +0100 Subject: [PATCH 03/19] On continue --- library/ctypes.po | 69 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 85fc5c85f..3cafd342d 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-11-21 23:00+0100\n" +"PO-Revision-Date: 2019-11-24 23:17+0100\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -67,8 +67,8 @@ msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" -":mod:`ctypes` fournit l'objet *cdll*, et sur Windows, les objets *windll* " -"et *oledll*, pour charger des bibliothèques à lien dynamique." +":mod:`ctypes` fournit l'objet *cdll*, et sur Windows, les objets *windll* et " +"*oledll*, pour charger des bibliothèques à lien dynamique." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -531,11 +531,15 @@ msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" #: ../Doc/library/ctypes.rst:284 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" #: ../Doc/library/ctypes.rst:296 msgid "" @@ -544,6 +548,10 @@ msgid "" "point to, *not the contents* of the memory block (of course not, because " "Python bytes objects are immutable)::" msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" #: ../Doc/library/ctypes.rst:316 msgid "" @@ -554,6 +562,12 @@ msgid "" "``raw`` property; if you want to access it as NUL terminated string, use the " "``value`` property::" msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" #: ../Doc/library/ctypes.rst:340 msgid "" @@ -563,6 +577,11 @@ msgid "" "memory block containing unicode characters of the C type :c:type:`wchar_t` " "use the :func:`create_unicode_buffer` function." msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères unicode du type C :c:type:" +"`wchar_t`." #: ../Doc/library/ctypes.rst:350 msgid "Calling functions, continued" @@ -574,6 +593,9 @@ msgid "" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" +"*printf* utilise la vraie sortie standard, et non, :data:`sys.stdout`, donc " +"les exemples suivants en fonctionneront que dans une invite de commande, et " +"non depuis *IDLE* or *PythonWin* ::" #: ../Doc/library/ctypes.rst:372 msgid "" @@ -581,10 +603,14 @@ msgid "" "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" #: ../Doc/library/ctypes.rst:385 msgid "Calling functions with your own custom data types" -msgstr "" +msgstr "Appel de fonctions avec votre propre type de données" #: ../Doc/library/ctypes.rst:387 msgid "" @@ -593,6 +619,11 @@ msgid "" "an :attr:`_as_parameter_` attribute and uses this as the function argument. " "Of course, it must be one of integer, string, or bytes::" msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes pour permettre de passer en argument des instances de vos " +"propres classes. mod:`ctypes' recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, ce doit être soit un " +"entier, soit une chaîne de caractères, soit des octets ::" #: ../Doc/library/ctypes.rst:402 msgid "" @@ -600,16 +631,21 @@ msgid "" "instance variable, you could define a :class:`property` which makes the " "attribute available on request." msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une class:" +"`propriété ' qui rend cet attribut disponible sur demande." #: ../Doc/library/ctypes.rst:410 msgid "Specifying the required argument types (function prototypes)" -msgstr "" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" #: ../Doc/library/ctypes.rst:412 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes'." #: ../Doc/library/ctypes.rst:415 msgid "" @@ -618,6 +654,11 @@ msgid "" "different types of parameters depending on the format string, on the other " "hand this is quite handy to experiment with this feature)::" msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur pour l'illustrer, car elle " +"accepte un nombre variable d'arguments de types eux-aussi variables, selon " +"la chaîne de formatage ; cela dit, elle se révèle pratique pour tester cette " +"fonctionnalité) ::" #: ../Doc/library/ctypes.rst:426 msgid "" @@ -625,6 +666,9 @@ msgid "" "prototype for a C function), and tries to convert the arguments to valid " "types::" msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" #: ../Doc/library/ctypes.rst:438 msgid "" @@ -638,10 +682,19 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" +"Pour appeler une fonction avec vos propres classes, il faut implémenter une " +"méthode de classe :meth:`from_param`, qui est utilisée dans la séquence :" +"attr:`argtypes'. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou quelque " +"chose tout ce qui est nécessaire pour s'assurer que l'objet est valide, puis " +"retourne l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce " +"que vous voulez passer comme argument fonction C dans ce cas. Encore une " +"fois, le résultat devrait être un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" -msgstr "" +msgstr "Types de sortie" #: ../Doc/library/ctypes.rst:454 msgid "" @@ -710,7 +763,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" #: ../Doc/library/ctypes.rst:554 msgid "" @@ -789,7 +842,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:642 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" #: ../Doc/library/ctypes.rst:644 msgid "" From 681a5a54f79532b7df737e04a5fc4f35cc5bf970 Mon Sep 17 00:00:00 2001 From: antoine Date: Tue, 10 Dec 2019 22:58:58 +0100 Subject: [PATCH 04/19] Continuation --- library/ctypes.po | 158 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 140 insertions(+), 18 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 3cafd342d..92e07da99 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-11-24 23:17+0100\n" +"PO-Revision-Date: 2019-12-08 22:43+0100\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -492,7 +492,7 @@ msgstr ":class:`c_char_p`" #: ../Doc/library/ctypes.rst:263 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:263 msgid "bytes object or ``None``" @@ -504,7 +504,7 @@ msgstr ":class:`c_wchar_p`" #: ../Doc/library/ctypes.rst:265 msgid ":c:type:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (Terminé par NUL)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:265 msgid "string or ``None``" @@ -620,8 +620,8 @@ msgid "" "Of course, it must be one of integer, string, or bytes::" msgstr "" "Il est possible de personnaliser la conversion des arguments effectuée par :" -"mod:`ctypes pour permettre de passer en argument des instances de vos " -"propres classes. mod:`ctypes' recherche un attribut :attr:`_as_parameter_` " +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " "et le prend comme argument à la fonction. Bien entendu, ce doit être soit un " "entier, soit une chaîne de caractères, soit des octets ::" @@ -632,8 +632,8 @@ msgid "" "attribute available on request." msgstr "" "Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" -"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une class:" -"`propriété ' qui rend cet attribut disponible sur demande." +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." #: ../Doc/library/ctypes.rst:410 msgid "Specifying the required argument types (function prototypes)" @@ -645,7 +645,7 @@ msgid "" "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" "Il est possible de définir le type des arguments demandés par une fonction " -"exportée depuis une DLL en définissant son attribut :attr:`argtypes'." +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." #: ../Doc/library/ctypes.rst:415 msgid "" @@ -684,7 +684,7 @@ msgid "" msgstr "" "Pour appeler une fonction avec vos propres classes, il faut implémenter une " "méthode de classe :meth:`from_param`, qui est utilisée dans la séquence :" -"attr:`argtypes'. La méthode de classe :meth:`from_param` récupère l'objet " +"attr:`argtypes`. La méthode de classe :meth:`from_param` récupère l'objet " "Python passé à la fonction et doit faire une vérification de type ou quelque " "chose tout ce qui est nécessaire pour s'assurer que l'objet est valide, puis " "retourne l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce " @@ -702,12 +702,18 @@ msgid "" "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" +"Le module suppose par défaut qu'une fonction renvoie un C :c:type:`int`. " +"Définir l'attribut :attr:`restype` de l'objet encapsulant la fonction permet " +"de définir un autre type de retour." #: ../Doc/library/ctypes.rst:458 msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère, et qui " +"renvoie un pointeur dur une chaîne ::" #: ../Doc/library/ctypes.rst:471 msgid "" @@ -715,6 +721,9 @@ msgid "" "`argtypes` attribute, and the second argument will be converted from a " "single character Python bytes object into a C char::" msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes`, et le second argument, un objet octet à un seul " +"caractère sera automatiquement converti en un caractère C ::" #: ../Doc/library/ctypes.rst:489 msgid "" @@ -725,6 +734,12 @@ msgid "" "function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple).Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction, et le " +"résultat de cet appel, sera le resultat final de l'appel à la fonction. " +"C'est pratique pour vérifier les codes d'erreurs des valeurs de retour et " +"lever automatiquement des exceptions ::" #: ../Doc/library/ctypes.rst:512 msgid "" @@ -733,16 +748,24 @@ msgid "" "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" +"``WinError`` appelle l'API Windows``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." #: ../Doc/library/ctypes.rst:517 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour des " +"précisions." #: ../Doc/library/ctypes.rst:524 msgid "Passing pointers (or: passing parameters by reference)" -msgstr "" +msgstr "Passage de pointeurs (passage de paramètres par référence)" #: ../Doc/library/ctypes.rst:526 msgid "" @@ -751,6 +774,8 @@ msgid "" "large to be passed by value. This is also known as *passing parameters by " "reference*." msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre. Ce" #: ../Doc/library/ctypes.rst:530 msgid "" @@ -760,6 +785,11 @@ msgid "" "constructs a real pointer object, so it is faster to use :func:`byref` if " "you don't need the pointer object in Python itself::" msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` permet la même chose, " +"mais en faisant plus de travail car :func:`pointer` construit un véritable " +"objet pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre " +"code Python, utiliser :func:`byref` est plus performant ::" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" @@ -772,12 +802,19 @@ msgid "" "subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " "a list of *2-tuples*, containing a *field name* and a *field type*." msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` " +"doit être un liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." #: ../Doc/library/ctypes.rst:559 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." #: ../Doc/library/ctypes.rst:562 msgid "" @@ -785,30 +822,43 @@ msgid "" "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" +"Voici un exemple simple : une structure POINT, qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure dans le " +"constructeur ::" #: ../Doc/library/ctypes.rst:582 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." #: ../Doc/library/ctypes.rst:585 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* and " +"*lowerright* ::" #: ../Doc/library/ctypes.rst:599 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" +"Une structure encapsulée peut être instanciée dans le constructeur de " +"plusieurs façons ::" #: ../Doc/library/ctypes.rst:604 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*, c'est utile pour déboguer car ils contiennent des " +"informations utiles ::" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -817,10 +867,15 @@ msgid "" "guaranteed by the library to work in the general case. Unions and " "structures with bit-fields should always be passed to functions by pointer." msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champ de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un heu d'instructions x86, ce n'est pas garantit " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." #: ../Doc/library/ctypes.rst:624 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" #: ../Doc/library/ctypes.rst:626 msgid "" @@ -830,6 +885,8 @@ msgid "" "to a positive integer and specifies the maximum alignment for the fields. " "This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" +"Par défaut les champs Structure et Unions sont alignés de la même manière " +"que le ferait un compilateur C." #: ../Doc/library/ctypes.rst:632 msgid "" @@ -839,6 +896,11 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" +":mod:`ctypes` suit le boutisme natif pour les Structures et les Unions. Pour " +"construire des structures avec un boutisme différent, utilisez les classes " +"de base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:" +"`BigEndianUnion` ou :class:`LittleEndianUnion`. Ces classes ne peuvent pas " +"avoir de champ pointeur." #: ../Doc/library/ctypes.rst:642 msgid "Bit fields in structures and unions" @@ -850,6 +912,9 @@ msgid "" "fields are only possible for integer fields, the bit width is specified as " "the third item in the :attr:`_fields_` tuples::" msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" @@ -860,32 +925,40 @@ msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." #: ../Doc/library/ctypes.rst:666 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" #: ../Doc/library/ctypes.rst:671 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" #: ../Doc/library/ctypes.rst:687 msgid "Instances are created in the usual way, by calling the class::" -msgstr "" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" #: ../Doc/library/ctypes.rst:693 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." #: ../Doc/library/ctypes.rst:696 msgid "Initializers of the correct type can also be specified::" -msgstr "" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" @@ -896,18 +969,24 @@ msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" +"On crée une instance de pointeur en appelant la fonction :`pointer`sur un " +"type :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:722 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" +"Les instances de pointer ont un attribut :attr:`~_Pointer.contents`qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" #: ../Doc/library/ctypes.rst:729 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" +"Attention mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu l'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -915,14 +994,17 @@ msgid "" "attribute would cause the pointer to point to the memory location where this " "is stored::" msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" #: ../Doc/library/ctypes.rst:750 msgid "Pointer instances can also be indexed with integers::" -msgstr "" +msgstr "Il est possible d'indicer les pointeurs par des entiers ::" #: ../Doc/library/ctypes.rst:756 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "" +msgstr "Affecter à travers un indice change la valeur pointée ::" #: ../Doc/library/ctypes.rst:765 msgid "" @@ -932,6 +1014,11 @@ msgid "" "a C function, and you *know* that the pointer actually points to an array " "instead of a single item." msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." #: ../Doc/library/ctypes.rst:771 msgid "" @@ -940,18 +1027,27 @@ msgid "" "the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " "returns a new type::" msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un pointeur de *type*. " +"Cela s'effectue avec la fonction :func:`POINTER` , qui prend en paramètre " +"n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" #: ../Doc/library/ctypes.rst:787 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" #: ../Doc/library/ctypes.rst:795 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" #: ../Doc/library/ctypes.rst:814 msgid "Type conversions" @@ -967,6 +1063,14 @@ msgid "" "instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " "accepts an array of c_int::" msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" #: ../Doc/library/ctypes.rst:837 msgid "" @@ -975,10 +1079,17 @@ msgid "" "pointed type (``c_int`` in this case) can be passed to the function. ctypes " "will apply the required :func:`byref` conversion in this case automatically." msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé (ici, ``c_int``) à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." #: ../Doc/library/ctypes.rst:842 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" #: ../Doc/library/ctypes.rst:849 msgid "" @@ -988,10 +1099,15 @@ msgid "" "accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " "``values`` field, but not instances of other types::" msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. mod:`ctypes` fournit la fonction :" +"func:`cast` qui permet la même chose. La structure ``Bar``ci-dessus accepte " +"des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:`c_int` comme " +"valeur pour le champ ``values``, mais pas des instances d'autres types ::" #: ../Doc/library/ctypes.rst:861 msgid "For these cases, the :func:`cast` function is handy." -msgstr "" +msgstr "C'est là que la fonction :func:`cast` intervient." #: ../Doc/library/ctypes.rst:863 msgid "" @@ -1001,12 +1117,18 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" +"La fonction :func:`cast` permet de caster une intance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast`prend deux " +"paramètres, un objet *ctypes* qui est ou qui peut être converti en un " +"certain pointeur, et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument :" #: ../Doc/library/ctypes.rst:874 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" -msgstr "" +msgstr "Aisin, " #: ../Doc/library/ctypes.rst:887 msgid "Incomplete Types" @@ -1136,7 +1258,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1060 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis les dlls" #: ../Doc/library/ctypes.rst:1062 msgid "" From 35ec33d624e009166a2aa239d86cde3cdf5d0369 Mon Sep 17 00:00:00 2001 From: antoine Date: Fri, 27 Dec 2019 19:07:42 +0100 Subject: [PATCH 05/19] Continuation II --- library/ctypes.po | 329 +++++++++++++++++++++++++++++----------------- 1 file changed, 208 insertions(+), 121 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 92e07da99..f1b7773e5 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-12-08 22:43+0100\n" +"PO-Revision-Date: 2019-12-26 19:44+0100\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -28,7 +28,8 @@ msgstr "" ":mod:`ctypes` est une bibliothèque d'appel à des fonction externes en " "python. Elle fournit des types de données compatibles avec le langage C et " "permet d'appeler des fonctions depuis des DLLs ou des bibliothèques " -"partagées. Elle sert à interfacer ces bibliothèques avec du pur code Python." +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." #: ../Doc/library/ctypes.rst:19 msgid "ctypes tutorial" @@ -43,7 +44,7 @@ msgstr "" "Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " "pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " "exemples ont un comportement différent en Linux, Window ou Mac OS X, il " -"contiennent des directives doctest dans les commentaires." +"contiennent des directives *doctest* dans les commentaires." #: ../Doc/library/ctypes.rst:25 msgid "" @@ -53,10 +54,10 @@ msgid "" "you would expect :class:`c_int` --- they are actually the same type." msgstr "" "Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " -"des exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce " -"type est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" -"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — c'est bien " -"le même type." +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." #: ../Doc/library/ctypes.rst:33 msgid "Loading dynamic link libraries" @@ -67,8 +68,8 @@ msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" -":mod:`ctypes` fournit l'objet *cdll*, et sur Windows, les objets *windll* et " -"*oledll*, pour charger des bibliothèques à lien dynamique." +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à lien " +"dynamique (et les objets *windll* et *oledll* en Windows)." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -86,8 +87,8 @@ msgstr "" "chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " "utilise elle-aussi la convention ``stdcall``, et suppose que les fonctions " "renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " -"est utilisé pour lever automatiquement un exception :class:`OSError` quand " -"l'appel de la fonction échoue." +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." #: ../Doc/library/ctypes.rst:46 msgid "" @@ -104,8 +105,8 @@ msgid "" "convention::" msgstr "" "Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " -"de Microsoft qui contient la plupart des fonctions C standards, et qui suit " -"la convention d'appel cdecl ::" +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" #: ../Doc/library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." @@ -118,11 +119,11 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" -"Charger la bibliothèque C avec ``cdll.msvcrt`` utilisera une version " -"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " -"avec celle que Python utilise. Si possible, il faut utiliser la " -"fonctionnalité native de Python, ou bien importer et utiliser le module " -"``msvcrt``." +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` va utiliser une " +"version obsolète de la bibliothèque qui peut avoir des problèmes de " +"compatibilité avec celle que Python utilise. Si possible, mieux vaut " +"utiliser la fonctionnalité native de Python, ou bien importer et utiliser le " +"module ``msvcrt``." #: ../Doc/library/ctypes.rst:71 msgid "" @@ -133,18 +134,18 @@ msgid "" "constructor::" msgstr "" "En Linux, pour charger une bibliothèque, il faut passer le nom du fichier " -"*avec* son extension. Il est donc impossible de charger des bibliothèques " -"par des accès aux attributs. Il faut utiliser la méthode :meth:`LoadLibrary` " -"des chargeurs des dlls, ou bien charger la bibliothèque en créant une " -"instance de CDLL en appellant le constructeur :" +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs des DLLs, ou bien charger la bibliothèque en créant une instance " +"de *CDLL* en appelant son constructeur :" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "Accès aux fonctions des DLL chargées" +msgstr "Accès aux fonctions des DLLs chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "Les fonctions sont alors les attributs des objets dll ::" +msgstr "Les fonctions sont alors les attributs des objets DLL :" #: ../Doc/library/ctypes.rst:106 msgid "" @@ -156,13 +157,13 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" -"Les dlls des systèmes win32 comme ``kernel32`` et ``user32`` exportent " +"Les DLLs des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " "souvent une version ANSI et une version UNICODE d'une fonction. La version " "UNICODE est exposée avec un ``W`` à la fin, et la version ANSI avec un " -"``A``. La fonction win32 ``GetModuleHandle``, qui renvoie un handle sur un " -"module à partir de son nom, a le prototype C suivant. C'est une macro qui " -"décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon si " -"UNICODE est définie ou non :" +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon " +"si UNICODE est définie ou non) :" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -171,9 +172,9 @@ msgid "" "explicitly, and then call it with bytes or string objects respectively." msgstr "" "*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " -"demandant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW``, et " -"ensuite en les appelant respectivement avec des objets bytes ou avec des " -"chaînes de caractères." +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères respectivement." #: ../Doc/library/ctypes.rst:123 msgid "" @@ -181,7 +182,7 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" -"Les dlls exposent parfois des fonctions dont les noms ne sont pas des " +"Les DLLs exposent parfois des fonctions dont les noms ne sont pas des " "identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " "faut utiliser :func:`getattr` pour accéder à la fonction ::" @@ -191,8 +192,8 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" -"En Windows, certaines dlls exposent des fonctions à travers un indice plutôt " -"qu'à travers un nom. On accède à ces fonctions en indiçant l'objet dll avec " +"En Windows, certaines DLLs exposent des fonctions à travers un indice plutôt " +"qu'à travers un nom. On accède à ces fonctions en indiçant l'objet DLL avec " "son index :" #: ../Doc/library/ctypes.rst:148 @@ -208,16 +209,16 @@ msgid "" msgstr "" "Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " "utilise la fonction ``time()``, qui renvoie le temps en secondes du système " -"depuis l'epoch Unix, et la fonction ``GetModuleHandleA()``, qui retourne un " -"module handle win32." +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui retourne " +"un gestionnaire de module *win32*." #: ../Doc/library/ctypes.rst:155 msgid "" "This example calls both functions with a ``NULL`` pointer (``None`` should " "be used as the ``NULL`` pointer)::" msgstr "" -"Cet exemple appelle les deux fonctions avec un pointeur NULL (on utilise " -"``None`` pour passer un pointeur NULL) :" +"Cet exemple appelle les deux fonctions avec un pointeur ``NULL`` (on utilise " +"``None`` pour passer un pointeur ``NULL``) :" #: ../Doc/library/ctypes.rst:166 msgid "" @@ -254,9 +255,9 @@ msgid "" "with invalid argument values::" msgstr "" "En Windows, :mod:`ctypes` tire profit de la gestion des exception structurée " -"(*structured exception handling*) win32 pour empêcher des plantages dus à " +"(*structured exception handling*) *win32* pour empêcher des plantages dus à " "des interruptions pour préserver la protection globale (*general protection " -"faults*) du système quand des fonctions sont appelées avec un nombre " +"faults*) du système, lorsque des fonctions sont appelées avec un nombre " "d'argument incorrect ::" #: ../Doc/library/ctypes.rst:199 @@ -283,9 +284,9 @@ msgid "" "the C type." msgstr "" "``None``, les entiers, les objets octets et les chaînes de caractères " -"(unicode) sont les seuls types natifs de Python qui peuvent être directement " -"passés en paramètres dans ces appels de fonction. ``None`` est passé comme " -"le pointeur C ``NULL``, les objets octet et les chaînes de caractères sont " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonction. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " "passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" "`char *` or :c:type:`wchar_t *`). Les entiers Python sont passés comme le " "type C :c:type:`int` par défaut de la plate-forme, des zéros sont rajoutés " @@ -342,7 +343,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "objet octet de 1 caractère" +msgstr "objet bytes de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -580,7 +581,7 @@ msgstr "" "La fonction :func:`create_string_buffer` remplace les fonctions :func:" "`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " "antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " -"bloc mémoire modifiable contenant des caractères unicode du type C :c:type:" +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" "`wchar_t`." #: ../Doc/library/ctypes.rst:350 @@ -593,9 +594,9 @@ msgid "" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" -"*printf* utilise la vraie sortie standard, et non, :data:`sys.stdout`, donc " -"les exemples suivants en fonctionneront que dans une invite de commande, et " -"non depuis *IDLE* or *PythonWin* ::" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionneront que dans une invite de commande et non " +"depuis *IDLE* or *PythonWin* :" #: ../Doc/library/ctypes.rst:372 msgid "" @@ -622,8 +623,8 @@ msgstr "" "Il est possible de personnaliser la conversion des arguments effectuée par :" "mod:`ctypes` pour permettre de passer en argument des instances de vos " "propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " -"et le prend comme argument à la fonction. Bien entendu, ce doit être soit un " -"entier, soit une chaîne de caractères, soit des octets ::" +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets :" #: ../Doc/library/ctypes.rst:402 msgid "" @@ -682,15 +683,15 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" -"Pour appeler une fonction avec vos propres classes, il faut implémenter une " -"méthode de classe :meth:`from_param`, qui est utilisée dans la séquence :" -"attr:`argtypes`. La méthode de classe :meth:`from_param` récupère l'objet " -"Python passé à la fonction et doit faire une vérification de type ou quelque " -"chose tout ce qui est nécessaire pour s'assurer que l'objet est valide, puis " -"retourne l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce " -"que vous voulez passer comme argument fonction C dans ce cas. Encore une " -"fois, le résultat devrait être un entier, une chaîne, des octets, une " -"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis retourne " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, le " +"résultat devrait être un entier, une chaîne, des octets, une instance :mod:" +"`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" @@ -702,9 +703,9 @@ msgid "" "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" -"Le module suppose par défaut qu'une fonction renvoie un C :c:type:`int`. " -"Définir l'attribut :attr:`restype` de l'objet encapsulant la fonction permet " -"de définir un autre type de retour." +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de retour, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." #: ../Doc/library/ctypes.rst:458 msgid "" @@ -712,8 +713,8 @@ msgid "" "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" "Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " -"prend en paramètres un pointeur vers une chaîne et un caractère, et qui " -"renvoie un pointeur dur une chaîne ::" +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères :" #: ../Doc/library/ctypes.rst:471 msgid "" @@ -722,8 +723,8 @@ msgid "" "single character Python bytes object into a C char::" msgstr "" "Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " -"l'attribut :attr:`argtypes`, et le second argument, un objet octet à un seul " -"caractère sera automatiquement converti en un caractère C ::" +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C :" #: ../Doc/library/ctypes.rst:489 msgid "" @@ -735,11 +736,11 @@ msgid "" "automatically raise an exception::" msgstr "" "Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " -"peut aussi être un appelable (une fonction ou une classe par exemple).Dans " -"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction, et le " -"résultat de cet appel, sera le resultat final de l'appel à la fonction. " -"C'est pratique pour vérifier les codes d'erreurs des valeurs de retour et " -"lever automatiquement des exceptions ::" +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions :" #: ../Doc/library/ctypes.rst:512 msgid "" @@ -760,7 +761,7 @@ msgid "" "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" "Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " -"efficacement les erreurs ; référez-vous au manuel de référence pour des " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " "précisions." #: ../Doc/library/ctypes.rst:524 @@ -775,7 +776,9 @@ msgid "" "reference*." msgstr "" "Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " -"un certain type de donnée en paramètre. Ce" +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." #: ../Doc/library/ctypes.rst:530 msgid "" @@ -786,10 +789,10 @@ msgid "" "you don't need the pointer object in Python itself::" msgstr "" ":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " -"paramètres par référence. La fonction :func:`pointer` permet la même chose, " -"mais en faisant plus de travail car :func:`pointer` construit un véritable " -"objet pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre " -"code Python, utiliser :func:`byref` est plus performant ::" +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant :" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" @@ -822,9 +825,9 @@ msgid "" "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" -"Voici un exemple simple : une structure POINT, qui contient deux entiers *x* " -"et *y* et qui montre également comment instancier une structure dans le " -"constructeur ::" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur :" #: ../Doc/library/ctypes.rst:582 msgid "" @@ -840,16 +843,16 @@ msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" -"Voici une structure RECT qui contient deux POINTs *upperleft* and " -"*lowerright* ::" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* :" #: ../Doc/library/ctypes.rst:599 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" -"Une structure encapsulée peut être instanciée dans le constructeur de " -"plusieurs façons ::" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons :" #: ../Doc/library/ctypes.rst:604 msgid "" @@ -858,7 +861,7 @@ msgid "" msgstr "" "Il est possible de récupérer les :term:`descripteurs ` des " "champs depuis la *classe*, c'est utile pour déboguer car ils contiennent des " -"informations utiles ::" +"informations utiles :" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -869,7 +872,7 @@ msgid "" msgstr "" ":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " "structures avec des champ de bits. Bien que cela puisse fonctionner sur des " -"architectures 32 bits avec un heu d'instructions x86, ce n'est pas garantit " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garantit " "par la bibliothèque en général. Les unions et les structures avec des champs " "de bits doivent toujours être passées par pointeur." @@ -885,8 +888,11 @@ msgid "" "to a positive integer and specifies the maximum alignment for the fields. " "This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" -"Par défaut les champs Structure et Unions sont alignés de la même manière " -"que le ferait un compilateur C." +"Par défaut les champs des *Structure* et des *Union* sont alignés de la même " +"manière que le ferait un compilateur C. Ce comportement peut être redéfini " +"en définissant l'attribut :attr:`_pack_` dans la définition de la sous-" +"classe. Ce champ doit être un entier positif et vaut l'alignement maximal " +"des champs. C'est ce que fait ``#pragma pack(n)`` pour le MSVC." #: ../Doc/library/ctypes.rst:632 msgid "" @@ -896,11 +902,11 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" -":mod:`ctypes` suit le boutisme natif pour les Structures et les Unions. Pour " -"construire des structures avec un boutisme différent, utilisez les classes " -"de base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:" -"`BigEndianUnion` ou :class:`LittleEndianUnion`. Ces classes ne peuvent pas " -"avoir de champ pointeur." +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." #: ../Doc/library/ctypes.rst:642 msgid "Bit fields in structures and unions" @@ -914,7 +920,7 @@ msgid "" msgstr "" "Il est possible de créer des structures et des unions contenant des champs " "de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " -"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` :" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" @@ -934,7 +940,7 @@ msgid "" "a positive integer::" msgstr "" "La meilleure façon de créer des tableaux consiste à multiplier le type de " -"donnée par un entier positif ::" +"donnée par un entier positif :" #: ../Doc/library/ctypes.rst:671 msgid "" @@ -942,11 +948,11 @@ msgid "" "containing 4 POINTs among other stuff::" msgstr "" "Voici un exemple — un peu artificiel — d'une structure contenant, entre " -"autres, 4 POINTs ::" +"autres, 4 POINTs :" #: ../Doc/library/ctypes.rst:687 msgid "Instances are created in the usual way, by calling the class::" -msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" +msgstr "Comme d'habitude, on crée les instances en appelant la classe :" #: ../Doc/library/ctypes.rst:693 msgid "" @@ -958,7 +964,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:696 msgid "Initializers of the correct type can also be specified::" -msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées :" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" @@ -969,24 +975,24 @@ msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" -"On crée une instance de pointeur en appelant la fonction :`pointer`sur un " -"type :mod:`ctypes` ::" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` :" #: ../Doc/library/ctypes.rst:722 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" -"Les instances de pointer ont un attribut :attr:`~_Pointer.contents`qui " -"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" +"Les instances de pointer ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) :" #: ../Doc/library/ctypes.rst:729 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" -"Attention mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " -"crée un nouvel objet à chaque fois qu l'on accède à un attribut ::" +"Attention :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu l'on accède à un attribut :" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -996,15 +1002,15 @@ msgid "" msgstr "" "Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " "pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " -"instance ::" +"instance :" #: ../Doc/library/ctypes.rst:750 msgid "Pointer instances can also be indexed with integers::" -msgstr "Il est possible d'indicer les pointeurs par des entiers ::" +msgstr "Il est possible d'indexer les pointeurs par des entiers :" #: ../Doc/library/ctypes.rst:756 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "Affecter à travers un indice change la valeur pointée ::" +msgstr "Affecter à travers un indice change la valeur pointée :" #: ../Doc/library/ctypes.rst:765 msgid "" @@ -1100,10 +1106,11 @@ msgid "" "``values`` field, but not instances of other types::" msgstr "" "Parfois il faut gérer des incompatibilités entre les types. En C, il est " -"possible de convertir un type en un autre. mod:`ctypes` fournit la fonction :" -"func:`cast` qui permet la même chose. La structure ``Bar``ci-dessus accepte " -"des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:`c_int` comme " -"valeur pour le champ ``values``, mais pas des instances d'autres types ::" +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" #: ../Doc/library/ctypes.rst:861 msgid "For these cases, the :func:`cast` function is handy." @@ -1117,10 +1124,10 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" -"La fonction :func:`cast` permet de caster une intance de *ctypes* en un " -"pointeur vers un type de données *ctypes* différent. :func:`cast`prend deux " -"paramètres, un objet *ctypes* qui est ou qui peut être converti en un " -"certain pointeur, et un type pointeur de *ctypes*. Elle renvoie une instance " +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " "du second argument, qui pointe sur le même bloc mémoire que le premier " "argument :" @@ -1128,7 +1135,9 @@ msgstr "" msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" -msgstr "Aisin, " +msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" #: ../Doc/library/ctypes.rst:887 msgid "Incomplete Types" @@ -1140,12 +1149,16 @@ msgid "" "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" +"Les *types incomplets* sont des structures, des unions ou des tableaux dont " +"les membres ne sont pas encore définis. C'est l'équivalent des déclarations " +"avancées en C, qui sont définies plus tard :" #: ../Doc/library/ctypes.rst:900 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça :" #: ../Doc/library/ctypes.rst:913 msgid "" @@ -1153,12 +1166,19 @@ msgid "" "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" +"Cela ne fonctionne pas parce que nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe :" #: ../Doc/library/ctypes.rst:925 msgid "" "Lets try it. We create two instances of ``cell``, and let them point to each " "other, and finally follow the pointer chain a few times::" msgstr "" +"Essayons. Nous créons deux instances de ``cell``, les faisons pointer l'une " +"sur l'autre et enfin nous suivons quelques maillons de la chaîne de " +"pointeurs :" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" @@ -1169,6 +1189,8 @@ msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." #: ../Doc/library/ctypes.rst:951 msgid "" @@ -1176,6 +1198,9 @@ msgid "" "the calling convention, the return type, and the number and types of " "arguments this function will receive." msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." #: ../Doc/library/ctypes.rst:955 msgid "" @@ -1184,6 +1209,10 @@ msgid "" "factory function creates types for callback functions using the ``stdcall`` " "calling convention." msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." #: ../Doc/library/ctypes.rst:960 msgid "" @@ -1191,6 +1220,8 @@ msgid "" "argument, and the callback functions expected argument types as the " "remaining arguments." msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." #: ../Doc/library/ctypes.rst:964 msgid "" @@ -1198,6 +1229,10 @@ msgid "" "`qsort` function, that is used to sort items with the help of a callback " "function. :c:func:`qsort` will be used to sort an array of integers::" msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers :" #: ../Doc/library/ctypes.rst:974 msgid "" @@ -1208,36 +1243,50 @@ msgid "" "is smaller than the second, a zero if they are equal, and a positive integer " "otherwise." msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c-à-d la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." #: ../Doc/library/ctypes.rst:980 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel :" #: ../Doc/library/ctypes.rst:986 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe :" #: ../Doc/library/ctypes.rst:996 msgid "The result::" -msgstr "" +msgstr "Résultat :" #: ../Doc/library/ctypes.rst:1006 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile :" #: ../Doc/library/ctypes.rst:1021 msgid "As we can easily check, our array is sorted now::" -msgstr "" +msgstr "Et comme on peut facilement voir, notre tableau est désormais classé :" #: ../Doc/library/ctypes.rst:1028 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" +"Ces fonctions peuvent aussi être utilisée comme des décorateurs donc il est " +"possible d'écrire :" #: ../Doc/library/ctypes.rst:1046 msgid "" @@ -1245,6 +1294,10 @@ msgid "" "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " "garbage collected, crashing your program when a callback is made." msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul, et si vous ne le faites pas, le ramasse-miette pourra les, ce qui " +"fera planter votre programme à l'appel de celles-ci." #: ../Doc/library/ctypes.rst:1050 msgid "" @@ -1255,10 +1308,17 @@ msgid "" "with :class:`threading.local` will *not* survive across different callbacks, " "even when those calls are made from the same C thread." msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est suffisant pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne vont " +"*pas* persister d'un appel à l'autre, même si les appels proviennent du même " +"fil d'exécution C." #: ../Doc/library/ctypes.rst:1060 msgid "Accessing values exported from dlls" -msgstr "Accès aux variables exportées depuis les dlls" +msgstr "Accès aux variables exportées depuis une DLL" #: ../Doc/library/ctypes.rst:1062 msgid "" @@ -1267,6 +1327,10 @@ msgid "" "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" +"Certaines bibliothèques ne se contentent pas d'exposer des fonctions, elles " +"exposent aussi des variables. Par exemple, la bibliothèque Python expose :c:" +"data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." #: ../Doc/library/ctypes.rst:1067 msgid "" @@ -1274,6 +1338,9 @@ msgid "" "methods of the type. *pythonapi* is a predefined symbol giving access to " "the Python C api::" msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" #: ../Doc/library/ctypes.rst:1076 msgid "" @@ -1281,16 +1348,20 @@ msgid "" "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" +"Si l'interpréteur avait été lancé avec :option:`-O`, l'exemple aurait " +"affiché ``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." #: ../Doc/library/ctypes.rst:1080 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." #: ../Doc/library/ctypes.rst:1083 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" #: ../Doc/library/ctypes.rst:1085 msgid "" @@ -1362,6 +1433,11 @@ msgid "" "the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " "have the expected effect." msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." #: ../Doc/library/ctypes.rst:1174 msgid "" @@ -1369,18 +1445,24 @@ msgid "" "doesn't *copy* the sub-object, instead it retrieves a wrapper object " "accessing the root-object's underlying buffer." msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet d'interfaçage " +"qui accède au tampon sous-jacent de l'objet initial." #: ../Doc/library/ctypes.rst:1178 msgid "" "Another example that may behave differently from what one would expect is " "this::" msgstr "" +"Un autre exemple de comportement *a priori* inattendu est le suivant ::" #: ../Doc/library/ctypes.rst:1190 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" +"Une instance de :class:`c_char_p` ne peut qu'avoir sa valeur initialisée " +"avec un octet ou un entier." #: ../Doc/library/ctypes.rst:1193 msgid "" @@ -1390,6 +1472,11 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" +"Pourquoi cela affiche-t'il ``False``? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donne " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" #: ../Doc/library/ctypes.rst:1203 msgid "Variable-sized data types" From eadc3fd8ad451ed6cb7aaabb1c27712dbd6cb371 Mon Sep 17 00:00:00 2001 From: antoine Date: Sat, 28 Dec 2019 21:56:01 +0100 Subject: [PATCH 06/19] OK --- dict | 1 + library/ctypes.po | 216 +++++++++++++++++++++++++++------------------- 2 files changed, 127 insertions(+), 90 deletions(-) diff --git a/dict b/dict index 121eefedd..3a5a8c314 100644 --- a/dict +++ b/dict @@ -107,6 +107,7 @@ PyChecker Pydb Pylint PythonWin +re recompilation Reedy réentrants diff --git a/library/ctypes.po b/library/ctypes.po index f1b7773e5..b41b7fd72 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-12-26 19:44+0100\n" +"PO-Revision-Date: 2019-12-28 21:52+0100\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -85,7 +85,7 @@ msgstr "" "*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " "convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " "chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " -"utilise elle-aussi la convention ``stdcall``, et suppose que les fonctions " +"utilise elle-aussi la convention ``stdcall`` et suppose que les fonctions " "renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " "est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " "la fonction échoue." @@ -133,11 +133,11 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" -"En Linux, pour charger une bibliothèque, il faut passer le nom du fichier " +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " "*avec* son extension. Il est donc impossible de charger une bibliothèque en " "accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " -"chargeurs des DLLs, ou bien charger la bibliothèque en créant une instance " -"de *CDLL* en appelant son constructeur :" +"chargeurs de DLLs, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" @@ -145,7 +145,7 @@ msgstr "Accès aux fonctions des DLLs chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "Les fonctions sont alors les attributs des objets DLL :" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" #: ../Doc/library/ctypes.rst:106 msgid "" @@ -159,11 +159,11 @@ msgid "" msgstr "" "Les DLLs des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " "souvent une version ANSI et une version UNICODE d'une fonction. La version " -"UNICODE est exposée avec un ``W`` à la fin, et la version ANSI avec un " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " "``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " "de module* à partir de son nom, a le prototype C suivant (c'est une macro " "qui décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon " -"si UNICODE est définie ou non) :" +"si UNICODE est définie ou non) ::" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -174,7 +174,7 @@ msgstr "" "*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " "écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " "les appelant ensuite avec des objets octets ou avec des chaînes de " -"caractères respectivement." +"caractères, respectivement." #: ../Doc/library/ctypes.rst:123 msgid "" @@ -182,7 +182,7 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" -"Les DLLs exposent parfois des fonctions dont les noms ne sont pas des " +"Les DLLs exportent parfois des fonctions dont les noms ne sont pas des " "identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " "faut utiliser :func:`getattr` pour accéder à la fonction ::" @@ -192,9 +192,9 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" -"En Windows, certaines DLLs exposent des fonctions à travers un indice plutôt " -"qu'à travers un nom. On accède à ces fonctions en indiçant l'objet DLL avec " -"son index :" +"En Windows, certaines DLLs exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à ces fonctions en indiçant l'objet " +"DLL avec son index ::" #: ../Doc/library/ctypes.rst:148 msgid "Calling functions" @@ -209,8 +209,8 @@ msgid "" msgstr "" "Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " "utilise la fonction ``time()``, qui renvoie le temps en secondes du système " -"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui retourne " -"un gestionnaire de module *win32*." +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." #: ../Doc/library/ctypes.rst:155 msgid "" @@ -218,7 +218,7 @@ msgid "" "be used as the ``NULL`` pointer)::" msgstr "" "Cet exemple appelle les deux fonctions avec un pointeur ``NULL`` (on utilise " -"``None`` pour passer un pointeur ``NULL``) :" +"``None`` pour passer un pointeur ``NULL``) ::" #: ../Doc/library/ctypes.rst:166 msgid "" @@ -238,15 +238,15 @@ msgid "" "``cdecl`` calling convention, or vice versa::" msgstr "" "Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " -"avec la convention d'appel ``cdecl``, et vice-versa ::" +"avec la convention d'appel ``cdecl`` et vice-versa ::" #: ../Doc/library/ctypes.rst:186 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" -"Pour déterminer la convention d'appel, il faut regarder dans l'en-tête C ou " -"dans la documentation de la fonction considérée." +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." #: ../Doc/library/ctypes.rst:189 msgid "" @@ -254,11 +254,11 @@ msgid "" "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" -"En Windows, :mod:`ctypes` tire profit de la gestion des exception structurée " -"(*structured exception handling*) *win32* pour empêcher des plantages dus à " -"des interruptions pour préserver la protection globale (*general protection " -"faults*) du système, lorsque des fonctions sont appelées avec un nombre " -"d'argument incorrect ::" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" #: ../Doc/library/ctypes.rst:199 msgid "" @@ -268,9 +268,9 @@ msgid "" "library calls)." msgstr "" "Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" -"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" "`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " -"erreurs de segmentations produites par des appels erronés à la bibliothèque " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " "C)." #: ../Doc/library/ctypes.rst:204 @@ -307,11 +307,13 @@ msgstr "Types de données fondamentaux" #: ../Doc/library/ctypes.rst:220 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" -msgstr ":mod:`ctypes` defines a number of primitive C compatible data types:" +msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" #: ../Doc/library/ctypes.rst:223 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" #: ../Doc/library/ctypes.rst:223 msgid "C type" @@ -331,7 +333,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/ctypes.rst:225 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" #: ../Doc/library/ctypes.rst:227 msgid ":class:`c_char`" @@ -343,7 +345,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "objet bytes de 1 caractère" +msgstr "objet *bytes* de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -355,7 +357,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "chaîne de caractère de longueur 1" +msgstr "*string* de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -509,7 +511,7 @@ msgstr ":c:type:`wchar_t *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:265 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "*string* ou ``None``" #: ../Doc/library/ctypes.rst:267 msgid ":class:`c_void_p`" @@ -595,8 +597,8 @@ msgid "" "from within *IDLE* or *PythonWin*::" msgstr "" "*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " -"exemples suivants ne fonctionneront que dans une invite de commande et non " -"depuis *IDLE* or *PythonWin* :" +"exemples suivants ne fonctionneront donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" #: ../Doc/library/ctypes.rst:372 msgid "" @@ -624,7 +626,7 @@ msgstr "" "mod:`ctypes` pour permettre de passer en argument des instances de vos " "propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " "et le prend comme argument à la fonction. Bien entendu, cet attribut doit " -"être un entier, une chaîne de caractères ou des octets :" +"être un entier, une chaîne de caractères ou des octets ::" #: ../Doc/library/ctypes.rst:402 msgid "" @@ -714,7 +716,7 @@ msgid "" msgstr "" "Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " "prend en paramètres un pointeur vers une chaîne et un caractère. Elle " -"renvoie un pointeur sur une chaîne de caractères :" +"renvoie un pointeur sur une chaîne de caractères ::" #: ../Doc/library/ctypes.rst:471 msgid "" @@ -724,7 +726,7 @@ msgid "" msgstr "" "Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " "l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " -"caractère, sera automatiquement converti en un caractère C :" +"caractère, sera automatiquement converti en un caractère C ::" #: ../Doc/library/ctypes.rst:489 msgid "" @@ -740,7 +742,7 @@ msgstr "" "ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " "résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " "pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " -"automatiquement des exceptions :" +"automatiquement des exceptions ::" #: ../Doc/library/ctypes.rst:512 msgid "" @@ -749,7 +751,7 @@ msgid "" "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" -"``WinError`` appelle l'API Windows``FormatMessage()`` pour obtenir une " +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " "représentation de la chaîne de caractères qui correspond au code d'erreur, " "et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " "code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" @@ -792,7 +794,7 @@ msgstr "" "paramètres par référence. La fonction :func:`pointer` a la même utilité, " "mais fait plus de travail car :func:`pointer` construit un véritable objet " "pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " -"Python, utiliser :func:`byref` est plus performant :" +"Python, utiliser :func:`byref` est plus performant ::" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" @@ -827,7 +829,7 @@ msgid "" msgstr "" "Voici un exemple simple : une structure POINT qui contient deux entiers *x* " "et *y* et qui montre également comment instancier une structure avec le " -"constructeur :" +"constructeur ::" #: ../Doc/library/ctypes.rst:582 msgid "" @@ -844,7 +846,7 @@ msgid "" "*lowerright*::" msgstr "" "Voici une structure RECT qui contient deux POINTs *upperleft* et " -"*lowerright* :" +"*lowerright* ::" #: ../Doc/library/ctypes.rst:599 msgid "" @@ -852,7 +854,7 @@ msgid "" "ways::" msgstr "" "Une structure encapsulée peut être instanciée par un constructeur de " -"plusieurs façons :" +"plusieurs façons ::" #: ../Doc/library/ctypes.rst:604 msgid "" @@ -861,7 +863,7 @@ msgid "" msgstr "" "Il est possible de récupérer les :term:`descripteurs ` des " "champs depuis la *classe*, c'est utile pour déboguer car ils contiennent des " -"informations utiles :" +"informations utiles ::" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -888,11 +890,11 @@ msgid "" "to a positive integer and specifies the maximum alignment for the fields. " "This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" -"Par défaut les champs des *Structure* et des *Union* sont alignés de la même " -"manière que le ferait un compilateur C. Ce comportement peut être redéfini " -"en définissant l'attribut :attr:`_pack_` dans la définition de la sous-" -"classe. Ce champ doit être un entier positif et vaut l'alignement maximal " -"des champs. C'est ce que fait ``#pragma pack(n)`` pour le MSVC." +"Par défaut les champs d'une *Structure* ou d'une *Union* sont alignés de la " +"même manière que le ferait un compilateur C. Ce comportement peut être " +"redéfini en définissant l'attribut :attr:`_pack_` dans la définition de la " +"sous-classe. Ce champ doit être un entier positif et vaut l'alignement " +"maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour le MSVC." #: ../Doc/library/ctypes.rst:632 msgid "" @@ -920,7 +922,7 @@ msgid "" msgstr "" "Il est possible de créer des structures et des unions contenant des champs " "de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " -"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` :" +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" @@ -940,7 +942,7 @@ msgid "" "a positive integer::" msgstr "" "La meilleure façon de créer des tableaux consiste à multiplier le type de " -"donnée par un entier positif :" +"donnée par un entier positif ::" #: ../Doc/library/ctypes.rst:671 msgid "" @@ -948,11 +950,11 @@ msgid "" "containing 4 POINTs among other stuff::" msgstr "" "Voici un exemple — un peu artificiel — d'une structure contenant, entre " -"autres, 4 POINTs :" +"autres, 4 POINTs ::" #: ../Doc/library/ctypes.rst:687 msgid "Instances are created in the usual way, by calling the class::" -msgstr "Comme d'habitude, on crée les instances en appelant la classe :" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" #: ../Doc/library/ctypes.rst:693 msgid "" @@ -964,7 +966,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:696 msgid "Initializers of the correct type can also be specified::" -msgstr "Des valeurs d'initialisation du bon type peuvent être passées :" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" @@ -976,7 +978,7 @@ msgid "" "mod:`ctypes` type::" msgstr "" "On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " -"un type :mod:`ctypes` :" +"un type :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:722 msgid "" @@ -984,7 +986,7 @@ msgid "" "the object to which the pointer points, the ``i`` object above::" msgstr "" "Les instances de pointer ont un attribut :attr:`~_Pointer.contents` qui " -"renvoie l'objet pointé (l'objet ``i`` ci-dessus) :" +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" #: ../Doc/library/ctypes.rst:729 msgid "" @@ -992,7 +994,7 @@ msgid "" "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" "Attention :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " -"crée un nouvel objet à chaque fois qu l'on accède à un attribut :" +"crée un nouvel objet à chaque fois qu l'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -1002,15 +1004,15 @@ msgid "" msgstr "" "Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " "pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " -"instance :" +"instance ::" #: ../Doc/library/ctypes.rst:750 msgid "Pointer instances can also be indexed with integers::" -msgstr "Il est possible d'indexer les pointeurs par des entiers :" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" #: ../Doc/library/ctypes.rst:756 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "Affecter à travers un indice change la valeur pointée :" +msgstr "Affecter à travers un indice change la valeur pointée ::" #: ../Doc/library/ctypes.rst:765 msgid "" @@ -1087,7 +1089,7 @@ msgid "" msgstr "" "De plus, si un paramètre de fonction est déclaré explicitement de type " "pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " -"possible de passer un objet du type pointé (ici, ``c_int``) à la fonction. " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " "*ctypes* appelle alors automatiquement la fonction de conversion :func:" "`byref`." @@ -1129,7 +1131,7 @@ msgstr "" "paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " "certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " "du second argument, qui pointe sur le même bloc mémoire que le premier " -"argument :" +"argument ::" #: ../Doc/library/ctypes.rst:874 msgid "" @@ -1151,14 +1153,14 @@ msgid "" msgstr "" "Les *types incomplets* sont des structures, des unions ou des tableaux dont " "les membres ne sont pas encore définis. C'est l'équivalent des déclarations " -"avancées en C, qui sont définies plus tard :" +"avancées en C, qui sont définies plus tard ::" #: ../Doc/library/ctypes.rst:900 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" -"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça :" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" #: ../Doc/library/ctypes.rst:913 msgid "" @@ -1169,7 +1171,7 @@ msgstr "" "Cela ne fonctionne pas parce que nouvelle ``class cell`` n'est pas " "accessible dans la définition de la classe elle-même. Dans le module :mod:" "`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " -"plus tard, après avoir défini la classe :" +"plus tard, après avoir défini la classe ::" #: ../Doc/library/ctypes.rst:925 msgid "" @@ -1178,7 +1180,7 @@ msgid "" msgstr "" "Essayons. Nous créons deux instances de ``cell``, les faisons pointer l'une " "sur l'autre et enfin nous suivons quelques maillons de la chaîne de " -"pointeurs :" +"pointeurs ::" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" @@ -1211,7 +1213,7 @@ msgid "" msgstr "" "La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " "suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" -"`WINFUNCTYPE` qui crée un type les fonctions de rappel qui suivent la " +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " "convention d'appel ``stdcall``." #: ../Doc/library/ctypes.rst:960 @@ -1232,7 +1234,7 @@ msgstr "" "Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " "fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " "l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " -"ordonner un tableau d'entiers :" +"ordonner un tableau d'entiers ::" #: ../Doc/library/ctypes.rst:974 msgid "" @@ -1256,7 +1258,7 @@ msgid "" "integer. First we create the ``type`` for the callback function::" msgstr "" "Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " -"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel :" +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" #: ../Doc/library/ctypes.rst:986 msgid "" @@ -1264,21 +1266,22 @@ msgid "" "passed::" msgstr "" "Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " -"qu'on lui passe :" +"qu'on lui passe ::" #: ../Doc/library/ctypes.rst:996 msgid "The result::" -msgstr "Résultat :" +msgstr "Résultat ::" #: ../Doc/library/ctypes.rst:1006 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" "À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " -"utile :" +"utile ::" #: ../Doc/library/ctypes.rst:1021 msgid "As we can easily check, our array is sorted now::" -msgstr "Et comme on peut facilement voir, notre tableau est désormais classé :" +msgstr "" +"Et comme on peut facilement voir, notre tableau est désormais classé ::" #: ../Doc/library/ctypes.rst:1028 msgid "" @@ -1286,7 +1289,7 @@ msgid "" "write::" msgstr "" "Ces fonctions peuvent aussi être utilisée comme des décorateurs donc il est " -"possible d'écrire :" +"possible d'écrire ::" #: ../Doc/library/ctypes.rst:1046 msgid "" @@ -1296,8 +1299,8 @@ msgid "" msgstr "" "Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " "tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " -"tout seul, et si vous ne le faites pas, le ramasse-miette pourra les, ce qui " -"fera planter votre programme à l'appel de celles-ci." +"tout seul, et ce n'est pas fait, le ramasse-miette pourra les libérer, ce " +"qui fera planter votre programme quand un appel sera fait." #: ../Doc/library/ctypes.rst:1050 msgid "" @@ -1312,9 +1315,9 @@ msgstr "" "créé hors de Python (p. ex. par du code externe qui appelle la fonction de " "rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " "comportement est suffisant pour la plupart des cas d'utilisation, mais cela " -"implique que les valeurs stockées avec :class:`threading.local` ne vont " -"*pas* persister d'un appel à l'autre, même si les appels proviennent du même " -"fil d'exécution C." +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." #: ../Doc/library/ctypes.rst:1060 msgid "Accessing values exported from dlls" @@ -1327,8 +1330,8 @@ msgid "" "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" -"Certaines bibliothèques ne se contentent pas d'exposer des fonctions, elles " -"exposent aussi des variables. Par exemple, la bibliothèque Python expose :c:" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python expose :c:" "data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" "option:`-O` ou :option:`-OO` soit donnée au démarrage." @@ -1371,18 +1374,28 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" +"Ce pointeur est initialisé à pointer sur un tableau d'entrées de :c:type:" +"`struct _frozen`, terminé par un dont tous les membres valent ``NULL`` ou " +"zéro. Quand un module gelé est importé, il est cherché dans ce tableau. Du " +"code tiers peut jouer avec pour construire dynamiquement une collection de " +"module gelés." #: ../Doc/library/ctypes.rst:1090 msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" +"Donc manipuler ce pointeur pourrait même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:1102 msgid "" "We have defined the :c:type:`struct _frozen` data type, so we can get the " "pointer to the table::" msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" #: ../Doc/library/ctypes.rst:1109 msgid "" @@ -1392,6 +1405,11 @@ msgid "" "crash with an access violation or whatever, so it's better to break out of " "the loop when we hit the ``NULL`` entry::" msgstr "" +"Puisque ``table`` est un ``pointer`` vers un tableau d'entrées de " +"``struct_frozen``, il est possible d'itérer dessus, mais il faut être " +"certain que la boucle se termine car les pointeurs n'ont pas de taille. Tôt " +"ou tard, il planterait probablement avec une erreur de segmentation ou " +"autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" #: ../Doc/library/ctypes.rst:1127 msgid "" @@ -1399,6 +1417,9 @@ msgid "" "(indicated by the negative size member) is not well known, it is only used " "for testing. Try it out with ``import __hello__`` for example." msgstr "" +"Le fait que le standard Python possède un module et un paquet gelés (indiqué " +"par la valeur négative du membre *size*) est peu connu, cela ne sert qu'aux " +"tests. Essayez avec ``import __hello__`` par exemple." #: ../Doc/library/ctypes.rst:1135 msgid "Surprises" @@ -1472,11 +1493,11 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" -"Pourquoi cela affiche-t'il ``False``? Les instances *ctypes* sont des " -"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donne " -"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " -"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " -"``contents`` crée un nouvel objet Python à chaque fois !" +"Pourquoi cela affiche-t'il ``False``? Les instances *ctypes* sont des objets " +"qui contiennent un bloc mémoire et des :term:`descriptor` qui donne accès au " +"contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne stocke " +"pas l'objet même ; seuls ses ``contents`` le sont. Accéder au ``contents`` " +"crée un nouvel objet Python à chaque fois !" #: ../Doc/library/ctypes.rst:1203 msgid "Variable-sized data types" @@ -1486,6 +1507,8 @@ msgstr "Types de données à taille flottante" msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." #: ../Doc/library/ctypes.rst:1207 msgid "" @@ -1495,6 +1518,12 @@ msgid "" "cannot be made smaller than the natural memory block specified by the " "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celui occupé par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" #: ../Doc/library/ctypes.rst:1227 msgid "" @@ -1502,6 +1531,9 @@ msgid "" "contained in this array? Since the type still only knows about 4 elements, " "we get errors accessing other elements::" msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" #: ../Doc/library/ctypes.rst:1239 msgid "" @@ -1509,6 +1541,10 @@ msgid "" "the dynamic nature of Python, and (re-)define the data type after the " "required size is already known, on a case by case basis." msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." #: ../Doc/library/ctypes.rst:1247 msgid "ctypes reference" @@ -1841,7 +1877,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1532 msgid "Foreign functions" -msgstr "" +msgstr "Fonctions externes" #: ../Doc/library/ctypes.rst:1534 msgid "" @@ -1950,7 +1986,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1617 msgid "Function prototypes" -msgstr "" +msgstr "Prototypes de fonction" #: ../Doc/library/ctypes.rst:1619 msgid "" @@ -2134,7 +2170,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1798 msgid "Utility functions" -msgstr "" +msgstr "Fonctions pratiques" #: ../Doc/library/ctypes.rst:1802 msgid "" @@ -2721,7 +2757,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2342 msgid "Structured data types" -msgstr "" +msgstr "Types de donnée dérivés de Structure" #: ../Doc/library/ctypes.rst:2347 msgid "Abstract base class for unions in native byte order." From 5227f3e1b04d4db4efc0d244d5b16557aaae1986 Mon Sep 17 00:00:00 2001 From: antoine Date: Sat, 28 Dec 2019 23:10:35 +0100 Subject: [PATCH 07/19] padpo --- dict | 1 + library/ctypes.po | 56 +++++++++++++++++++++++------------------------ 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/dict b/dict index 7afd07022..9562f6adb 100644 --- a/dict +++ b/dict @@ -161,6 +161,7 @@ von w3c wxwidgets x11 +x86 zope émoji ı diff --git a/library/ctypes.po b/library/ctypes.po index 0789809d6..eb6018beb 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonction externes" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" #: ../Doc/library/ctypes.rst:11 msgid "" @@ -43,7 +43,7 @@ msgid "" msgstr "" "Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " "pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " -"exemples ont un comportement différent en Linux, Window ou Mac OS X, il " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " "contiennent des directives *doctest* dans les commentaires." #: ../Doc/library/ctypes.rst:25 @@ -85,7 +85,7 @@ msgstr "" "*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " "convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " "chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " -"utilise elle-aussi la convention ``stdcall`` et suppose que les fonctions " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " "renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " "est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " "la fonction échoue." @@ -229,7 +229,7 @@ msgid "" msgstr "" "Si, après avoir appelé une fonction, :mod:`ctypes` détecte qu'un nombre " "incorrect d'arguments a été passé, il peut lever une :exc:`ValueError`. Il " -"ne faut pas se baser sur ce comportement ; celui-ci est obsolète depuis la " +"ne faut pas se baser sur ce comportement ; celui-ci est obsolète depuis la " "version 3.6.2 et sera supprimé en 3.7." #: ../Doc/library/ctypes.rst:171 @@ -288,7 +288,7 @@ msgstr "" "passés en paramètres de ces appels de fonction. ``None`` est passé comme le " "pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " "passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" -"`char *` or :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"`char *` or :c:type:`wchar_t *`). Les entiers Python sont passés comme le " "type C :c:type:`int` par défaut de la plate-forme, des zéros sont rajoutés " "pour qu'ils tiennent dans le type C." @@ -659,8 +659,8 @@ msgid "" msgstr "" ":attr:`argtypes` doit être une séquence de types de données C (la fonction " "``printf`` n'est probablement pas le meilleur pour l'illustrer, car elle " -"accepte un nombre variable d'arguments de types eux-aussi variables, selon " -"la chaîne de formatage ; cela dit, elle se révèle pratique pour tester cette " +"accepte un nombre variable d'arguments de types eux aussi variables, selon " +"la chaîne de formatage ; cela dit, elle se révèle pratique pour tester cette " "fonctionnalité) ::" #: ../Doc/library/ctypes.rst:426 @@ -706,7 +706,7 @@ msgid "" "the function object." msgstr "" "Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" -"`int` C. Pour préciser un autre type de retour, il faut définir l'attribut :" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" "attr:`restype` de l'objet encapsulant la fonction." #: ../Doc/library/ctypes.rst:458 @@ -809,8 +809,8 @@ msgid "" msgstr "" "Les structures et les unions doivent hériter des classes de base :class:" "`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " -"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` " -"doit être un liste de *paires*, contenant un *nom de champ* et un *type de " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " "champ*." #: ../Doc/library/ctypes.rst:559 @@ -862,8 +862,8 @@ msgid "" "useful for debugging because they can provide useful information::" msgstr "" "Il est possible de récupérer les :term:`descripteurs ` des " -"champs depuis la *classe*, c'est utile pour déboguer car ils contiennent des " -"informations utiles ::" +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -873,8 +873,8 @@ msgid "" "structures with bit-fields should always be passed to functions by pointer." msgstr "" ":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " -"structures avec des champ de bits. Bien que cela puisse fonctionner sur des " -"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garantit " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " "par la bibliothèque en général. Les unions et les structures avec des champs " "de bits doivent toujours être passées par pointeur." @@ -994,7 +994,7 @@ msgid "" "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" "Attention :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " -"crée un nouvel objet à chaque fois qu l'on accède à un attribut ::" +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -1037,7 +1037,7 @@ msgid "" msgstr "" "Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " "une instance de pointeur ; elle doit d'abord créer un pointeur de *type*. " -"Cela s'effectue avec la fonction :func:`POINTER` , qui prend en paramètre " +"Cela s'effectue avec la fonction :func:`POINTER`, qui prend en paramètre " "n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" #: ../Doc/library/ctypes.rst:787 @@ -1168,7 +1168,7 @@ msgid "" "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" -"Cela ne fonctionne pas parce que nouvelle ``class cell`` n'est pas " +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " "accessible dans la définition de la classe elle-même. Dans le module :mod:" "`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " "plus tard, après avoir défini la classe ::" @@ -1288,8 +1288,8 @@ msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" -"Ces fonctions peuvent aussi être utilisée comme des décorateurs donc il est " -"possible d'écrire ::" +"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " +"donc possible d'écrire ::" #: ../Doc/library/ctypes.rst:1046 msgid "" @@ -1313,7 +1313,7 @@ msgid "" msgstr "" "Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " "créé hors de Python (p. ex. par du code externe qui appelle la fonction de " -"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " "comportement est suffisant pour la plupart des cas d'utilisation, mais cela " "implique que les valeurs stockées avec :class:`threading.local` ne seront " "*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " @@ -1407,7 +1407,7 @@ msgid "" msgstr "" "Puisque ``table`` est un ``pointer`` vers un tableau d'entrées de " "``struct_frozen``, il est possible d'itérer dessus, mais il faut être " -"certain que la boucle se termine car les pointeurs n'ont pas de taille. Tôt " +"certain que la boucle se termine, car les pointeurs n'ont pas de taille. Tôt " "ou tard, il planterait probablement avec une erreur de segmentation ou " "autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" @@ -1443,7 +1443,7 @@ msgid "" "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" "Diantre. On s'attendait certainement à ce que le dernier résultat affiche " -"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." "b, rc.a`` ci-dessus sont les suivantes ::" #: ../Doc/library/ctypes.rst:1168 @@ -1493,11 +1493,11 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" -"Pourquoi cela affiche-t'il ``False``? Les instances *ctypes* sont des objets " -"qui contiennent un bloc mémoire et des :term:`descriptor` qui donne accès au " -"contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne stocke " -"pas l'objet même ; seuls ses ``contents`` le sont. Accéder au ``contents`` " -"crée un nouvel objet Python à chaque fois !" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donne " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" #: ../Doc/library/ctypes.rst:1203 msgid "Variable-sized data types" @@ -1532,7 +1532,7 @@ msgid "" "we get errors accessing other elements::" msgstr "" "Cela dit, comment accéder aux éléments supplémentaires contenus dans le " -"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " "l'on accède aux suivants ::" #: ../Doc/library/ctypes.rst:1239 From 81162bc779518d298a1af1b601f6808f5599136c Mon Sep 17 00:00:00 2001 From: antoine Date: Sat, 28 Dec 2019 23:17:41 +0100 Subject: [PATCH 08/19] padpo encore --- library/ctypes.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ctypes.po b/library/ctypes.po index eb6018beb..730c50fff 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -25,7 +25,7 @@ msgid "" "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" -":mod:`ctypes` est une bibliothèque d'appel à des fonction externes en " +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " "python. Elle fournit des types de données compatibles avec le langage C et " "permet d'appeler des fonctions depuis des DLLs ou des bibliothèques " "partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " From 9d763490fcd13ba0ab2348d03b28fe85c5e19175 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Sun, 29 Dec 2019 18:16:51 +0100 Subject: [PATCH 09/19] Apply suggestions from ChristopheNan Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/ctypes.po | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 730c50fff..51dd1e2b2 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -27,7 +27,7 @@ msgid "" msgstr "" ":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " "python. Elle fournit des types de données compatibles avec le langage C et " -"permet d'appeler des fonctions depuis des DLLs ou des bibliothèques " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " "partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " "pur code Python." @@ -119,7 +119,7 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" -"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` va utiliser une " +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une " "version obsolète de la bibliothèque qui peut avoir des problèmes de " "compatibilité avec celle que Python utilise. Si possible, mieux vaut " "utiliser la fonctionnalité native de Python, ou bien importer et utiliser le " @@ -136,12 +136,12 @@ msgstr "" "Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " "*avec* son extension. Il est donc impossible de charger une bibliothèque en " "accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " -"chargeurs de DLLs, ou bien charger la bibliothèque en créant une instance de " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " "*CDLL* en appelant son constructeur ::" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "Accès aux fonctions des DLLs chargées" +msgstr "Accès aux fonctions des DLL chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" @@ -163,7 +163,7 @@ msgstr "" "``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " "de module* à partir de son nom, a le prototype C suivant (c'est une macro " "qui décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon " -"si UNICODE est définie ou non) ::" +"qu'UNICODE est définie ou non) ::" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -182,7 +182,7 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" -"Les DLLs exportent parfois des fonctions dont les noms ne sont pas des " +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " "identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " "faut utiliser :func:`getattr` pour accéder à la fonction ::" @@ -192,8 +192,8 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" -"En Windows, certaines DLLs exportent des fonctions à travers un indice " -"plutôt qu'à travers un nom. On accède à ces fonctions en indiçant l'objet " +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet " "DLL avec son index ::" #: ../Doc/library/ctypes.rst:148 @@ -285,10 +285,10 @@ msgid "" msgstr "" "``None``, les entiers, les objets octets et les chaînes de caractères " "(Unicode) sont les seuls types natifs de Python qui peuvent être directement " -"passés en paramètres de ces appels de fonction. ``None`` est passé comme le " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " "pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " "passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" -"`char *` or :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " "type C :c:type:`int` par défaut de la plate-forme, des zéros sont rajoutés " "pour qu'ils tiennent dans le type C." @@ -345,7 +345,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "objet *bytes* de 1 caractère" +msgstr "objet octet (*bytes*) de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -357,7 +357,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "*string* de longueur 1" +msgstr "chaîne de caracères (*string*) de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -597,7 +597,7 @@ msgid "" "from within *IDLE* or *PythonWin*::" msgstr "" "*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " -"exemples suivants ne fonctionneront donc que dans une invite de commande et " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " "non depuis *IDLE* or *PythonWin* ::" #: ../Doc/library/ctypes.rst:372 @@ -613,7 +613,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:385 msgid "Calling functions with your own custom data types" -msgstr "Appel de fonctions avec votre propre type de données" +msgstr "Appel de fonctions avec des types de données personnalisés" #: ../Doc/library/ctypes.rst:387 msgid "" @@ -658,7 +658,7 @@ msgid "" "hand this is quite handy to experiment with this feature)::" msgstr "" ":attr:`argtypes` doit être une séquence de types de données C (la fonction " -"``printf`` n'est probablement pas le meilleur pour l'illustrer, car elle " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car elle " "accepte un nombre variable d'arguments de types eux aussi variables, selon " "la chaîne de formatage ; cela dit, elle se révèle pratique pour tester cette " "fonctionnalité) ::" @@ -689,10 +689,10 @@ msgstr "" "attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" "`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " "Python passé à la fonction et doit faire une vérification de type ou tout ce " -"qui est nécessaire pour s'assurer que l'objet est valide, puis retourne " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " "l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " -"voulez passer comme argument fonction C dans ce cas. Encore une fois, le " -"résultat devrait être un entier, une chaîne, des octets, une instance :mod:" +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une instance :mod:" "`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 From 7d336e5dcfdaba7bb90801026b374529311546be Mon Sep 17 00:00:00 2001 From: antoine Date: Sun, 29 Dec 2019 18:30:14 +0100 Subject: [PATCH 10/19] Suggestions de ChristopheNan + indentation --- library/ctypes.po | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 51dd1e2b2..e6cf14d28 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -61,15 +61,15 @@ msgstr "" #: ../Doc/library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "Chargement des bibliothèques à lien dynamique" +msgstr "Chargement des DLL" #: ../Doc/library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" -":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à lien " -"dynamique (et les objets *windll* et *oledll* en Windows)." +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -119,11 +119,11 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" -"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une " -"version obsolète de la bibliothèque qui peut avoir des problèmes de " -"compatibilité avec celle que Python utilise. Si possible, mieux vaut " -"utiliser la fonctionnalité native de Python, ou bien importer et utiliser le " -"module ``msvcrt``." +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." #: ../Doc/library/ctypes.rst:71 msgid "" @@ -193,8 +193,8 @@ msgid "" "number::" msgstr "" "Sous Windows, certaines DLL exportent des fonctions à travers un indice " -"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet " -"DLL avec son index ::" +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" #: ../Doc/library/ctypes.rst:148 msgid "Calling functions" @@ -658,10 +658,10 @@ msgid "" "hand this is quite handy to experiment with this feature)::" msgstr "" ":attr:`argtypes` doit être une séquence de types de données C (la fonction " -"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car elle " -"accepte un nombre variable d'arguments de types eux aussi variables, selon " -"la chaîne de formatage ; cela dit, elle se révèle pratique pour tester cette " -"fonctionnalité) ::" +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" #: ../Doc/library/ctypes.rst:426 msgid "" @@ -692,8 +692,8 @@ msgstr "" "qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " "l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " "voulez passer comme argument fonction C dans ce cas. Encore une fois, il " -"convient que le résultat soit un entier, une chaîne, des octets, une instance :mod:" -"`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" From 8e397718c6e3a3aabfc4166e1a593391c351b074 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Sun, 29 Dec 2019 18:30:55 +0100 Subject: [PATCH 11/19] Apply suggestions from ChristopheNan Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/ctypes.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ctypes.po b/library/ctypes.po index e6cf14d28..c433c5309 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -289,7 +289,7 @@ msgstr "" "pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " "passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" "`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " -"type C :c:type:`int` par défaut de la plate-forme, des zéros sont rajoutés " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " "pour qu'ils tiennent dans le type C." #: ../Doc/library/ctypes.rst:211 From 033536073a38bde4ba6594c25fa7763ebc9631d4 Mon Sep 17 00:00:00 2001 From: antoine Date: Sun, 29 Dec 2019 18:53:22 +0100 Subject: [PATCH 12/19] =?UTF-8?q?Homog=C3=A9nisation=20des=20entr=C3=A9es?= =?UTF-8?q?=20du=20tableaux=20des=20types.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/ctypes.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index c433c5309..01572e0d3 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -357,7 +357,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "chaîne de caracères (*string*) de longueur 1" +msgstr "chaîne de caractères (*string*) de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -499,7 +499,7 @@ msgstr ":c:type:`char *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:263 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" #: ../Doc/library/ctypes.rst:265 msgid ":class:`c_wchar_p`" @@ -511,7 +511,7 @@ msgstr ":c:type:`wchar_t *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:265 msgid "string or ``None``" -msgstr "*string* ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" #: ../Doc/library/ctypes.rst:267 msgid ":class:`c_void_p`" @@ -523,7 +523,7 @@ msgstr ":c:type:`void *`" #: ../Doc/library/ctypes.rst:267 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" #: ../Doc/library/ctypes.rst:271 msgid "The constructor accepts any object with a truth value." From 5f802d2f054e9b590a4698ef2e459c3cb01bcbea Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Mon, 30 Dec 2019 13:42:56 +0100 Subject: [PATCH 13/19] Apply suggestions from ChristopheNan Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/ctypes.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 01572e0d3..94db9b1ff 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -1281,7 +1281,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1021 msgid "As we can easily check, our array is sorted now::" msgstr "" -"Et comme on peut facilement voir, notre tableau est désormais classé ::" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" #: ../Doc/library/ctypes.rst:1028 msgid "" @@ -1299,7 +1299,7 @@ msgid "" msgstr "" "Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " "tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " -"tout seul, et ce n'est pas fait, le ramasse-miette pourra les libérer, ce " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les libérer, ce " "qui fera planter votre programme quand un appel sera fait." #: ../Doc/library/ctypes.rst:1050 @@ -1314,7 +1314,7 @@ msgstr "" "Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " "créé hors de Python (p. ex. par du code externe qui appelle la fonction de " "rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " -"comportement est suffisant pour la plupart des cas d'utilisation, mais cela " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " "implique que les valeurs stockées avec :class:`threading.local` ne seront " "*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " "même fil d'exécution C." @@ -1374,7 +1374,7 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" -"Ce pointeur est initialisé à pointer sur un tableau d'entrées de :c:type:" +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :c:type:" "`struct _frozen`, terminé par un dont tous les membres valent ``NULL`` ou " "zéro. Quand un module gelé est importé, il est cherché dans ce tableau. Du " "code tiers peut jouer avec pour construire dynamiquement une collection de " @@ -1385,7 +1385,7 @@ msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" -"Donc manipuler ce pointeur pourrait même se révéler utile. Pour limiter la " +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " "taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " "avec :mod:`ctypes` ::" @@ -1482,8 +1482,8 @@ msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" -"Une instance de :class:`c_char_p` ne peut qu'avoir sa valeur initialisée " -"avec un octet ou un entier." +"La valeur d'une instance de :class:`c_char_p` ne peut être initialisée " +"qu'avec un octet ou un entier." #: ../Doc/library/ctypes.rst:1193 msgid "" @@ -1494,7 +1494,7 @@ msgid "" "the contents again constructs a new Python object each time!" msgstr "" "Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " -"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donne " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " "accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " "stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " "``contents`` crée un nouvel objet Python à chaque fois !" @@ -1521,7 +1521,7 @@ msgstr "" "La fonction :func:`resize` permet de redimensionner la taille du tampon " "mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " "premier argument et la taille en octets désirée comme second. La taille du " -"tampon mémoire ne peut pas être inférieure à celui occupé par un objet " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " "unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " "cas ::" @@ -1552,7 +1552,7 @@ msgstr "Référence du module" #: ../Doc/library/ctypes.rst:1253 msgid "Finding shared libraries" -msgstr "Trouver les bibliothèques partagées" +msgstr "Recherche de bibliothèques partagées" #: ../Doc/library/ctypes.rst:1255 msgid "" From c8684546024d1c2d294b8cebcd953ba8e7000e0a Mon Sep 17 00:00:00 2001 From: antoine Date: Mon, 30 Dec 2019 16:21:55 +0100 Subject: [PATCH 14/19] Remarques de ChristopheNan. --- library/ctypes.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 01572e0d3..683dd075f 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -993,7 +993,7 @@ msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" -"Attention :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " "crée un nouvel objet à chaque fois qu'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 @@ -1151,9 +1151,9 @@ msgid "" "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" -"Les *types incomplets* sont des structures, des unions ou des tableaux dont " -"les membres ne sont pas encore définis. C'est l'équivalent des déclarations " -"avancées en C, qui sont définies plus tard ::" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" #: ../Doc/library/ctypes.rst:900 msgid "" @@ -1351,8 +1351,8 @@ msgid "" "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" -"Si l'interpréteur avait été lancé avec :option:`-O`, l'exemple aurait " -"affiché ``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." #: ../Doc/library/ctypes.rst:1080 msgid "" @@ -2211,7 +2211,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1817 msgid "Utility functions" -msgstr "Fonctions pratiques" +msgstr "Fonctions utilitaires" #: ../Doc/library/ctypes.rst:1821 msgid "" From 33e8f7d191fc871207dec55f0b06b5f920468166 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Mon, 30 Dec 2019 16:22:55 +0100 Subject: [PATCH 15/19] Apply suggestions from ChristopheNan Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/ctypes.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 94db9b1ff..02f862325 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -985,7 +985,7 @@ msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" -"Les instances de pointer ont un attribut :attr:`~_Pointer.contents` qui " +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " "renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" #: ../Doc/library/ctypes.rst:729 @@ -1375,7 +1375,7 @@ msgid "" "frozen modules." msgstr "" "Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :c:type:" -"`struct _frozen`, terminé par un dont tous les membres valent ``NULL`` ou " +"`struct _frozen`, dont tous les membres de la dernière valent ``NULL`` ou " "zéro. Quand un module gelé est importé, il est cherché dans ce tableau. Du " "code tiers peut jouer avec pour construire dynamiquement une collection de " "module gelés." @@ -1467,7 +1467,7 @@ msgid "" "accessing the root-object's underlying buffer." msgstr "" "Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " -"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet d'interfaçage " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface " "qui accède au tampon sous-jacent de l'objet initial." #: ../Doc/library/ctypes.rst:1178 From 17757ff54294829b8d29b56ff677d24994e28d93 Mon Sep 17 00:00:00 2001 From: antoine Date: Mon, 30 Dec 2019 16:33:34 +0100 Subject: [PATCH 16/19] Indentation. --- library/ctypes.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index e5013b500..5b0b900ca 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -1299,8 +1299,8 @@ msgid "" msgstr "" "Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " "tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " -"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les libérer, ce " -"qui fera planter votre programme quand un appel sera fait." +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." #: ../Doc/library/ctypes.rst:1050 msgid "" @@ -1374,11 +1374,11 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" -"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :c:type:" -"`struct _frozen`, dont tous les membres de la dernière valent ``NULL`` ou " -"zéro. Quand un module gelé est importé, il est cherché dans ce tableau. Du " -"code tiers peut jouer avec pour construire dynamiquement une collection de " -"module gelés." +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :" +"c:type:`struct _frozen`, dont tous les membres de la dernière valent " +"``NULL`` ou zéro. Quand un module gelé est importé, il est cherché dans ce " +"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " +"collection de module gelés." #: ../Doc/library/ctypes.rst:1090 msgid "" @@ -1467,8 +1467,8 @@ msgid "" "accessing the root-object's underlying buffer." msgstr "" "Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " -"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface " -"qui accède au tampon sous-jacent de l'objet initial." +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." #: ../Doc/library/ctypes.rst:1178 msgid "" From 041da414344c0a19f9900905b51378b349f84233 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Mon, 30 Dec 2019 17:18:02 +0100 Subject: [PATCH 17/19] Apply suggestions from ChristopheNan Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- library/ctypes.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ctypes.po b/library/ctypes.po index 5b0b900ca..cb656d2f0 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -894,7 +894,7 @@ msgstr "" "même manière que le ferait un compilateur C. Ce comportement peut être " "redéfini en définissant l'attribut :attr:`_pack_` dans la définition de la " "sous-classe. Ce champ doit être un entier positif et vaut l'alignement " -"maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour le MSVC." +"maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour MSVC." #: ../Doc/library/ctypes.rst:632 msgid "" From 167ffed3399ccbb3547d3eed3448cb4920f9ba0b Mon Sep 17 00:00:00 2001 From: antoine Date: Mon, 30 Dec 2019 17:22:40 +0100 Subject: [PATCH 18/19] Remarque de ChristopheNan. --- library/ctypes.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index cb656d2f0..5e1cc140c 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -1036,9 +1036,9 @@ msgid "" "returns a new type::" msgstr "" "Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " -"une instance de pointeur ; elle doit d'abord créer un pointeur de *type*. " -"Cela s'effectue avec la fonction :func:`POINTER`, qui prend en paramètre " -"n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" #: ../Doc/library/ctypes.rst:787 msgid "" From f533d5d6ab96f8693842a3a7b11744fb610b9d2a Mon Sep 17 00:00:00 2001 From: antoine Date: Mon, 30 Dec 2019 19:58:54 +0100 Subject: [PATCH 19/19] Ultimes remarques de ChristopheNan + remplace 'expose' par 'exporte'. --- library/ctypes.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/ctypes.po b/library/ctypes.po index 5e1cc140c..f589f6bdf 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -157,12 +157,12 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" -"Les DLLs des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " "souvent une version ANSI et une version UNICODE d'une fonction. La version " "UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " "``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " "de module* à partir de son nom, a le prototype C suivant (c'est une macro " -"qui décide d'exposer l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " "qu'UNICODE est définie ou non) ::" #: ../Doc/library/ctypes.rst:119 @@ -1331,8 +1331,8 @@ msgid "" "flag given on startup." msgstr "" "Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " -"exportent aussi des variables. Par exemple, la bibliothèque Python expose :c:" -"data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" "option:`-O` ou :option:`-OO` soit donnée au démarrage." #: ../Doc/library/ctypes.rst:1067