8000 Work on extending/newtypes_tutorial.po by JulienPalard · Pull Request #1605 · python/python-docs-fr · GitHub
[go: up one dir, main page]

Skip to content

Work on extending/newtypes_tutorial.po #1605

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.< 10000 /p>

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 25, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Translating extending/newtypes_tutorial.po
  • Loading branch information
JulienPalard committed Sep 25, 2021
commit 79784bbcd7da43b2953f60f110033d37c1eb1876
114 changes: 107 additions & 7 deletions extending/newtypes_tutorial.po
< 10000 td class="blob-code blob-code-context js-file-line"> #: extending/newtypes_tutorial.rst:119
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2018-06-17 10:15+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2021-09-25 11:25+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
Expand All @@ -16,7 +16,7 @@ msgstr ""

#: extending/newtypes_tutorial.rst:7
msgid "Defining Extension Types: Tutorial"
msgstr ""
msgstr "Tutoriel : définir des types dans des extensions"

#: extending/newtypes_tutorial.rst:14
msgid ""
Expand All @@ -26,10 +26,15 @@ msgid ""
"pattern, but there are some details that you need to understand before you "
"can get started. This document is a gentle introduction to the topic."
msgstr ""
"Python permet à l'auteur d'un module d'extension C de définir de nouveaux "
"types qui peuvent être manipulés depuis du code Python, à la manière des "
"types natifs :class:`str` et :class:`list`. Les implémentations de tous les "
"types d'extension ont des similarités, mais quelques subtilités doivent être "
"abordées avant de commencer."

#: extending/newtypes_tutorial.rst:24
msgid "The Basics"
msgstr ""
msgstr "Les bases"

#: extending/newtypes_tutorial.rst:26
msgid ""
Expand All @@ -42,19 +47,33 @@ msgid ""
"an object, a method called, or it is multiplied by another object. These C "
"functions are called \"type methods\"."
msgstr ""
":term:`CPython` considère que tous les objets Python sont des variables de "
"type :c:type:`PyObject\\*`, qui sert de type de base pour tous les objets "
"Python. La structure de :c:type:`PyObject` ne contient que le :term:"
"`compteur de références <reference count>` et un pointeur vers un objet de "
"type « type de l'objet ». C'est ici que tout se joue : l'objet type "
"détermine quelle fonction C doit être appelée par l'interpréteur quand, par "
"exemple, un attribut est recherché sur un objet, quand une méthode est "
"appelée, ou quand l'objet est multiplié par un autre objet. Ces fonctions C "
"sont appelées des « méthodes de type »."

#: extending/newtypes_tutorial.rst:35
msgid ""
"So, if you want to define a new extension type, you need to create a new "
"type object."
msgstr ""
"Donc, pour définir un nouveau type dans une extension, vous devez créer un "
"nouvel objet type."

#: extending/newtypes_tutorial.rst:38
msgid ""
"This sort of thing can only be explained by example, so here's a minimal, "
"but complete, module that defines a new type named :class:`Custom` inside a "
"C extension module :mod:`custom`:"
msgstr ""
"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici "
"donc un module minimaliste mais suffisant qui définit un nouveau type nommé :"
"class:`Custom` dans le module d'extension :mod:`custom` : "

#: extending/newtypes_tutorial.rst:43
msgid ""
Expand All @@ -63,35 +82,49 @@ msgid ""
"allows defining heap-allocated extension types using the :c:func:"
"`PyType_FromSpec` function, which isn't covered in this tutorial."
msgstr ""
"Ce qui est montré ici est la manière traditionnelle de définir des types "
"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C "
"permet aussi de définir des types alloués sur le tas, via la fonction :c:"
"func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel."

#: extending/newtypes_tutorial.rst:50
msgid ""
"Now that's quite a bit to take in at once, but hopefully bits will seem "
"familiar from the previous chapter. This file defines three things:"
msgstr ""
"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux "
"expliqués au chapitre précédent. Ce fichier définit trois choses :"

#: extending/newtypes_tutorial.rst:53
msgid ""
"What a :class:`Custom` **object** contains: this is the ``CustomObject`` "
"struct, which is allocated once for each :class:`Custom` instance."
msgstr ""
"Ce qu'un **objet** :class:`Custom` contient : c'est la structure "
"``CustomObject``, qui est allouée une fois pour chaque instance de :class:"
"`Custom`."

#: extending/newtypes_tutorial.rst:55
msgid ""
"How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, "
"which defines a set of flags and function pointers that the interpreter "
"inspects when specific operations are requested."
msgstr ""
"Comment le **type** :class:`Custom` se comporte : c'est la structure "
"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction "
"utilisés par l'interpréteur."

#: extending/newtypes_tutorial.rst:58
msgid ""
"How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` "
"function and the associated ``custommodule`` struct."
msgstr ""
"Comment initialiser le module :mod:`custom` : c'est la fonction "
"``PyInit_custom`` et la structure associée ``custommodule``."

#: extending/newtypes_tutorial.rst:61
msgid "The first bit is::"
msgstr ""
msgstr "Commençons par ::"

#: extending/newtypes_tutorial.rst:67
msgid ""
Expand All @@ -103,30 +136,47 @@ msgid ""
"abstract away the layout and to enable additional fields in :ref:`debug "
"builds <debug-build>`."
msgstr ""
"C'est ce qu'un objet ``Custom`` contient. ``PyObject_HEAD`` est "
"obligatoirement au début de chaque structure d'objet et définit un champ "
"appelé ``ob_base`` de type :c:type:`PyObject`, contenant un pointeur vers un "
"objet type et un compteur de références (on peut y accéder en utilisant les "
"macros :c:macro:`Py_TYPE` et :c:macro:`Py_REFCNT`, respectivement). La "
"raison d'être de ces macros est d'abstraire l'agencement de la structure, et "
"ainsi de permettre l'ajout de champs en :ref:`mode débogage <debug-build>`."

#: extending/newtypes_tutorial.rst:76
msgid ""
"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be "
"wary of adding one by accident: some compilers will complain."
msgstr ""
"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. "
"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient "
"s'en plaindre."

#: extending/newtypes_tutorial.rst:79
msgid ""
"Of course, objects generally store additional data besides the standard "
"``PyObject_HEAD`` boilerplate; for example, here is the definition for "
"standard Python floats::"
msgstr ""
"Bien sûr, les objets ajoutent généralement des données supplémentaires après "
"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type "
"standard Python ``float`` ::"

#: extending/newtypes_tutorial.rst:88
msgid "The second bit is the definition of the type object. ::"
msgstr ""
msgstr "La deuxième partie est la définition de l'objet type ::"

#: extending/newtypes_tutorial.rst:101
msgid ""
"We recommend using C99-style designated initializers as above, to avoid "
"listing all the :c:type:`PyTypeObject` fields that you don't care about and "
"also to avoid caring about the fields' declaration order."
msgstr ""
"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour "
"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les "
"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas "
"vous soucier de leur ordre."

#: extending/newtypes_tutorial.rst:105
msgid ""
Expand All @@ -135,22 +185,31 @@ msgid ""
"fields will be filled with zeros by the C compiler, and it's common practice "
"to not specify them explicitly unless you need them."
msgstr ""
"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en "
"fait bien plus de :ref:`champs <type-structs>` que la définition ci-dessus. "
"Les champs restants sont mis à zéro par le compilateur C, et c'est une "
"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin."

#: extending/newtypes_tutorial.rst:110
msgid "We're going to pick it apart, one field at a time::"
msgstr ""
msgstr "Regardons les champs de cette structure, un par un ::"

#: extending/newtypes_tutorial.rst:114
msgid ""
"This line is mandatory boilerplate to initialize the ``ob_base`` field "
"mentioned above. ::"
msgstr ""
"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné "
"précédemment."

msgid ""
"The name of our type. This will appear in the default textual "
"representation of our objects and in some error messages, for example:"
msgstr ""
"C'est le nom de notre type. Il apparaît dans la représentation textuelle par "
"défaut de nos objets, ainsi que dans quelques messages d'erreur, par "
"exemple :"

#: extending/newtypes_tutorial.rst:129
msgid ""
Expand All @@ -160,13 +219,22 @@ msgid ""
"`custom.Custom`. Using the real dotted import path is important to make your "
"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::"
msgstr ""
"Notez que le nom comporte un point : il inclut le nom du module et le nom du "
"type. Dans ce cas le module est :mod:`custom`, et le type est :class:"
"`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer "
"correctement son type, avec le point, est important pour le rendre "
"compatible avec :mod:`pydoc` et :mod:`pickle`. ::"

#: extending/newtypes_tutorial.rst:138
msgid ""
"This is so that Python knows how much memory to allocate when creating new :"
"class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only "
"used for variable-sized objects and should otherwise be zero."
msgstr ""
"C'est pour que Python sache combien de mémoire allouer à la création d'une "
"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` "
"n'est utilisé que pour les objets de taille variable, sinon il doit rester à "
"zéro."

#: extending/newtypes_tutorial.rst:144
msgid ""
Expand All @@ -181,22 +249,40 @@ msgid ""
"type will be :class:`object`, or else you will be adding data members to "
"your base type, and therefore increasing its size."
msgstr ""
"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que "
"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, "
"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe "
"Python de votre type devra lister votre type en premier dans son :attr:"
"`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler la méthode :"
"meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce problème en "
"vous assurant que votre type a un :c:member:`~PyTypeObject.tp_basicsize` "
"plus grand que son parent. La plupart du temps ce sera vrai (soit son parent "
"sera :class:`object`, soit vous ajouterez des attributs à votre type, "
"augmentant ainsi sa taille)."

#: extending/newtypes_tutorial.rst:154
msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::"
msgstr ""
"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de "
"type. ::"

#: extending/newtypes_tutorial.rst:158
msgid ""
"All types should include this constant in their flags. It enables all of "
"the members defined until at least Python 3.3. If you need further members, "
"you will need to OR the corresponding flags."
msgstr ""
"Chaque type doit inclure cette constante dans ses options : elle active tous "
"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus "
"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* "
"binaire."

#: extending/newtypes_tutorial.rst:162
msgid ""
"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::"
msgstr ""
"On fournit une *docstring* pour ce type via le membre :c:member:"
"`~PyTypeObject.tp_doc`. ::"

#: extending/newtypes_tutorial.rst:166
msgid ""
Expand All @@ -206,31 +292,45 @@ msgid ""
"use the default implementation provided by the API function :c:func:"
"`PyType_GenericNew`. ::"
msgstr ""
"Pour permettre la création d'une instance, nous devons fournir un *handler* :"
"c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la méthode Python :"
"meth:`__new__`, mais elle a besoin d'être spécifiée explicitement. Dans ce "
"cas, on se contente de l'implémentation par défaut fournie par la fonction :"
"c:func:`PyType_GenericNew` de l'API."

#: extending/newtypes_tutorial.rst:173
msgid ""
"Everything else in the file should be familiar, except for some code in :c:"
"func:`PyInit_custom`::"
msgstr ""
"Le reste du fichier doit vous être familier, en dehors du code de :c:func:"
"`PyInit_custom` ::"

#: extending/newtypes_tutorial.rst:179
msgid ""
"This initializes the :class:`Custom` type, filling in a number of members to "
"the appropriate default values, including :attr:`ob_type` that we initially "
"set to ``NULL``. ::"
msgstr ""
"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs "
"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement "
"``NULL``. ::"

#: extending/newtypes_tutorial.rst:190
msgid ""
"This adds the type to the module dictionary. This allows us to create :"
"class:`Custom` instances by calling the :class:`Custom` class:"
msgstr ""
"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une "
"instance de :class:`Custom` en appelant la classe :class:`Custom` :"

#: extending/newtypes_tutorial.rst:198
msgid ""
"That's it! All that remains is to build it; put the above code in a file "
"called :file:`custom.c` and:"
msgstr ""
"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans "
"un fichier :file:`custom.c` et :"

#: extending/newtypes_tutorial.rst:207
msgid "in a file called :file:`setup.py`; then typing"
Expand Down
0