Merge branch '3.11' into pathlib
This commit is contained in:
commit
2ab830641c
|
@ -104,6 +104,10 @@ ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre
|
|||
|
||||
chmod a+x ~/.local/bin/podiff
|
||||
|
||||
Allez ensuite dans le répertoire du dépôt récupéré (``python-docs-fr``) et faites :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git config diff.podiff.textconv podiff
|
||||
|
||||
|
||||
|
|
2
Makefile
2
Makefile
|
@ -155,7 +155,7 @@ $(POSPELL_TMP_DIR)/%.po.out: %.po dict
|
|||
|
||||
.PHONY: fuzzy
|
||||
fuzzy: ensure_prerequisites
|
||||
potodo -f --exclude venv .venv $(EXCLUDED)
|
||||
potodo --offline -f --exclude venv .venv $(EXCLUDED)
|
||||
|
||||
.PHONY: check-headers
|
||||
check-headers:
|
||||
|
|
|
@ -61,7 +61,7 @@ vous signifiez votre acceptation de cet accord.
|
|||
Historique du projet
|
||||
--------------------
|
||||
|
||||
- vers 2000 : `lancement du projet <https://julienpalard.frama.io/write-the-docs-paris-19/#/2>`_ ;
|
||||
- vers 2000 : lancement du projet ;
|
||||
- vers 2012 : `reprise <https://github.com/AFPy/python_doc_fr>`_ par l'`AFPy <https://www.afpy.org/>`_ ;
|
||||
- 2016 : 15 % de la documentation traduite ;
|
||||
- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_ ;
|
||||
|
|
|
@ -6,8 +6,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2023-02-17 12:00+0200\n"
|
||||
"Last-Translator: Rémi Lapeyre <remi.lapeyre@lenstra.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -15,18 +15,19 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: c-api/refcounting.rst:8
|
||||
msgid "Reference Counting"
|
||||
msgid "Comptage de références"
|
||||
msgstr ""
|
||||
|
||||
#: c-api/refcounting.rst:10
|
||||
msgid ""
|
||||
"The macros in this section are used for managing reference counts of Python "
|
||||
"objects."
|
||||
msgstr ""
|
||||
msgstr "Les macros dans cette section permettent de gérer le compteur de références "
|
||||
"des objets Python."
|
||||
|
||||
#: c-api/refcounting.rst:16
|
||||
msgid "Increment the reference count for object *o*."
|
||||
msgstr ""
|
||||
msgstr "Incrémente le compteur de références de l'object *o*."
|
||||
|
||||
#: c-api/refcounting.rst:18
|
||||
msgid ""
|
||||
|
@ -34,82 +35,101 @@ msgid ""
|
|||
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
|
||||
"used to create a new :term:`strong reference`."
|
||||
msgstr ""
|
||||
"Cette fonction est souvent utilisée pour convertir une :term:`référence empruntée` "
|
||||
"en une :term:`référence forte` *sur place*. La fonction :c:func:`Py_NewRef` peut être "
|
||||
"utilisée pour créer une nouvelle :term:`référence forte`."
|
||||
|
||||
#: c-api/refcounting.rst:22
|
||||
msgid ""
|
||||
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
|
||||
"use :c:func:`Py_XINCREF`."
|
||||
msgstr ""
|
||||
"L'object ne doit pas être ``NULL``, la fonction :c:func:`Py_XINCREF` doit être "
|
||||
"utilisée s'il est possible qu'il soit ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:28
|
||||
msgid ""
|
||||
"Increment the reference count for object *o*. The object may be ``NULL``, "
|
||||
"in which case the macro has no effect."
|
||||
msgstr ""
|
||||
"Incrémente le compteur de références de l'objet *o*. La macro n'a pas d'effet "
|
||||
"si l'objet est ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:31
|
||||
msgid "See also :c:func:`Py_XNewRef`."
|
||||
msgstr ""
|
||||
msgstr "Voir aussi :c:func:`Py_XNewRef`."
|
||||
|
||||
#: c-api/refcounting.rst:36
|
||||
msgid ""
|
||||
"Create a new :term:`strong reference` to an object: increment the reference "
|
||||
"count of the object *o* and return the object *o*."
|
||||
msgstr ""
|
||||
"Créer une nouvelle :term:`référence forte` d'un objet : incrémente le compteur de "
|
||||
"référence de l'objet *o* and renvoie l'objet *o*."
|
||||
|
||||
#: c-api/refcounting.rst:39
|
||||
msgid ""
|
||||
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
|
||||
"should be called on it to decrement the object reference count."
|
||||
msgstr ""
|
||||
":c:func:`Py_DECREF` doit être appelée quand la :term:`référence forte` n'est "
|
||||
"plus utilisée pour décrémenter le compteur de références de l'objet."
|
||||
|
||||
#: c-api/refcounting.rst:42
|
||||
msgid ""
|
||||
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
|
||||
"``NULL``."
|
||||
msgstr ""
|
||||
"L'objet *o* ne doit pas être ``NULL`` et la fonction :c:func:`Py_XNewRef` doit être "
|
||||
"utilisée si *o* peut être ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:45
|
||||
msgid "For example::"
|
||||
msgstr ""
|
||||
msgstr "Par exemple ::"
|
||||
|
||||
#: c-api/refcounting.rst:50
|
||||
msgid "can be written as::"
|
||||
msgstr ""
|
||||
msgstr "peut être écrit ::"
|
||||
|
||||
#: c-api/refcounting.rst:54
|
||||
msgid "See also :c:func:`Py_INCREF`."
|
||||
msgstr ""
|
||||
msgstr "Voir aussi :c:func:`Py_INCREF`."
|
||||
|
||||
#: c-api/refcounting.rst:61
|
||||
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
|
||||
msgstr ""
|
||||
msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:63
|
||||
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
|
||||
msgstr ""
|
||||
msgstr "Cette fonction renvoie ``NULL`` si l'objet *o* est ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:70
|
||||
msgid "Decrement the reference count for object *o*."
|
||||
msgstr ""
|
||||
msgstr "Décrémente le compteur de références de l'objet *o*."
|
||||
|
||||
#: c-api/refcounting.rst:72
|
||||
msgid ""
|
||||
"If the reference count reaches zero, the object's type's deallocation "
|
||||
"function (which must not be ``NULL``) is invoked."
|
||||
msgstr ""
|
||||
"Si le compteur de références atteint zéro, la fonction de dés-allocation du "
|
||||
"type de l'objet (qui ne doit pas être ``NULL``) est invoquée."
|
||||
|
||||
#: c-api/refcounting.rst:75
|
||||
msgid ""
|
||||
"This function is usually used to delete a :term:`strong reference` before "
|
||||
"exiting its scope."
|
||||
msgstr ""
|
||||
"Cette fonction est généralement utilisée pour supprimer une :term:`référence forte` "
|
||||
"avant qu'elle ne soit plus accessible."
|
||||
|
||||
#: c-api/refcounting.rst:78
|
||||
msgid ""
|
||||
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
|
||||
"use :c:func:`Py_XDECREF`."
|
||||
msgstr ""
|
||||
"L'objet en argument ne doit pas être ``NULL``. :c:func:`Py_XDECREF` doit être "
|
||||
"utilisée si l'objet peut être ``NULL``."
|
||||
|
||||
#: c-api/refcounting.rst:83
|
||||
msgid ""
|
||||
|
@ -123,6 +143,15 @@ msgid ""
|
|||
"update the list data structure, and then call :c:func:`Py_DECREF` for the "
|
||||
"temporary variable."
|
||||
msgstr ""
|
||||
"La fonction de dés-allocation peut invoquer du code Python arbitraire (par "
|
||||
"exemple quand une instance d'une classe avec une méthode :meth:`__del__` est "
|
||||
"supprimée). Le code exécuté a accès à toutes les variables Python globales mais "
|
||||
"les exceptions lors de l'exécution de ce code ne sont pas propagées. Tous les "
|
||||
"objets qui peuvent être atteints à partir d'une variable globale doivent être "
|
||||
"dans un état cohérent avant d'appeler :c:func:`Py_DECREF`. Par exemple le code "
|
||||
"pour supprimer un élément d'une liste doit copier une référence à l'objet dans "
|
||||
"une variable temporaire, mettre à jour la liste, et enfin appeler :c:func:`Py_DECREF` "
|
||||
"avec la variable temporaire."
|
||||
|
||||
#: c-api/refcounting.rst:95
|
||||
msgid ""
|
||||
|
@ -130,6 +159,9 @@ msgid ""
|
|||
"in which case the macro has no effect; otherwise the effect is the same as "
|
||||
"for :c:func:`Py_DECREF`, and the same warning applies."
|
||||
msgstr ""
|
||||
"Décrémente le compteur de références de l'objet *o*. L'objet peut être ``NULL``, "
|
||||
"dans ce cas la macro n'a pas d'effet. Dans le cas contraire le comportement "
|
||||
"est identique à :c:func:`Py_DECREF` et les mêmes avertissements sont de rigueur."
|
||||
|
||||
#: c-api/refcounting.rst:102
|
||||
msgid ""
|
||||
|
@ -140,24 +172,39 @@ msgid ""
|
|||
"object passed because the macro carefully uses a temporary variable and sets "
|
||||
"the argument to ``NULL`` before decrementing its reference count."
|
||||
msgstr ""
|
||||
"Décrémente le competeur de références de l'objet *o*. L'objet peut être ``NULL``, "
|
||||
"dans ce cas la macro n'a pas d'effet. Dans le cas contraire le comportement est "
|
||||
"identique à :c:func:`Py_DECREF`, puis l'argument est mis à ``NULL``. "
|
||||
"L'avertissement au sujet de l'objet passé en argument à :c:func:`Py_DECREF` "
|
||||
"ne s'applique pas car la macro utilise une variable temporaire et met l'objet "
|
||||
"à ``NULL`` avant de décrémenter le compteur de références."
|
||||
|
||||
|
||||
#: c-api/refcounting.rst:109
|
||||
msgid ""
|
||||
"It is a good idea to use this macro whenever decrementing the reference "
|
||||
"count of an object that might be traversed during garbage collection."
|
||||
msgstr ""
|
||||
"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de "
|
||||
"référence d'un objet qui peut être parcouru par le ramasse-miette."
|
||||
|
||||
#: c-api/refcounting.rst:114
|
||||
msgid ""
|
||||
"Increment the reference count for object *o*. A function version of :c:func:"
|
||||
"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python."
|
||||
msgstr ""
|
||||
"Incrémente le compteur de références de l'objet *o*. C'est la version "
|
||||
"fonctionnelle de :c:func:`Py_XINCREF`. Elle peut être utilisé lorsque Python "
|
||||
"est embarqué dynamiquement dans une application."
|
||||
|
||||
#: c-api/refcounting.rst:120
|
||||
msgid ""
|
||||
"Decrement the reference count for object *o*. A function version of :c:func:"
|
||||
"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
|
||||
msgstr ""
|
||||
"Décrémente le compteur de références de l'objet *o*. C'est la version "
|
||||
"fonctionnelle de :c:func:`Py_XDECREF`. Elle peut être utilisée lorsque Python "
|
||||
"est embarqué dynamiquement dans une application."
|
||||
|
||||
#: c-api/refcounting.rst:124
|
||||
msgid ""
|
||||
|
@ -165,3 +212,7 @@ msgid ""
|
|||
"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"
|
||||
"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`."
|
||||
msgstr ""
|
||||
"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein de "
|
||||
"l'interpréteur et ne font pas partie de l'API publique : :c:func:`_Py_Dealloc`, "
|
||||
":c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, ainsi que la variable "
|
||||
"globale :c:data:`_Py_RefTotal`."
|
||||
|
|
198
c-api/stable.po
198
c-api/stable.po
|
@ -6,20 +6,20 @@ 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-10-04 12:26+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"PO-Revision-Date: 2023-02-17 17:33+0100\n"
|
||||
"Last-Translator: Rémi Lapeyre <remi.lapeyre@lenstra.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: c-api/stable.rst:7
|
||||
msgid "C API Stability"
|
||||
msgstr ""
|
||||
msgstr "Stabilité de l’API C"
|
||||
|
||||
#: c-api/stable.rst:9
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. "
|
||||
"While the C API will change with every minor release (e.g. from 3.9 to "
|
||||
|
@ -27,10 +27,12 @@ msgid ""
|
|||
"API. Changing existing API or removing API is only done after a deprecation "
|
||||
"period or to fix serious issues."
|
||||
msgstr ""
|
||||
"L'API C de Python change à chaque version. La majorité de ces changement "
|
||||
"n'affecte cependant pas la compatibilité du code source. Typiquement, des "
|
||||
"API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines "
|
||||
"interfaces puissent être supprimées, après avoir d'abord été dépréciées)."
|
||||
"L'API C respecte la politique de rétrocompatibilité de Python, :pep:`387`. "
|
||||
"Malgré la présence d’évolutions dans chaque version mineure (par exemple "
|
||||
"entre 3.9 et 3.10), la majorité de ces changement n'affecte pas la "
|
||||
"compatibilité du code source. Typiquement des APIs sont ajoutées mais pas "
|
||||
"modifiées ou supprimées, bien que cela puisse arriver après une période de "
|
||||
"dépréciation ou pour corriger un problème important."
|
||||
|
||||
#: c-api/stable.rst:15
|
||||
msgid ""
|
||||
|
@ -40,16 +42,24 @@ msgid ""
|
|||
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
|
||||
"3.9.x and 3.10.x."
|
||||
msgstr ""
|
||||
"L’interface binaire de CPython (ABI) est entièrement compatible au sein "
|
||||
"d’une version mineure (à condition que la compilation soit toujours faite de "
|
||||
"même manière, comme indiqué dans :ref:`stable-abi-platform` ci-dessous). "
|
||||
"Ainsi le code compilé pour Python 3.10.0 fonctionnera avec Python 3.10.8 et "
|
||||
"inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x."
|
||||
|
||||
#: c-api/stable.rst:21
|
||||
msgid ""
|
||||
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
|
||||
"API that can change without notice even in patch releases."
|
||||
msgstr ""
|
||||
"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, "
|
||||
"font partie de l’API privée et peuvent changer sans préavis même dans une "
|
||||
"version de correctif."
|
||||
|
||||
#: c-api/stable.rst:26
|
||||
msgid "Stable Application Binary Interface"
|
||||
msgstr "ABI Stable"
|
||||
msgstr "ABI stable"
|
||||
|
||||
#: c-api/stable.rst:28
|
||||
msgid ""
|
||||
|
@ -58,6 +68,11 @@ msgid ""
|
|||
"multiple versions of Python. Contents of the Limited API are :ref:`listed "
|
||||
"below <stable-abi-list>`."
|
||||
msgstr ""
|
||||
"Le concept d’*API restreinte*, un sous-ensemble de l’API C de Python, existe "
|
||||
"depuis Python 3.2. Les extensions qui utilisent uniquement l’API restreinte "
|
||||
"peuvent être compilées une seule fois et fonctionner avec plusieurs versions "
|
||||
"de Python. Les objets faisant partie de l’API restreinte sont :ref:`documentés "
|
||||
"ci-dessous <stable-abi-list>`."
|
||||
|
||||
#: c-api/stable.rst:33
|
||||
msgid ""
|
||||
|
@ -66,6 +81,11 @@ msgid ""
|
|||
"symbols exposed in the Limited API, but also other ones – for example, "
|
||||
"functions necessary to support older versions of the Limited API."
|
||||
msgstr ""
|
||||
"Python a aussi une *ABI stable* : un ensemble de symboles qui sont "
|
||||
"compatibles avec l’ensemble des versions Python 3.x. L’ABI stable contient "
|
||||
"les symboles utilisés par l’API restreinte, mais pas seulement — par exemple "
|
||||
"les fonctions nécessaires pour supporter les versions précédentes de l’API "
|
||||
"restreinte en font aussi partie."
|
||||
|
||||
#: c-api/stable.rst:38
|
||||
msgid ""
|
||||
|
@ -73,12 +93,17 @@ msgid ""
|
|||
"and Stable ABI work the same way for all uses of the API – for example, "
|
||||
"embedding Python.)"
|
||||
msgstr ""
|
||||
"(Par simplicité ce document parle *d’extensions*, mais l’API restreinte et "
|
||||
"l’ABI stable fonctionnent de la même manière pour tous les cas d’usages de "
|
||||
"l’API — par exemple pour embarquer Python.)"
|
||||
|
||||
#: c-api/stable.rst:44
|
||||
msgid ""
|
||||
"Define this macro before including ``Python.h`` to opt in to only use the "
|
||||
"Limited API, and to select the Limited API version."
|
||||
msgstr ""
|
||||
"Définissez cette macro avant d’inclure ``Python.h`` pour n’inclure que l’API "
|
||||
"restreinte et indiquer sa version."
|
||||
|
||||
#: c-api/stable.rst:47
|
||||
msgid ""
|
||||
|
@ -88,6 +113,11 @@ msgid ""
|
|||
"the specified one onward, and can use Limited API introduced up to that "
|
||||
"version."
|
||||
msgstr ""
|
||||
"Définissez ``Py_LIMITED_API`` à la valeur de :c:data:`PY_VERSION_HEX` "
|
||||
"correspond à la version minimale de Python que votre extension supporte. "
|
||||
"Cette extension fonctionnera sans re-compilation avec toutes les versions "
|
||||
"futures de Python 3, et peut utiliser l’ensemble des éléments de l’API "
|
||||
"restreinte présent dans cette version."
|
||||
|
||||
#: c-api/stable.rst:53
|
||||
msgid ""
|
||||
|
@ -95,12 +125,19 @@ msgid ""
|
|||
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
|
||||
"compiling with future Python versions."
|
||||
msgstr ""
|
||||
"Il est recommandé de renseigner une version mineure minimale (par exemple "
|
||||
"``0x030A0000`` pour Python 3.10) plutôt que d’utiliser directement la macro "
|
||||
"``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée "
|
||||
"lors de la compilation."
|
||||
|
||||
#: c-api/stable.rst:57
|
||||
msgid ""
|
||||
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
|
||||
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
|
||||
msgstr ""
|
||||
"Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est "
|
||||
"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version "
|
||||
"à supporter l’API restreinte."
|
||||
|
||||
#: c-api/stable.rst:60
|
||||
msgid ""
|
||||
|
@ -108,6 +145,9 @@ msgid ""
|
|||
"``python3.dll`` rather than a version-specific library such as ``python39."
|
||||
"dll``."
|
||||
msgstr ""
|
||||
"Sur Windows les extensions qui utilisent l’ABI stable doivent être liées "
|
||||
"avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une "
|
||||
"version comme ``python39.dll``."
|
||||
|
||||
#: c-api/stable.rst:64
|
||||
msgid ""
|
||||
|
@ -117,6 +157,12 @@ msgid ""
|
|||
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
|
||||
"not installed for lower versions of Python."
|
||||
msgstr ""
|
||||
"Sur certaines plateformes Python essaiera de charger une bibliothèque "
|
||||
"partagée dont le nom contient ``abi3`` (par exemple ``mymodule.abi3.so``). "
|
||||
"Il ne vérifie pas si ces extensions respectent l’ABI stable. L’utilisateur "
|
||||
"(ou ses outils d’administration) doit s’assurer que les extensions compilées "
|
||||
"avec une version donnée de l’API restreinte, par exemple 3.10+, ne sont pas "
|
||||
"utilisées avec des versions plus anciennes de Python."
|
||||
|
||||
#: c-api/stable.rst:71
|
||||
msgid ""
|
||||
|
@ -124,16 +170,23 @@ msgid ""
|
|||
"library, not solely as macros. This makes them usable from languages that "
|
||||
"don't use the C preprocessor."
|
||||
msgstr ""
|
||||
"Toutes les fonctions de l’ABI stable sont présentes dans la bibliothèque "
|
||||
"dynamique de Python en tant que fonction, et pas uniquement comme macro. "
|
||||
"Elles peuvent donc être utilisées avec des langages qui n’utilisent pas le "
|
||||
"pré-processeur C."
|
||||
|
||||
#: c-api/stable.rst:77
|
||||
msgid "Limited API Scope and Performance"
|
||||
msgstr ""
|
||||
msgstr "Porté de l’API restreinte et performance"
|
||||
|
||||
#: c-api/stable.rst:79
|
||||
msgid ""
|
||||
"The goal for the Limited API is to allow everything that is possible with "
|
||||
"the full C API, but possibly with a performance penalty."
|
||||
msgstr ""
|
||||
"L’objectif de l’API restreinte est de permettre l’ensemble des opérations "
|
||||
"possibles avec l’API C étendue, mais peut avoir un impact sur les "
|
||||
"performances."
|
||||
|
||||
#: c-api/stable.rst:82
|
||||
msgid ""
|
||||
|
@ -141,6 +194,10 @@ msgid ""
|
|||
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
|
||||
"can rely on version-specific implementation details of the list object."
|
||||
msgstr ""
|
||||
"Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la "
|
||||
"macro « dangereuse » :c:func:`PyList_GET_ITEM` ne l’est pas. Cette macro "
|
||||
"peut être plus rapide car elle dépend de détails d’implémentation spécifique "
|
||||
"à l’objet ``list``."
|
||||
|
||||
#: c-api/stable.rst:87
|
||||
msgid ""
|
||||
|
@ -149,6 +206,11 @@ msgid ""
|
|||
"allowing stability as Python's data structures are improved, but possibly "
|
||||
"reducing performance."
|
||||
msgstr ""
|
||||
"Si ``Py_LIMITED_API`` n’est pas défini certaines fonctions de l’API C seront "
|
||||
"remplacées par des macros ou une version en-ligne. Définir "
|
||||
"``Py_LIMITED_API`` désactive cette optimisation, permettant de se garantir "
|
||||
"contre les évolutions des structures de données utilisées par Python, et "
|
||||
"peut réduire les performances."
|
||||
|
||||
#: c-api/stable.rst:92
|
||||
msgid ""
|
||||
|
@ -159,10 +221,17 @@ msgid ""
|
|||
"where a version-specific one is not available – for example, for prereleases "
|
||||
"of an upcoming Python version."
|
||||
msgstr ""
|
||||
"En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler "
|
||||
"une extension utilisant l’API restreinte avec une version spécifique de l’ABI. "
|
||||
"Les performances seront meilleures pour cette version de Python, mais la "
|
||||
"compatibilité sera réduite. Compiler en définissant ``Py_LIMITED_API`` "
|
||||
"produira une extension qui peut être utilisée quand une variante spécifique "
|
||||
"à une version n’est pas disponible — par exemple pour une version alpha de "
|
||||
"Python."
|
||||
|
||||
#: c-api/stable.rst:101
|
||||
msgid "Limited API Caveats"
|
||||
msgstr ""
|
||||
msgstr "Inconvénients de l’API restreinte"
|
||||
|
||||
#: c-api/stable.rst:103
|
||||
msgid ""
|
||||
|
@ -171,6 +240,10 @@ msgid ""
|
|||
"only covers definitions, but an API also includes other issues, such as "
|
||||
"expected semantics."
|
||||
msgstr ""
|
||||
"Compiler avec ``Py_LIMITED_API`` *n’est pas* une garantie absolue que le "
|
||||
"code est conforme à l’API restreinte ou à l’ABI stable. ``Py_LIMITED_API`` ne "
|
||||
"concerne que la définition des objets, mais une API inclut aussi d’autres "
|
||||
"spécificités comme le comportement attendu."
|
||||
|
||||
#: c-api/stable.rst:108
|
||||
msgid ""
|
||||
|
@ -181,18 +254,31 @@ msgid ""
|
|||
"the argument will be used directly, causing a ``NULL`` dereference and "
|
||||
"crash. A similar argument works for fields of structs."
|
||||
msgstr ""
|
||||
"Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre l’appel "
|
||||
"d’une fonction avec des arguments qui sont invalides pour une version de "
|
||||
"Python plus ancienne. Par exemple considérons une fonction qui accepte "
|
||||
"``NULL`` comme argument à partir de 3.9. ``NULL`` permet maintenant "
|
||||
"d’utiliser le comportement par défaut, mais Python 3.8 essayera d’accéder à "
|
||||
"l’objet pointé et dé-référencera ``NULL``, causant un crash. Des problèmes "
|
||||
"similaires peuvent se produire avec les attributs des structures."
|
||||
|
||||
#: c-api/stable.rst:115
|
||||
msgid ""
|
||||
"Another issue is that some struct fields are currently not hidden when "
|
||||
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
|
||||
msgstr ""
|
||||
"Un autre problème est que certains attributs ne sont pas encore cachés "
|
||||
"lorsque ``Py_LIMITED_API`` est défini, même s’il ne font pas partie de l’API "
|
||||
"restreinte."
|
||||
|
||||
#: c-api/stable.rst:118
|
||||
msgid ""
|
||||
"For these reasons, we recommend testing an extension with *all* minor Python "
|
||||
"versions it supports, and preferably to build with the *lowest* such version."
|
||||
msgstr ""
|
||||
"Pour ces raisons il est recommandé de tester une extension avec *l’ensemble "
|
||||
"des versions mineures* supportées de Python, et généralement de la compiler "
|
||||
"avec la plus *ancienne* de ces versions."
|
||||
|
||||
#: c-api/stable.rst:121
|
||||
msgid ""
|
||||
|
@ -201,6 +287,10 @@ msgid ""
|
|||
"few private declarations are exposed for technical reasons (or even "
|
||||
"unintentionally, as bugs)."
|
||||
msgstr ""
|
||||
"Il est aussi recommandé de vérifier la documentation de toutes les API "
|
||||
"utilisées pour vérifier qu’elles fassent bien partie de l’API restreinte. Même "
|
||||
"lorsque ``Py_LIMITED_API`` est défini quelques fonctions privées peuvent "
|
||||
"être exposées aux utilisateurs pour des raisons techniques, ou par erreur."
|
||||
|
||||
#: c-api/stable.rst:126
|
||||
msgid ""
|
||||
|
@ -210,10 +300,15 @@ msgid ""
|
|||
"particular, parts of the Limited API may be deprecated and removed, provided "
|
||||
"that the Stable ABI stays stable."
|
||||
msgstr ""
|
||||
"Notez aussi que l’API restreinte n’est pas forcément stable : compiler avec "
|
||||
"Python 3.8 en définissant ``Py_LIMITED_API`` garanti que l’extension "
|
||||
"fonctionnera avec Python 3.12, mais pas qu’elle pourra *être compilée* avec "
|
||||
"Python 3.12. En particulier certaines parties de l’API restreinte peuvent être "
|
||||
"dépréciées et retirées tant que l’ABI stable n’est pas modifiée."
|
||||
|
||||
#: c-api/stable.rst:136
|
||||
msgid "Platform Considerations"
|
||||
msgstr ""
|
||||
msgstr "Considérations relatives aux plateformes"
|
||||
|
||||
#: c-api/stable.rst:138
|
||||
msgid ""
|
||||
|
@ -222,6 +317,11 @@ msgid ""
|
|||
"ABI, these details define a “platform”. They usually depend on the OS type "
|
||||
"and processor architecture"
|
||||
msgstr ""
|
||||
"La stabilité de l’ABI ne dépend pas que de Python mais aussi du compilateur "
|
||||
"utilisé, des bibliothèques systèmes et des options du compilateur. "
|
||||
"L’ensemble de ces détails correspondent à ce que l’ABI stable appelle une "
|
||||
"« plateforme ». Ils dépendent généralement du système d’exploitation et de "
|
||||
"l’architecture du processeur."
|
||||
|
||||
#: c-api/stable.rst:143
|
||||
msgid ""
|
||||
|
@ -230,76 +330,16 @@ msgid ""
|
|||
"does not break the Stable ABI. This is the case with Windows and macOS "
|
||||
"releases from ``python.org`` and many third-party distributors."
|
||||
msgstr ""
|
||||
"Les distributeurs de Python doivent s’assurer que toutes les versions de "
|
||||
"Python pour une plateforme donnée sont compilées de manière à ne pas rompre "
|
||||
"la compatibilité de l’ABI stable. C’est le cas des versions produites pour "
|
||||
"Windows et macOS de ``python.org`` et de la plupart des distributions "
|
||||
"tierces."
|
||||
|
||||
#: c-api/stable.rst:153
|
||||
msgid "Contents of Limited API"
|
||||
msgstr ""
|
||||
msgstr "Contenu de l’API restreinte"
|
||||
|
||||
#: c-api/stable.rst:156
|
||||
msgid "Currently, the Limited API includes the following items:"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Unfortunately, the API compatibility does not extend to binary "
|
||||
#~ "compatibility (the ABI). The reason is primarily the evolution of struct "
|
||||
#~ "definitions, where addition of a new field, or changing the type of a "
|
||||
#~ "field, might not break the API, but can break the ABI. As a consequence, "
|
||||
#~ "extension modules need to be recompiled for every Python release "
|
||||
#~ "(although an exception is possible on Unix when none of the affected "
|
||||
#~ "interfaces are used). In addition, on Windows, extension modules link "
|
||||
#~ "with a specific pythonXY.dll and need to be recompiled to link with a "
|
||||
#~ "newer one."
|
||||
#~ msgstr ""
|
||||
#~ "Malheureusement, la compatibilité de l'API ne s'étend pas à une "
|
||||
#~ "compatibilité binaire (l'ABI). L'évolution des structures en est la "
|
||||
#~ "raison principale : l'ajout de nouveaux attributs, ou le changement du "
|
||||
#~ "type d'un attribut peut ne pas casser l'API mais casser l'ABI. Par "
|
||||
#~ "conséquent, les modules d'extension doivent être recompilés à chaque "
|
||||
#~ "nouvelle version de Python (ce n'est exceptionnellement pas nécessaire "
|
||||
#~ "sur Unix, si aucune des interfaces modifiées n'est utilisée). De plus, "
|
||||
#~ "sous Windows, les modules d'extension sont liés à un *pythonXY.dll* "
|
||||
#~ "spécifique, ils est donc nécessaire de les recompiler pour les lier au "
|
||||
#~ "nouveau DLL."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Since Python 3.2, a subset of the API has been declared to guarantee a "
|
||||
#~ "stable ABI. Extension modules wishing to use this API (called \"limited "
|
||||
#~ "API\") need to define ``Py_LIMITED_API``. A number of interpreter details "
|
||||
#~ "then become hidden from the extension module; in return, a module is "
|
||||
#~ "built that works on any 3.x version (x>=2) without recompilation."
|
||||
#~ msgstr ""
|
||||
#~ "Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera "
|
||||
#~ "une ABI stable. Les modules d'extension souhaitant utiliser cette API "
|
||||
#~ "(Appellée \"API limitée\") doivent définir ``Py_LIMITED_API``. Des "
|
||||
#~ "spécificités de l'interpréteur sont alors cachées au module, en "
|
||||
#~ "contrepartie le module devient compatible avec toutes les versions de "
|
||||
#~ "Python 3.x (x>=2) sans recompilation."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "In some cases, the stable ABI needs to be extended with new functions. "
|
||||
#~ "Extension modules wishing to use these new APIs need to set "
|
||||
#~ "``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:"
|
||||
#~ "`apiabiversion`) of the minimum Python version they want to support (e.g. "
|
||||
#~ "``0x03030000`` for Python 3.3). Such modules will work on all subsequent "
|
||||
#~ "Python releases, but fail to load (because of missing symbols) on the "
|
||||
#~ "older releases."
|
||||
#~ msgstr ""
|
||||
#~ "Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de "
|
||||
#~ "nouvelles fonctions. Les modules d'extension souhaitant utiliser ces "
|
||||
#~ "nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur "
|
||||
#~ "``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python "
|
||||
#~ "qu'ils souhaitent supporter (voir :ref:`apiabiversion`, par exemple "
|
||||
#~ "``0x03030000`` pour Python 3.3). De tels modules fonctionneront dans "
|
||||
#~ "toutes les versions ultérieures de Python, mais ne pourront pas se "
|
||||
#~ "charger (dû à des symboles manquants) sur les versions plus anciennes."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "As of Python 3.2, the set of functions available to the limited API is "
|
||||
#~ "documented in :pep:`384`. In the C API documentation, API elements that "
|
||||
#~ "are not part of the limited API are marked as \"Not part of the limited "
|
||||
#~ "API.\""
|
||||
#~ msgstr ""
|
||||
#~ "Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée "
|
||||
#~ "est documentée dans la :pep:`384`. Dans la documentation de l'API C, les "
|
||||
#~ "éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant "
|
||||
#~ "pas partie de l'API limitée\" (*\"Not part of the limited API\"*)."
|
||||
msgstr "Pour le moment l’API restreinte inclut les éléments suivants :"
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2019-12-25 17:24+0100\n"
|
||||
"PO-Revision-Date: 2023-02-16 16:53+0100\n"
|
||||
"Last-Translator: Antoine <antoine.venier@hotmail.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: extending/embedding.rst:8
|
||||
msgid "Embedding Python in Another Application"
|
||||
|
@ -421,13 +421,12 @@ msgstr ""
|
|||
"compiler :"
|
||||
|
||||
#: extending/embedding.rst:304
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags "
|
||||
"when linking:"
|
||||
msgstr ""
|
||||
"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de "
|
||||
"l'édition de lien :"
|
||||
"``pythonX.Y-config --ldflags --embed`` vous donnera les drapeaux recommandés "
|
||||
"lors de l'édition de lien :"
|
||||
|
||||
#: extending/embedding.rst:313
|
||||
msgid ""
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-05-12 09:43+0200\n"
|
||||
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
|
||||
"PO-Revision-Date: 2023-02-17 10:44+0100\n"
|
||||
"Last-Translator: CédricM <c.morgantini@free.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: howto/annotations.rst:5
|
||||
msgid "Annotations Best Practices"
|
||||
|
@ -132,6 +132,11 @@ msgid ""
|
|||
"parent's ``__annotations__``. In Python 3.10 and newer, the child class's "
|
||||
"annotations will be an empty dict instead."
|
||||
msgstr ""
|
||||
"Dans les versions antérieures à Python 3.10, l'accès aux ``__annotations__`` "
|
||||
"d'une classe qui n'a pas d'annotation mais dont un parent de cette classe en "
|
||||
"a, aurait renvoyé les ``__annotations__`` de la classe parent. Dans les "
|
||||
"versions 3.10 et plus récentes, le résultat d'annotations de la classe "
|
||||
"enfant est un dictionnaire vide."
|
||||
|
||||
#: howto/annotations.rst:68
|
||||
msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older"
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-10-18 12:27+0200\n"
|
||||
"PO-Revision-Date: 2023-02-16 15:07+0100\n"
|
||||
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: howto/sockets.rst:5
|
||||
msgid "Socket Programming HOWTO"
|
||||
|
@ -481,7 +481,6 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: howto/sockets.rst:262
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, "
|
||||
"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, "
|
||||
|
@ -489,21 +488,14 @@ msgid ""
|
|||
"order, these do nothing, but where the machine is byte-reversed, these swap "
|
||||
"the bytes around appropriately."
|
||||
msgstr ""
|
||||
"Il est parfaitement possible d’envoyer des données binaires sur un "
|
||||
"connecteur. Le gros problème est que toutes les machines n’utilisent pas les "
|
||||
"mêmes formats pour les données binaires. Par exemple, une puce Motorola code "
|
||||
"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et "
|
||||
"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 "
|
||||
"00. Les bibliothèques de connecteurs ont des appels pour convertir des "
|
||||
"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie "
|
||||
"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie "
|
||||
"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du "
|
||||
"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine "
|
||||
"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière "
|
||||
"appropriée."
|
||||
"Les bibliothèques de sockets ont des appels pour convertir les entiers 16 et "
|
||||
"32 bits - ``ntohl, htonl, ntohs, htons`` où « n » signifie *network* "
|
||||
"(réseau) et « h » signifie *host* (hôte), « s » signifie *short* (court) et "
|
||||
"« l » signifie *long*. Lorsque l’ordre du réseau est l’ordre de l’hôte, ils "
|
||||
"ne font rien, mais lorsque la machine fonctionne en ordre inversé, ils "
|
||||
"échangent les octets de manière appropriée."
|
||||
|
||||
#: howto/sockets.rst:268
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"In these days of 64-bit machines, the ASCII representation of binary data is "
|
||||
"frequently smaller than the binary representation. That's because a "
|
||||
|
@ -512,13 +504,13 @@ msgid ""
|
|||
"be 8. Of course, this doesn't fit well with fixed-length messages. "
|
||||
"Decisions, decisions."
|
||||
msgstr ""
|
||||
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des "
|
||||
"De nos jours, avec les machines 64 bits, la représentation *ASCII* des "
|
||||
"données binaires est souvent plus compacte que la représentation binaire. "
|
||||
"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur "
|
||||
"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors "
|
||||
"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas "
|
||||
"très bien avec les messages de longueur fixe. Ah, les décisions, les "
|
||||
"décisions…"
|
||||
"C’est parce que dans un nombre surprenant de cas, tous ces *entiers* ont la "
|
||||
"valeur 0 et parfois 1. La chaîne « 0 » serait codée sur deux octets, alors "
|
||||
"qu'elle le serait sur 8 en tant que binaire 64 bits. Bien sûr, cela ne "
|
||||
"fonctionne pas très bien avec les messages de longueur fixe. C’est une "
|
||||
"affaire de choix."
|
||||
|
||||
#: howto/sockets.rst:277
|
||||
msgid "Disconnecting"
|
||||
|
|
|
@ -6,8 +6,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-05-20 10:21+0200\n"
|
||||
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
|
||||
"PO-Revision-Date: 2023-02-17 10:21+0200\n"
|
||||
"Last-Translator: Mouna Sebti <mounasb@proton.me>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -572,7 +572,7 @@ msgstr ""
|
|||
|
||||
#: library/csv.rst:386
|
||||
msgid "An empty *escapechar* is not allowed."
|
||||
msgstr ""
|
||||
msgstr "Un ``escapechar`` vide n'est pas autorisé."
|
||||
|
||||
#: library/csv.rst:391
|
||||
msgid ""
|
||||
|
@ -604,7 +604,7 @@ msgstr ""
|
|||
|
||||
#: library/csv.rst:407
|
||||
msgid "An empty *quotechar* is not allowed."
|
||||
msgstr ""
|
||||
msgstr "Un ``quotechar`` vide n'est pas autorisé."
|
||||
|
||||
#: library/csv.rst:412
|
||||
msgid ""
|
||||
|
@ -787,7 +787,6 @@ msgid "The corresponding simplest possible writing example is::"
|
|||
msgstr "Le plus simple exemple d'écriture correspondant est ::"
|
||||
|
||||
#: library/csv.rst:543
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Since :func:`open` is used to open a CSV file for reading, the file will by "
|
||||
"default be decoded into unicode using the system default encoding (see :func:"
|
||||
|
@ -796,7 +795,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Puisque :func:`open` est utilisée pour ouvrir un fichier CSV en lecture, le "
|
||||
"fichier sera par défaut décodé vers Unicode en utilisant l'encodage par "
|
||||
"défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier "
|
||||
"défaut (voir :func:`locale.getencoding`). Pour décoder un fichier "
|
||||
"utilisant un encodage différent, utilisez l'argument ``encoding`` de "
|
||||
"*open* ::"
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
|
||||
"PO-Revision-Date: 2018-09-28 13:01+0200\n"
|
||||
"PO-Revision-Date: 2023-02-17 14:44+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.5\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: library/email.examples.rst:4
|
||||
msgid ":mod:`email`: Examples"
|
||||
|
@ -66,7 +66,7 @@ msgid ""
|
|||
"Here's an example of how to unpack a MIME message like the one above, into a "
|
||||
"directory of files:"
|
||||
msgstr ""
|
||||
"Voici un message de comment décomposer un message MIME comme celui ci dessus "
|
||||
"Voici un exemple de comment décomposer un message MIME comme celui ci-dessus "
|
||||
"en tant que fichiers dans un dossier :"
|
||||
|
||||
#: library/email.examples.rst:39
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2021-11-06 21:59+0100\n"
|
||||
"PO-Revision-Date: 2023-02-17 11:56+0100\n"
|
||||
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: library/itertools.rst:2
|
||||
msgid ":mod:`itertools` --- Functions creating iterators for efficient looping"
|
||||
|
@ -54,7 +54,6 @@ msgstr ""
|
|||
"count())``."
|
||||
|
||||
#: library/itertools.rst:33
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"These tools and their built-in counterparts also work well with the high-"
|
||||
"speed functions in the :mod:`operator` module. For example, the "
|
||||
|
@ -437,11 +436,10 @@ msgid ""
|
|||
"`~fractions.Fraction`.)"
|
||||
msgstr ""
|
||||
"Si *func* est renseigné, il doit être une fonction à deux arguments. Les "
|
||||
"éléments de l'entrée *iterable* peuvent être de n'importe quel type "
|
||||
"acceptable comme arguments de *func*. Par exemple, avec l'opération par "
|
||||
"défaut d'addition, les éléments peuvent être de n'importe quel type "
|
||||
"additionnable, :class:`~decimal.Decimal` ou :class:`~fractions.Fraction` "
|
||||
"inclus."
|
||||
"éléments de *iterable* peuvent être de n'importe quel type acceptable comme "
|
||||
"arguments de *func*. Par exemple, avec l'opération par défaut d'addition, "
|
||||
"les éléments peuvent être de n'importe quel type additionnable, :class:"
|
||||
"`~decimal.Decimal` ou :class:`~fractions.Fraction` inclus."
|
||||
|
||||
#: library/itertools.rst:112
|
||||
msgid ""
|
||||
|
@ -462,7 +460,6 @@ msgid "Roughly equivalent to::"
|
|||
msgstr "À peu près équivalent à ::"
|
||||
|
||||
#: library/itertools.rst:136
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"There are a number of uses for the *func* argument. It can be set to :func:"
|
||||
"`min` for a running minimum, :func:`max` for a running maximum, or :func:"
|
||||
|
@ -473,11 +470,7 @@ msgstr ""
|
|||
"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum "
|
||||
"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de "
|
||||
"remboursements peuvent être construits en ajoutant les intérêts et en "
|
||||
"soustrayant les paiements. Des `suites par récurrence <https://fr.wikipedia."
|
||||
"org/wiki/Suite_d%C3%A9finie_par_r%C3%A9currence>`_ de premier ordre peuvent "
|
||||
"être modélisées en en passant la valeur initiale dans *iterable* et en "
|
||||
"n'utilisant que le premier argument de *func*, qui contient le résultat des "
|
||||
"évaluations précédentes ::"
|
||||
"soustrayant les paiements:"
|
||||
|
||||
#: library/itertools.rst:154
|
||||
msgid ""
|
||||
|
@ -521,18 +514,16 @@ msgid "Return *r* length subsequences of elements from the input *iterable*."
|
|||
msgstr "Renvoie les combinaisons de longueur *r* de *iterable*."
|
||||
|
||||
#: library/itertools.rst:244
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The combination tuples are emitted in lexicographic ordering according to "
|
||||
"the order of the input *iterable*. So, if the input *iterable* is sorted, "
|
||||
"the output tuples will be produced in sorted order."
|
||||
msgstr ""
|
||||
"Les combinaisons sont produites dans l'ordre lexicographique dérivé de "
|
||||
"l'ordre des éléments de l'itérable *iterable*. Ainsi, si *iterable* est "
|
||||
"ordonné, les *n*-uplets de combinaison produits le sont aussi."
|
||||
"l'ordre des éléments de *iterable*. Ainsi, si *iterable* est ordonné, les "
|
||||
"*n*-uplets de combinaison produits le sont aussi."
|
||||
|
||||
#: library/itertools.rst:199
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Elements are treated as unique based on their position, not on their value. "
|
||||
"So if the input elements are unique, there will be no repeated values in "
|
||||
|
@ -724,7 +715,6 @@ msgid ":func:`groupby` is roughly equivalent to::"
|
|||
msgstr ":func:`groupby` est à peu près équivalente à ::"
|
||||
|
||||
#: library/itertools.rst:437
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Make an iterator that returns selected elements from the iterable. If "
|
||||
"*start* is non-zero, then elements from the iterable are skipped until start "
|
||||
|
@ -739,12 +729,7 @@ msgstr ""
|
|||
"consécutivement sauf si *step* est plus grand que 1, auquel cas certains "
|
||||
"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue "
|
||||
"jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il "
|
||||
"s'arrête à la position spécifiée. À la différence des tranches standards, :"
|
||||
"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou "
|
||||
"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des "
|
||||
"données dont la structure interne a été aplatie (par exemple, un rapport "
|
||||
"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu "
|
||||
"près similaire à ::"
|
||||
"s'arrête à la position spécifiée."
|
||||
|
||||
#: library/itertools.rst:444
|
||||
msgid ""
|
||||
|
@ -792,18 +777,16 @@ msgstr ""
|
|||
"sont générées."
|
||||
|
||||
#: library/itertools.rst:507
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The permutation tuples are emitted in lexicographic order according to the "
|
||||
"order of the input *iterable*. So, if the input *iterable* is sorted, the "
|
||||
"output tuples will be produced in sorted order."
|
||||
msgstr ""
|
||||
"Les combinaisons sont produites dans l'ordre lexicographique qui provient de "
|
||||
"l'ordre des éléments de l'itérable *iterable*. Ainsi, si *iterable* est "
|
||||
"ordonné, les *n*-uplets de combinaison produits le sont aussi."
|
||||
"l'ordre des éléments de *iterable*. Ainsi, si *iterable* est ordonné, les "
|
||||
"*n*-uplets de combinaison produits le sont aussi."
|
||||
|
||||
#: library/itertools.rst:511
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Elements are treated as unique based on their position, not on their value. "
|
||||
"So if the input elements are unique, there will be no repeated values within "
|
||||
|
@ -887,27 +870,22 @@ msgstr ""
|
|||
"cette fonction ne sert que sur des itérables finis."
|
||||
|
||||
#: library/itertools.rst:592
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Make an iterator that returns *object* over and over again. Runs "
|
||||
"indefinitely unless the *times* argument is specified."
|
||||
msgstr ""
|
||||
"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment "
|
||||
"sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:"
|
||||
"`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée "
|
||||
"avec :func:`zip` pour créer une partie invariante d'un *n*-uplet."
|
||||
"sauf si l'argument *times* est spécifié."
|
||||
|
||||
#: library/itertools.rst:606
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"A common use for *repeat* is to supply a stream of constant values to *map* "
|
||||
"or *zip*:"
|
||||
msgstr ""
|
||||
"Une utilisation courante de *repeat* est de fournir un flux constant de "
|
||||
"valeurs à *map* ou *zip* ::"
|
||||
"valeurs à *map* ou *zip* :"
|
||||
|
||||
#: library/itertools.rst:616
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Make an iterator that computes the function using arguments obtained from "
|
||||
"the iterable. Used instead of :func:`map` when argument parameters are "
|
||||
|
@ -917,9 +895,7 @@ msgstr ""
|
|||
"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis "
|
||||
"l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà "
|
||||
"groupés en *n*-uplets depuis un seul itérable — la donnée a déjà été « pré-"
|
||||
"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à "
|
||||
"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près "
|
||||
"équivalent à ::"
|
||||
"zippée »."
|
||||
|
||||
#: library/itertools.rst:621
|
||||
msgid ""
|
||||
|
@ -941,7 +917,6 @@ msgid "Return *n* independent iterators from a single iterable."
|
|||
msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable."
|
||||
|
||||
#: library/itertools.rst:649
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The following Python code helps explain what *tee* does (although the actual "
|
||||
"implementation is more complex and uses only a single underlying :abbr:`FIFO "
|
||||
|
@ -949,18 +924,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la "
|
||||
"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO "
|
||||
"(premier entré, premier sorti ou *first-in, first-out* en anglais)`."
|
||||
"(premier entré, premier sorti ou *first-in, first-out* en anglais)` :"
|
||||
|
||||
#: library/itertools.rst:668
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Once a :func:`tee` has been created, the original *iterable* should not be "
|
||||
"used anywhere else; otherwise, the *iterable* could get advanced without the "
|
||||
"tee objects being informed."
|
||||
msgstr ""
|
||||
"Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne "
|
||||
"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être "
|
||||
"avancé sans que les objets tee ne soient informés."
|
||||
"Une fois qu’un :func:`tee` a été créé, l’original de *iterable* ne doit être "
|
||||
"utilisé nulle part ailleurs ; sinon *iterable* pourrait être avancé sans que "
|
||||
"les objets *tee* n’en soient informés."
|
||||
|
||||
#: library/itertools.rst:672
|
||||
msgid ""
|
||||
|
@ -1053,7 +1027,6 @@ msgstr ""
|
|||
"disponible dans le Python Package Index ::"
|
||||
|
||||
#: library/itertools.rst:742
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Many of the recipes offer the same high performance as the underlying "
|
||||
"toolset. Superior memory performance is kept by processing elements one at a "
|
||||
|
|
|
@ -5,8 +5,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-10-18 15:52+0200\n"
|
||||
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
|
||||
"PO-Revision-Date: 2023-02-17 14:52+0200\n"
|
||||
"Last-Translator: Mouna Sebti <mounasb@proton.me>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,9 +19,8 @@ msgid ":mod:`re` --- Regular expression operations"
|
|||
msgstr ":mod:`re` — Opérations à base d'expressions rationnelles"
|
||||
|
||||
#: library/re.rst:10
|
||||
#, fuzzy
|
||||
msgid "**Source code:** :source:`Lib/re/`"
|
||||
msgstr "**Code source :** :source:`Lib/re.py`"
|
||||
msgstr "**Code source :** :source:`Lib/re/`"
|
||||
|
||||
#: library/re.rst:14
|
||||
msgid ""
|
||||
|
@ -199,7 +198,6 @@ msgstr ""
|
|||
"interprétées."
|
||||
|
||||
#: library/re.rst:90
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Repetition operators or quantifiers (``*``, ``+``, ``?``, ``{m,n}``, etc) "
|
||||
"cannot be directly nested. This avoids ambiguity with the non-greedy "
|
||||
|
@ -208,7 +206,7 @@ msgid ""
|
|||
"For example, the expression ``(?:a{6})*`` matches any multiple of six "
|
||||
"``'a'`` characters."
|
||||
msgstr ""
|
||||
"Les caractères de répétition (``*``, ``+``, ``?``, ``{m,n}``, etc.) ne "
|
||||
"Les caractères de répétition ou quantificateurs (``*``, ``+``, ``?``, ``{m,n}``, etc.) ne "
|
||||
"peuvent être directement imbriqués. Cela empêche l'ambiguïté avec le suffixe "
|
||||
"modificateur non gourmand ``?`` et avec les autres modificateurs dans "
|
||||
"d'autres implémentations. Pour appliquer une seconde répétition à une "
|
||||
|
@ -315,7 +313,6 @@ msgid "``*?``, ``+?``, ``??``"
|
|||
msgstr "``*?``, ``+?``, ``??``"
|
||||
|
||||
#: library/re.rst:149
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The ``'*'``, ``'+'``, and ``'?'`` quantifiers are all :dfn:`greedy`; they "
|
||||
"match as much text as possible. Sometimes this behaviour isn't desired; if "
|
||||
|
@ -325,19 +322,18 @@ msgid ""
|
|||
"characters as possible will be matched. Using the RE ``<.*?>`` will match "
|
||||
"only ``'<a>'``."
|
||||
msgstr ""
|
||||
"Les qualificateurs ``'*'``, ``'+'`` et ``'?'`` sont tous :dfn:`greedy` "
|
||||
"Les quantificateurs ``'*'``, ``'+'`` et ``'?'`` sont tous :dfn:`greedy` "
|
||||
"(gourmands) ; ils valident autant de texte que possible. Parfois ce "
|
||||
"comportement n'est pas désiré ; si l'expression rationnelle ``<.*>`` est "
|
||||
"testée avec la chaîne ``'<a> b <c>'``, cela correspondra à la chaîne "
|
||||
"entière, et non juste à ``'<a>'``. Ajouter ``?`` derrière le qualificateur "
|
||||
"entière, et non juste à ``'<a>'``. Ajouter ``?`` derrière le quantificateur "
|
||||
"lui fait réaliser l'opération de façon :dfn:`non-greedy` (ou :dfn:"
|
||||
"`minimal`) ; le *moins* de caractères possibles seront validés. Utiliser "
|
||||
"l'expression rationnelle ``<.*?>`` validera uniquement ``'<a>'``."
|
||||
|
||||
#: library/re.rst:179
|
||||
#, fuzzy
|
||||
msgid "``*+``, ``++``, ``?+``"
|
||||
msgstr "``*?``, ``+?``, ``??``"
|
||||
msgstr "``*+``, ``++``, ``?+``"
|
||||
|
||||
#: library/re.rst:163
|
||||
msgid ""
|
||||
|
@ -400,7 +396,6 @@ msgid "``{m,n}?``"
|
|||
msgstr "``{m,n}?``"
|
||||
|
||||
#: library/re.rst:199
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Causes the resulting RE to match from *m* to *n* repetitions of the "
|
||||
"preceding RE, attempting to match as *few* repetitions as possible. This is "
|
||||
|
@ -408,16 +403,15 @@ msgid ""
|
|||
"character string ``'aaaaaa'``, ``a{3,5}`` will match 5 ``'a'`` characters, "
|
||||
"while ``a{3,5}?`` will only match 3 characters."
|
||||
msgstr ""
|
||||
"Fait valider par l'expression rationnelle résultante entre *m* et *n* "
|
||||
"Fait valider l'expression rationnelle résultante entre *m* et *n* "
|
||||
"répétitions de l'expression qui précède, cherchant à en valider le moins "
|
||||
"possible. Il s'agit de la version non gourmande du précédent qualificateur. "
|
||||
"possible. Il s'agit de la version non gourmande du précédent quantificateur. "
|
||||
"Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, ``a{3,5}`` "
|
||||
"trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en trouvera que 3."
|
||||
|
||||
#: library/re.rst:218
|
||||
#, fuzzy
|
||||
msgid "``{m,n}+``"
|
||||
msgstr "``{m,n}``"
|
||||
msgstr "``{m,n}+``"
|
||||
|
||||
#: library/re.rst:206
|
||||
#, fuzzy
|
||||
|
@ -434,7 +428,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Fait valider par l'expression rationnelle résultante entre *m* et *n* "
|
||||
"répétitions de l'expression qui précède, cherchant à en valider le moins "
|
||||
"possible. Il s'agit de la version non gourmande du précédent qualificateur. "
|
||||
"possible. Il s'agit de la version non gourmande du précédent quantificateur. "
|
||||
"Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, ``a{3,5}`` "
|
||||
"trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en trouvera que 3."
|
||||
|
||||
|
@ -679,9 +673,8 @@ msgstr ""
|
|||
"l'expression."
|
||||
|
||||
#: library/re.rst:341
|
||||
#, fuzzy
|
||||
msgid "This construction can only be used at the start of the expression."
|
||||
msgstr "Correspond uniquement au début d'une chaîne de caractères."
|
||||
msgstr "Cette construction ne peut être utilisée qu'au début d'une chaîne de caractères."
|
||||
|
||||
#: library/re.rst:350
|
||||
msgid "``(?:...)``"
|
||||
|
@ -755,9 +748,8 @@ msgstr ""
|
|||
"groupe."
|
||||
|
||||
#: library/re.rst:391
|
||||
#, fuzzy
|
||||
msgid "``(?>...)``"
|
||||
msgstr "``(?...)``"
|
||||
msgstr "``(?>...)``"
|
||||
|
||||
#: library/re.rst:379
|
||||
msgid ""
|
||||
|
@ -848,7 +840,8 @@ msgstr "``\\g<1>``"
|
|||
|
||||
#: library/re.rst:420
|
||||
msgid "Group names containing non-ASCII characters in bytes patterns."
|
||||
msgstr ""
|
||||
msgstr "Les noms de groupe qui contiennent des caractères non-ASCII"
|
||||
"dans des motifs d'octets (type *bytes*)."
|
||||
|
||||
#: library/re.rst:427
|
||||
msgid "``(?P=name)``"
|
||||
|
@ -977,7 +970,8 @@ msgstr ""
|
|||
|
||||
#: library/re.rst:495
|
||||
msgid "Group *id* containing anything except ASCII digits."
|
||||
msgstr ""
|
||||
msgstr "Identifiant ``id`` de groupe contenant autre chose que des chiffres"
|
||||
"ASCII."
|
||||
|
||||
#: library/re.rst:499
|
||||
msgid ""
|
||||
|
@ -1168,15 +1162,14 @@ msgid "``\\w``"
|
|||
msgstr "``\\w``"
|
||||
|
||||
#: library/re.rst:592
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Matches Unicode word characters; this includes alphanumeric characters (as "
|
||||
"defined by :meth:`str.isalnum`) as well as the underscore (``_``). If the :"
|
||||
"const:`ASCII` flag is used, only ``[a-zA-Z0-9_]`` is matched."
|
||||
msgstr ""
|
||||
"Valide les caractères Unicode de mot ; cela inclut la plupart des caractères "
|
||||
"qui peuvent être compris dans un mot d'une quelconque langue, aussi bien que "
|
||||
"les nombres et les tirets bas. Si l'option :const:`ASCII` est utilisée, "
|
||||
"Valide les caractères Unicode de mot ; cela inclut les caractères alphanumériques "
|
||||
"(tels que définis par :meth:`str.isalnum`), ainsi que les tirets bas(``_``). "
|
||||
"Si l'option :const:`ASCII` est utilisée, "
|
||||
"seuls les caractères de la classe ``[a-zA-Z0-9_]`` sont validés."
|
||||
|
||||
#: library/re.rst:597
|
||||
|
@ -1454,7 +1447,6 @@ msgstr ""
|
|||
"l'exception du saut de ligne. Correspond à l'option de groupe ``(?s)``."
|
||||
|
||||
#: library/re.rst:782
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This flag allows you to write regular expressions that look nicer and are "
|
||||
"more readable by allowing you to visually separate logical sections of the "
|
||||
|
@ -1470,9 +1462,10 @@ msgstr ""
|
|||
"présentent mieux et sont plus lisibles en vous permettant de séparer "
|
||||
"visuellement les sections logiques du motif et d'ajouter des commentaires. "
|
||||
"Les caractères d'espacement à l'intérieur du motif sont ignorés, sauf à "
|
||||
"l'intérieur des classes de caractères ou quand précédés d'un *backslash* non "
|
||||
"échappé, ou dans des séquences comme ``*?``, ``(?:`` or ``(?P<...>``. Quand "
|
||||
"une ligne contient un ``#`` qui n'est pas dans une classe de caractères ou "
|
||||
"l'intérieur des classes de caractères ou quand ils sont précédés d'un *backslash* "
|
||||
"non échappé, ou dans des séquences comme ``*?``, ``(?:`` ou ``(?P<...>``."
|
||||
"Par exemple, ``(? :`` et ``* ?`` ne sont pas autorisés. Quand une ligne"
|
||||
"contient un ``#`` qui n'est ni dans une classe de caractères, ni "
|
||||
"précédé d'un *backslash* non échappé, tous les caractères depuis le ``#`` le "
|
||||
"plus à gauche jusqu'à la fin de la ligne sont ignorés."
|
||||
|
||||
|
@ -1807,10 +1800,12 @@ msgstr ""
|
|||
"adjacentes à une correspondance non vide précédente."
|
||||
|
||||
#: library/re.rst:1016
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Group *id* containing anything except ASCII digits. Group names containing "
|
||||
"non-ASCII characters in bytes replacement strings."
|
||||
msgstr ""
|
||||
msgstr "Identifiant de groupe contenant autre chose que des chiffres"
|
||||
"ASCII."
|
||||
|
||||
#: library/re.rst:1023
|
||||
msgid ""
|
||||
|
@ -2481,21 +2476,25 @@ msgstr "search() vs. match()"
|
|||
msgid ""
|
||||
"Python offers different primitive operations based on regular expressions:"
|
||||
msgstr ""
|
||||
"Python offre différentes opérations primitives basées sur des expressions"
|
||||
"régulières."
|
||||
|
||||
#: library/re.rst:1566
|
||||
#, fuzzy
|
||||
msgid ":func:`re.match` checks for a match only at the beginning of the string"
|
||||
msgstr "Correspond uniquement à la fin d'une chaîne de caractères."
|
||||
msgstr ":func:`re.match` cherche une correspondance uniquement au début de la"
|
||||
"chaîne de caractères"
|
||||
|
||||
#: library/re.rst:1567
|
||||
msgid ""
|
||||
":func:`re.search` checks for a match anywhere in the string (this is what "
|
||||
"Perl does by default)"
|
||||
msgstr ""
|
||||
msgstr ":func:`re.search` cherche une correspondance n'importe où dans"
|
||||
"la chaîne de caractères (ce que fait Perl par défaut)"
|
||||
|
||||
#: library/re.rst:1569
|
||||
msgid ":func:`re.fullmatch` checks for entire string to be a match"
|
||||
msgstr ""
|
||||
msgstr ":func:`re.fullmatch` cherche une correspondance avec l'intégralité"
|
||||
"de la chaîne de caractères."
|
||||
|
||||
#: library/re.rst:1581
|
||||
msgid ""
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-12 21:25+0100\n"
|
||||
"PO-Revision-Date: 2019-03-26 15:55+0100\n"
|
||||
"PO-Revision-Date: 2023-02-17 18:06+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: library/sqlite3.rst:2
|
||||
msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases"
|
||||
|
@ -52,27 +52,35 @@ msgstr ""
|
|||
|
||||
#: library/sqlite3.rst:34
|
||||
msgid "This document includes four main sections:"
|
||||
msgstr ""
|
||||
msgstr "Ce document inclus 4 sections principales :"
|
||||
|
||||
#: library/sqlite3.rst:36
|
||||
msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module."
|
||||
msgstr ""
|
||||
":ref:`tutoriel sqlite3 <sqlite3-tutorial>` explique comment utiliser le "
|
||||
"module :mod:`!sqlite3`."
|
||||
|
||||
#: library/sqlite3.rst:37
|
||||
msgid ""
|
||||
":ref:`sqlite3-reference` describes the classes and functions this module "
|
||||
"defines."
|
||||
msgstr ""
|
||||
":ref:`référence sqlite3 <sqlite3-reference>` décrit les classes et les "
|
||||
"fonctions que ce module définit."
|
||||
|
||||
#: library/sqlite3.rst:39
|
||||
msgid ":ref:`sqlite3-howtos` details how to handle specific tasks."
|
||||
msgstr ""
|
||||
":ref:`guide sqlite3 <sqlite3-howtos>` détaille comment gérer des tâches "
|
||||
"spécifiques."
|
||||
|
||||
#: library/sqlite3.rst:40
|
||||
msgid ""
|
||||
":ref:`sqlite3-explanation` provides in-depth background on transaction "
|
||||
"control."
|
||||
msgstr ""
|
||||
":ref:`explications sqlite3 <sqlite3-explanation>` propose un contexte "
|
||||
"détaillé du contrôle de transaction."
|
||||
|
||||
#: library/sqlite3.rst:47
|
||||
msgid "https://www.sqlite.org"
|
||||
|
@ -104,7 +112,7 @@ msgstr "PEP écrite par Marc-André Lemburg."
|
|||
|
||||
#: library/sqlite3.rst:66
|
||||
msgid "Tutorial"
|
||||
msgstr ""
|
||||
msgstr "Tutoriel"
|
||||
|
||||
#: library/sqlite3.rst:68
|
||||
msgid ""
|
||||
|
@ -112,6 +120,10 @@ msgid ""
|
|||
"basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding "
|
||||
"of database concepts, including `cursors`_ and `transactions`_."
|
||||
msgstr ""
|
||||
"Dans ce tutoriel, vous allez créer une base de données des films des Monty "
|
||||
"Python en utilisant les fonctionnalités de base de :mod:`!sqlite3`. Cela "
|
||||
"nécessite une compréhension élémentaire des concepts des bases de données, "
|
||||
"notamment les `curseurs`_ et les `transactions`_."
|
||||
|
||||
#: library/sqlite3.rst:73
|
||||
msgid ""
|
||||
|
@ -120,12 +132,19 @@ msgid ""
|
|||
"create a connection to the database :file:`tutorial.db` in the current "
|
||||
"working directory, implicitly creating it if it does not exist:"
|
||||
msgstr ""
|
||||
"Tout d’abord, nous devons créer une nouvelle base de données et ouvrir une "
|
||||
"connexion à la base de données pour permettre à :mod:`!sqlite3` de "
|
||||
"travailler avec elle. Appelez :func:`sqlite3.connect` pour créer une "
|
||||
"connexion à la base de données :file:`tutorial.db` dans le répertoire de "
|
||||
"travail actuel, en la créant implicitement si elle n’existe pas :"
|
||||
|
||||
#: library/sqlite3.rst:84
|
||||
msgid ""
|
||||
"The returned :class:`Connection` object ``con`` represents the connection to "
|
||||
"the on-disk database."
|
||||
msgstr ""
|
||||
"L’objet :class:`Connection` renvoyé — ``con`` — représente la connexion à la "
|
||||
"base de données sur disque."
|
||||
|
||||
#: library/sqlite3.rst:87
|
||||
msgid ""
|
||||
|
@ -133,6 +152,9 @@ msgid ""
|
|||
"will need to use a database cursor. Call :meth:`con.cursor() <Connection."
|
||||
"cursor>` to create the :class:`Cursor`:"
|
||||
msgstr ""
|
||||
"Afin d’exécuter les instructions SQL et de récupérer les résultats des "
|
||||
"requêtes SQL, nous devrons utiliser un curseur de base de données. Appelez :"
|
||||
"meth:`con.cursor() <Connection.cursor>` pour créer la :class:`Cursor` :"
|
||||
|
||||
#: library/sqlite3.rst:95
|
||||
msgid ""
|
||||
|
@ -143,6 +165,14 @@ msgid ""
|
|||
"types is optional. Execute the ``CREATE TABLE`` statement by calling :meth:"
|
||||
"`cur.execute(...) <Cursor.execute>`:"
|
||||
msgstr ""
|
||||
"Maintenant que nous avons une connexion à la base de données et un curseur, "
|
||||
"nous pouvons créer une table ``movie`` avec des colonnes pour le titre, "
|
||||
"l’année de sortie et la note de la critique. Pour plus de simplicité, nous "
|
||||
"pouvons simplement utiliser les noms des colonnes dans la déclaration de la "
|
||||
"table — grâce à la fonctionnalité de `typage flexible <flexible typing_>`_ "
|
||||
"de SQLite, spécifier les types de données est facultatif. Exécutez "
|
||||
"l’instruction ``CREATE TABLE`` en appelant :meth:`cur.execute(…) <Cursor."
|
||||
"execute>` :"
|
||||
|
||||
#: library/sqlite3.rst:111
|
||||
msgid ""
|
||||
|
@ -153,6 +183,13 @@ msgid ""
|
|||
"execute>`, assign the result to ``res``, and call :meth:`res.fetchone() "
|
||||
"<Cursor.fetchone>` to fetch the resulting row:"
|
||||
msgstr ""
|
||||
"Nous pouvons vérifier que la nouvelle table a été créée en interrogeant la "
|
||||
"table ``sqlite_master`` intégrée à SQLite, qui devrait maintenant contenir "
|
||||
"une entrée pour la définition de la table ``movie`` (voir `le schéma Table "
|
||||
"<The Schema Table_>`_ pour plus de détails). Exécutez cette requête en "
|
||||
"appelant :meth:`cur.execute(…) <Cursor.execute>`, affectez le résultat à "
|
||||
"``res``, et appelez :meth:`res.fetchone() <Cursor.fetchone>` pour récupérer "
|
||||
"la ligne résultante :"
|
||||
|
||||
#: library/sqlite3.rst:125
|
||||
msgid ""
|
||||
|
@ -160,6 +197,10 @@ msgid ""
|
|||
"`tuple` containing the table's name. If we query ``sqlite_master`` for a non-"
|
||||
"existent table ``spam``, :meth:`!res.fetchone()` will return ``None``:"
|
||||
msgstr ""
|
||||
"Nous pouvons voir que la table a été créée, puisque la requête retourne un :"
|
||||
"class:`tuple` contenant le nom de la table. Si nous interrogeons "
|
||||
"``sqlite_master`` pour une table ``spam`` inexistante, :meth:`!res."
|
||||
"fetchone()`` retournera ``None`` :"
|
||||
|
||||
#: library/sqlite3.rst:136
|
||||
msgid ""
|
||||
|
@ -167,6 +208,9 @@ msgid ""
|
|||
"``INSERT`` statement, once again by calling :meth:`cur.execute(...) <Cursor."
|
||||
"execute>`:"
|
||||
msgstr ""
|
||||
"Maintenant, ajoutez deux lignes de données en tant que littéraux SQL en "
|
||||
"exécutant une instruction ``INSERT``, une fois encore en appelant :meth:`cur."
|
||||
"execute(…) <Cursor.execute>` :"
|
||||
|
||||
#: library/sqlite3.rst:148
|
||||
msgid ""
|
||||
|
@ -175,6 +219,11 @@ msgid ""
|
|||
"controlling-transactions` for details). Call :meth:`con.commit() <Connection."
|
||||
"commit>` on the connection object to commit the transaction:"
|
||||
msgstr ""
|
||||
"L’instruction ``INSERT`` ouvre implicitement une transaction, qui doit être "
|
||||
"validée avant que les modifications ne soient enregistrées dans la base de "
|
||||
"données (voir :ref:`contrôle des transactions SQL <sqlite3-controlling-"
|
||||
"transactions>` pour plus de détails). Appelez :meth:`con.commit() "
|
||||
"<Connection.commit>` sur l’objet de connexion pour valider la transaction :"
|
||||
|
||||
#: library/sqlite3.rst:158
|
||||
msgid ""
|
||||
|
@ -183,18 +232,27 @@ msgid ""
|
|||
"assign the result to ``res``, and call :meth:`res.fetchall() <Cursor."
|
||||
"fetchall>` to return all resulting rows:"
|
||||
msgstr ""
|
||||
"Nous pouvons vérifier que les données ont été insérées correctement en "
|
||||
"exécutant une requête ``SELECT``. Utilisez la désormais familière :meth:`cur."
|
||||
"execute(…) <Cursor.execute>` pour affecter le résultat à ``res``, et "
|
||||
"appelez :meth:`res.fetchall() <Cursor.fetchall>` pour retourner toutes les "
|
||||
"lignes résultantes :"
|
||||
|
||||
#: library/sqlite3.rst:170
|
||||
msgid ""
|
||||
"The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each "
|
||||
"containing that row's ``score`` value."
|
||||
msgstr ""
|
||||
"Le résultat est une :class:`liste <list>` de deux :class:`!tuple`\\s, une "
|
||||
"par ligne, chacun contenant la valeur ``score`` de cette ligne."
|
||||
|
||||
#: library/sqlite3.rst:173
|
||||
msgid ""
|
||||
"Now, insert three more rows by calling :meth:`cur.executemany(...) <Cursor."
|
||||
"executemany>`:"
|
||||
msgstr ""
|
||||
"Maintenant, insérez trois lignes supplémentaires en appelant :meth:`cur."
|
||||
"executemany(…) <Cursor.executemany>` :"
|
||||
|
||||
#: library/sqlite3.rst:186
|
||||
msgid ""
|
||||
|
@ -203,18 +261,28 @@ msgid ""
|
|||
"to bind Python values to SQL statements, to avoid `SQL injection attacks`_ "
|
||||
"(see :ref:`sqlite3-placeholders` for more details)."
|
||||
msgstr ""
|
||||
"Remarquez que les placeholders ``?`` sont utilisés pour lier les ``data`` à "
|
||||
"la requête. Utilisez toujours les placeholders au lieu d’:ref:`expressions "
|
||||
"formatées <tut-formatting>` pour lier les valeurs Python aux instructions "
|
||||
"SQL, afin d’éviter les `injections SQL`_ (voir :ref:`placeholder SQL "
|
||||
"<sqlite3-placeholders>` pour plus de détails)."
|
||||
|
||||
#: library/sqlite3.rst:192
|
||||
msgid ""
|
||||
"We can verify that the new rows were inserted by executing a ``SELECT`` "
|
||||
"query, this time iterating over the results of the query:"
|
||||
msgstr ""
|
||||
"Nous pouvons vérifier que les nouvelles lignes ont été insérées en exécutant "
|
||||
"une requête ``SELECT``, cette fois-ci en itérant sur les résultats de la "
|
||||
"requête :"
|
||||
|
||||
#: library/sqlite3.rst:206
|
||||
msgid ""
|
||||
"Each row is a two-item :class:`tuple` of ``(year, title)``, matching the "
|
||||
"columns selected in the query."
|
||||
msgstr ""
|
||||
"Chaque ligne est un :class:`tuple` de deux éléments ``(année, titre)``, "
|
||||
"correspondant aux colonnes sélectionnées dans la requête."
|
||||
|
||||
#: library/sqlite3.rst:209
|
||||
msgid ""
|
||||
|
@ -222,64 +290,76 @@ msgid ""
|
|||
"`con.close() <Connection.close>` to close the existing connection, opening a "
|
||||
"new one, creating a new cursor, then querying the database:"
|
||||
msgstr ""
|
||||
"Enfin, vérifiez que la base de données a été écrite sur le disque en "
|
||||
"appelant :meth:`con.close() <Connection.close>` pour fermer la connexion "
|
||||
"existante, en ouvrir une nouvelle, créer un nouveau curseur, puis interroger "
|
||||
"la base de données :"
|
||||
|
||||
#: library/sqlite3.rst:224
|
||||
msgid ""
|
||||
"You've now created an SQLite database using the :mod:`!sqlite3` module, "
|
||||
"inserted data and retrieved values from it in multiple ways."
|
||||
msgstr ""
|
||||
"Vous avez maintenant créé une base de données SQLite à l’aide du module :mod:"
|
||||
"`!sqlite3`, inséré des données et récupéré des valeurs de plusieurs façons."
|
||||
|
||||
#: library/sqlite3.rst:236
|
||||
msgid ":ref:`sqlite3-howtos` for further reading:"
|
||||
msgstr ""
|
||||
msgstr ":ref:`guide sqlite3 <sqlite3-howtos>` pour une lecture plus poussée:"
|
||||
|
||||
#: library/sqlite3.rst:238
|
||||
msgid ":ref:`sqlite3-placeholders`"
|
||||
msgstr ""
|
||||
msgstr ":ref:`placeholders sqlite3 <sqlite3-placeholders>`"
|
||||
|
||||
#: library/sqlite3.rst:239
|
||||
msgid ":ref:`sqlite3-adapters`"
|
||||
msgstr ""
|
||||
msgstr ":ref:`adaptateurs sqlite3 <sqlite3-adapters>`"
|
||||
|
||||
#: library/sqlite3.rst:240
|
||||
msgid ":ref:`sqlite3-converters`"
|
||||
msgstr ""
|
||||
msgstr ":ref:`convertisseurs sqlite3 <sqlite3-converters>`"
|
||||
|
||||
#: library/sqlite3.rst:557
|
||||
msgid ":ref:`sqlite3-connection-context-manager`"
|
||||
msgstr ""
|
||||
":ref:`gestionnaire de contexte de connexion sqlite3 <sqlite3-connection-"
|
||||
"context-manager>`"
|
||||
|
||||
#: library/sqlite3.rst:242
|
||||
msgid ":ref:`sqlite3-howto-row-factory`"
|
||||
msgstr ""
|
||||
msgstr ":ref:`guide de fabrique de ligne sqlite3 <sqlite3-howto-row-factory>`"
|
||||
|
||||
#: library/sqlite3.rst:244
|
||||
msgid ""
|
||||
":ref:`sqlite3-explanation` for in-depth background on transaction control."
|
||||
msgstr ""
|
||||
":ref:`explications sqlite3 <sqlite3-explanation>` pour un contexte détaillé "
|
||||
"du contrôle de transaction."
|
||||
|
||||
#: library/sqlite3.rst:249
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "Références"
|
||||
|
||||
#: library/sqlite3.rst:257
|
||||
#, fuzzy
|
||||
msgid "Module functions"
|
||||
msgstr "Fonctions et constantes du module"
|
||||
msgstr "Fonctions du module"
|
||||
|
||||
#: library/sqlite3.rst:264
|
||||
msgid "Open a connection to an SQLite database."
|
||||
msgstr ""
|
||||
msgstr "Ouvrez une connexion à une base de données SQLite."
|
||||
|
||||
#: library/sqlite3.rst:0
|
||||
msgid "Parameters"
|
||||
msgstr ""
|
||||
msgstr "Paramètres"
|
||||
|
||||
#: library/sqlite3.rst:266
|
||||
msgid ""
|
||||
"The path to the database file to be opened. Pass ``\":memory:\"`` to open a "
|
||||
"connection to a database that is in RAM instead of on disk."
|
||||
msgstr ""
|
||||
"Le chemin d’accès au fichier de la base de données à ouvrir. Passez ``\":"
|
||||
"memory:\"`` pour ouvrir une connexion à une base de données qui est dans la "
|
||||
"RAM plutôt que sur le disque."
|
||||
|
||||
#: library/sqlite3.rst:272
|
||||
msgid ""
|
||||
|
@ -288,6 +368,11 @@ msgid ""
|
|||
"transaction to modify the database, it will be locked until that transaction "
|
||||
"is committed. Default five seconds."
|
||||
msgstr ""
|
||||
"Le temps (en secondes) que la connexion doit attendre avant de lever une "
|
||||
"exception, si la base de données est verrouillée par une autre connexion. Si "
|
||||
"une autre connexion ouvre une transaction pour modifier la base de données, "
|
||||
"celle-ci sera verrouillée jusqu’à ce que cette transaction soit validée. Par "
|
||||
"défaut, cinq secondes."
|
||||
|
||||
#: library/sqlite3.rst:279
|
||||
msgid ""
|
||||
|
@ -301,6 +386,17 @@ msgid ""
|
|||
"class:`str` will be returned instead. By default (``0``), type detection is "
|
||||
"disabled."
|
||||
msgstr ""
|
||||
"Contrôle si et comment les types de données non :ref:`nativement pris en "
|
||||
"charge par SQLite <sqlite3-types>` sont recherchés pour être convertis en "
|
||||
"types Python, en utilisant les convertisseurs enregistrés avec :func:"
|
||||
"`register_converter`. Définissez-le à n’importe quelle combinaison (en "
|
||||
"utilisant ``|``, opérateurs bit-à-bit OR) de :const:`PARSE_DECLTYPES` et :"
|
||||
"const:`PARSE_COLNAMES` pour activer ceci. Les noms de colonnes ont la "
|
||||
"priorité sur les types déclarés si les deux drapeaux sont activés. Les types "
|
||||
"ne peuvent pas être détectés pour les champs générés (par exemple "
|
||||
"``max(data)``), même si le paramètre *detect_types* est activé ; :class:"
|
||||
"`str` sera retourné à la place. Par défaut (``0``), la détection des types "
|
||||
"est désactivée."
|
||||
|
||||
#: library/sqlite3.rst:293
|
||||
msgid ""
|
||||
|
@ -310,6 +406,12 @@ msgid ""
|
|||
"opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` "
|
||||
"for more."
|
||||
msgstr ""
|
||||
"L’attribut :attr:`~Connection.isolation_level` de la connexion, contrôlant "
|
||||
"si et comment les transactions sont ouvertes implicitement. Peut être "
|
||||
"``\"DEFERRED\"`` (par défaut), ``\"EXCLUSIVE\"`` ou ``\"IMMEDIATE\"`` ; ou "
|
||||
"``None`` pour désactiver l’ouverture implicite des transactions. Voir :ref:"
|
||||
"`contrôle des transactions sqlite3 <sqlite3-controlling-transactions>` pour "
|
||||
"en savoir plus."
|
||||
|
||||
#: library/sqlite3.rst:301
|
||||
msgid ""
|
||||
|
@ -319,18 +421,29 @@ msgid ""
|
|||
"operations may need to be serialized by the user to avoid data corruption. "
|
||||
"See :attr:`threadsafety` for more information."
|
||||
msgstr ""
|
||||
"Si ``True`` (par défaut), :exc:`ProgrammingError` sera levée si la connexion "
|
||||
"à la base de données est utilisée par un thread autre que celui qui l’a "
|
||||
"créée. Si ``False``, la connexion peut être utilisée par plusieurs threads ; "
|
||||
"les opérations d’écriture devront peut-être être sérialisées par "
|
||||
"l’utilisateur pour éviter la corruption des données. Voir :attr:`sécurité "
|
||||
"des threads <threadsafety>` pour plus d’informations."
|
||||
|
||||
#: library/sqlite3.rst:310
|
||||
msgid ""
|
||||
"A custom subclass of :class:`Connection` to create the connection with, if "
|
||||
"not the default :class:`Connection` class."
|
||||
msgstr ""
|
||||
"Une sous-classe personnalisée de :class:`Connection` pour créer la "
|
||||
"connexion, si ce n’est pas la classe par défaut :class:`Connection`."
|
||||
|
||||
#: library/sqlite3.rst:314
|
||||
msgid ""
|
||||
"The number of statements that :mod:`!sqlite3` should internally cache for "
|
||||
"this connection, to avoid parsing overhead. By default, 128 statements."
|
||||
msgstr ""
|
||||
"Le nombre d’instructions que :mod:`!sqlite3` doit mettre en cache en interne "
|
||||
"pour cette connexion, afin d’éviter les surcharges d’analyse. Par défaut, "
|
||||
"128 instructions."
|
||||
|
||||
#: library/sqlite3.rst:319
|
||||
msgid ""
|
||||
|
@ -340,6 +453,12 @@ msgid ""
|
|||
"absolute. The query string allows passing parameters to SQLite, enabling "
|
||||
"various :ref:`sqlite3-uri-tricks`."
|
||||
msgstr ""
|
||||
"Si elle a pour valeur ``True``, la base de données est interprétée comme un :"
|
||||
"abbr:`URI (Uniform Resource Identifier)` avec un chemin d’accès au fichier "
|
||||
"et une chaîne de requête facultative. La partie schéma *doit* être ``\"file:"
|
||||
"\"``, et le chemin peut être relatif ou absolu. La chaîne d’interrogation "
|
||||
"permet de passer des paramètres à SQLite, ce qui permet d’activer diverses :"
|
||||
"ref:`astuces d’URI sqlite3 <sqlite3-uri-tricks>`."
|
||||
|
||||
#: library/sqlite3.rst:0
|
||||
#, fuzzy
|
||||
|
@ -366,6 +485,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"*database* can now also be a :term:`path-like object`, not only a string."
|
||||
msgstr ""
|
||||
"*database* peut maintenant aussi être un :term:`objet de type chemin <path-"
|
||||
"like object>`, et pas seulement une chaîne de caractères."
|
||||
|
||||
#: library/sqlite3.rst:339
|
||||
msgid "The ``sqlite3.connect/handle`` auditing event."
|
||||
|
@ -378,9 +499,13 @@ msgid ""
|
|||
"performed, other than checking that there are no unclosed string literals "
|
||||
"and the statement is terminated by a semicolon."
|
||||
msgstr ""
|
||||
"Renvoie ``True`` si la déclaration de la chaîne semble contenir une ou "
|
||||
"plusieurs déclarations SQL complètes. Aucune vérification syntaxique ou "
|
||||
"analyse syntaxique d’aucune sorte n’est effectuée, si ce n’est la "
|
||||
"vérification qu’il n’y a pas de chaîne littérale non fermée et que "
|
||||
"l’instruction se termine par un point-virgule."
|
||||
|
||||
#: library/sqlite3.rst:350
|
||||
#, fuzzy
|
||||
msgid "For example:"
|
||||
msgstr "Exemple :"
|
||||
|
||||
|
@ -390,6 +515,10 @@ msgid ""
|
|||
"entered text seems to form a complete SQL statement, or if additional input "
|
||||
"is needed before calling :meth:`~Cursor.execute`."
|
||||
msgstr ""
|
||||
"Cette fonction peut être utile pendant la saisie en ligne de commande pour "
|
||||
"déterminer si le texte saisi semble former une instruction SQL complète, ou "
|
||||
"si une saisie supplémentaire est nécessaire avant d’appeler :meth:`~Cursor."
|
||||
"execute`."
|
||||
|
||||
#: library/sqlite3.rst:365
|
||||
msgid ""
|
||||
|
@ -399,12 +528,22 @@ msgid ""
|
|||
"*flag* set to ``True``. Afterwards, you will get tracebacks from callbacks "
|
||||
"on :data:`sys.stderr`. Use ``False`` to disable the feature again."
|
||||
msgstr ""
|
||||
"Activer ou désactiver les traces des fonctions de rappel. Par défaut, vous "
|
||||
"n’obtiendrez pas de traces de pile d’appels dans les fonctions définies par "
|
||||
"l’utilisateur, les agrégats, les convertisseurs, les fonctions de rappel des "
|
||||
"mécanismes d’autorisation, etc. Si vous voulez les déboguer, vous pouvez "
|
||||
"appeler cette fonction avec *flag* à ``True``. Ensuite, vous obtiendrez les "
|
||||
"traces des fonctions de rappel sur :data:`sys.stderr`. Utilisez ``False`` "
|
||||
"pour désactiver à nouveau cette fonctionnalité."
|
||||
|
||||
#: library/sqlite3.rst:372
|
||||
msgid ""
|
||||
"Register an :func:`unraisable hook handler <sys.unraisablehook>` for an "
|
||||
"improved debug experience:"
|
||||
msgstr ""
|
||||
"Enregistrez un :func:`gestionnaire de point d’entrée *non levable* <sys."
|
||||
"unraisablehook>` (*unraisable* en anglais) pour une expérience de débogage "
|
||||
"améliorée :"
|
||||
|
||||
#: library/sqlite3.rst:397
|
||||
msgid ""
|
||||
|
@ -413,6 +552,10 @@ msgid ""
|
|||
"its sole argument, and must return a value of a :ref:`type that SQLite "
|
||||
"natively understands <sqlite3-types>`."
|
||||
msgstr ""
|
||||
"Enregistre un *adaptateur* appelable pour adapter le type Python *type* en "
|
||||
"un type SQLite. L’adaptateur est appelé avec un objet Python de type *type* "
|
||||
"comme unique argument, et doit retourner une valeur d’un :ref:`type que "
|
||||
"SQLite comprend nativement <sqlite3-types>`."
|
||||
|
||||
#: library/sqlite3.rst:405
|
||||
msgid ""
|
||||
|
@ -423,15 +566,22 @@ msgid ""
|
|||
"parameter *detect_types* of :func:`connect` for information regarding how "
|
||||
"type detection works."
|
||||
msgstr ""
|
||||
"Enregistre le *convertisseur* appellable pour convertir les objets SQLite de "
|
||||
"type *typename* en un objet Python d’un type spécifique. Le convertisseur "
|
||||
"est invoqué pour toutes les valeurs SQLite de type *typename* ; on lui passe "
|
||||
"un objet :class:`bytes` et il doit retourner un objet du type Python désiré. "
|
||||
"Consultez le paramètre *detect_types* de :func:`connect` pour des "
|
||||
"informations sur le fonctionnement de la détection des types."
|
||||
|
||||
#: library/sqlite3.rst:413
|
||||
msgid ""
|
||||
"Note: *typename* and the name of the type in your query are matched case-"
|
||||
"insensitively."
|
||||
msgstr ""
|
||||
"Remarque : *typename* et le nom du type dans votre requête sont comparés "
|
||||
"sans tenir compte de la casse."
|
||||
|
||||
#: library/sqlite3.rst:420
|
||||
#, fuzzy
|
||||
msgid "Module constants"
|
||||
msgstr "Fonctions et constantes du module"
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-10-18 16:14+0200\n"
|
||||
"PO-Revision-Date: 2023-02-17 15:37+0100\n"
|
||||
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: library/turtle.rst:3
|
||||
msgid ":mod:`turtle` --- Turtle graphics"
|
||||
|
@ -1830,8 +1830,8 @@ msgid ""
|
|||
"*picname* is ``\"nopic\"``, delete background image, if present. If "
|
||||
"*picname* is ``None``, return the filename of the current backgroundimage. ::"
|
||||
msgstr ""
|
||||
"Défini l'image de fond ou renvoie l'image de fond actuelle. Si *picname* est "
|
||||
"un nom de fichier, cette image et mis en image de fond. Si *picname* est "
|
||||
"Définit l'image de fond ou renvoie l'image de fond actuelle. Si *picname* "
|
||||
"est un nom de fichier, cette image et mis en image de fond. Si *picname* est "
|
||||
"``\"nopic\"``, l'image de fond sera supprimée si présente. SI *picname* est "
|
||||
"``None``, le nom du fichier de l'image de fond actuelle est renvoyé. ::"
|
||||
|
||||
|
@ -1949,7 +1949,7 @@ msgid ""
|
|||
"the time interval between two consecutive canvas updates.) The longer the "
|
||||
"drawing delay, the slower the animation."
|
||||
msgstr ""
|
||||
"Défini ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet "
|
||||
"Définit ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet "
|
||||
"approximativement le temps passé entre deux mises à jour du canevas.) Plus "
|
||||
"le délai est long, plus l'animation sera lente."
|
||||
|
||||
|
@ -1969,11 +1969,11 @@ msgid ""
|
|||
"arguments, returns the currently stored value of n. Second argument sets "
|
||||
"delay value (see :func:`delay`)."
|
||||
msgstr ""
|
||||
"Active/désactive les animations des tortues et défini le délai pour mettre à "
|
||||
"jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours "
|
||||
"Active/désactive les animations des tortues et définit le délai pour mettre "
|
||||
"à jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours "
|
||||
"régulières de l'écran seront vraiment effectuées. (Peut être utilisé pour "
|
||||
"accélérer le dessin de graphiques complexes.) Lorsqu'appelé sans arguments, "
|
||||
"renvoie la valeur actuelle de *n*. Le deuxième argument défini la valeur du "
|
||||
"renvoie la valeur actuelle de *n*. Le deuxième argument définit la valeur du "
|
||||
"délai (voir :func:`delay`)."
|
||||
|
||||
#: library/turtle.rst:1760
|
||||
|
@ -2183,12 +2183,11 @@ msgid "one of the values 1.0 or 255"
|
|||
msgstr "l'une des valeurs suivantes : 1.0 ou 255"
|
||||
|
||||
#: library/turtle.rst:1944
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* "
|
||||
"values of color triples have to be in the range 0..*cmode*."
|
||||
msgstr ""
|
||||
"Renvoie le mode de couleur (*colormode*) ou le défini à 1.0 ou 255. Les "
|
||||
"Renvoie le mode de couleur (*colormode*) ou le définit à 1.0 ou 255. Les "
|
||||
"valeurs *r*, *g* et *b* doivent aussi être dans la gamme ``0``\\ ..\\ "
|
||||
"*cmode*."
|
||||
|
||||
|
@ -2346,7 +2345,7 @@ msgstr ""
|
|||
|
||||
#: library/turtle.rst:2096
|
||||
msgid "Set title of turtle window to *titlestring*."
|
||||
msgstr "Défini le titre de la fenêtre de la tortue à *titlestring*."
|
||||
msgstr "Définit le titre de la fenêtre de la tortue comme *titlestring*."
|
||||
|
||||
#: library/turtle.rst:2105
|
||||
msgid "Public classes"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,8 +6,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
|
||||
"PO-Revision-Date: 2022-11-14 15:35+0100\n"
|
||||
"Last-Translator: Yannick Gingras <ygingras@ygingras.net>\n"
|
||||
"PO-Revision-Date: 2023-02-17 15:35+0100\n"
|
||||
"Last-Translator: Mouna Sebti <mounasb@proton.me>\n"
|
||||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -22,7 +22,7 @@ msgstr "Les nouveautés de Python 3.11"
|
|||
|
||||
#: whatsnew/3.11.rst:0
|
||||
msgid "Release"
|
||||
msgstr ""
|
||||
msgstr "Version"
|
||||
|
||||
#: whatsnew/3.11.rst:5
|
||||
msgid "|release|"
|
||||
|
@ -38,7 +38,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:0
|
||||
msgid "Editor"
|
||||
msgstr ""
|
||||
msgstr "Éditeur"
|
||||
|
||||
#: whatsnew/3.11.rst:7
|
||||
msgid "Pablo Galindo Salgado"
|
||||
|
@ -66,6 +66,9 @@ msgid ""
|
|||
"measured a 1.25x speedup on the standard benchmark suite. See :ref:"
|
||||
"`whatsnew311-faster-cpython` for details."
|
||||
msgstr ""
|
||||
"Python 3.11 est entre 10 et 60% plus rapide que Python 3.10. En moyenne,"
|
||||
"nous avons mesuré une multiplication de la vitesse par 1.25 sur la suite de"
|
||||
"benchmark standard. Voir les détails sur :ref:`whatsnew311-faster-cpython`."
|
||||
|
||||
#: whatsnew/3.11.rst:68
|
||||
msgid "New syntax features:"
|
||||
|
@ -76,9 +79,8 @@ msgid ":ref:`whatsnew311-pep654`"
|
|||
msgstr ""
|
||||
|
||||
#: whatsnew/3.11.rst:72
|
||||
#, fuzzy
|
||||
msgid "New built-in features:"
|
||||
msgstr "Nouvelles fonctionnalités de typage :"
|
||||
msgstr "Nouvelles fonctionnalités natives :"
|
||||
|
||||
#: whatsnew/3.11.rst:74
|
||||
msgid ":ref:`whatsnew311-pep678`"
|
||||
|
@ -86,7 +88,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:76
|
||||
msgid "New standard library modules:"
|
||||
msgstr ""
|
||||
msgstr "Nouveaux modules de bibliothèque standard :"
|
||||
|
||||
#: whatsnew/3.11.rst:78
|
||||
msgid ""
|
||||
|
@ -96,7 +98,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:81
|
||||
msgid "Interpreter improvements:"
|
||||
msgstr ""
|
||||
msgstr "Améliorations de l'interpréteur :"
|
||||
|
||||
#: whatsnew/3.11.rst:83
|
||||
msgid ":ref:`whatsnew311-pep657`"
|
||||
|
@ -142,12 +144,16 @@ msgid ""
|
|||
":pep:`594`: :ref:`Many legacy standard library modules have been deprecated "
|
||||
"<whatsnew311-pep594>` and will be removed in Python 3.13"
|
||||
msgstr ""
|
||||
":pep:`594`: :ref:`De nombreux anciens modules de la bibliothèque standard sont"
|
||||
"devenus obsolètes <whatsnew311-pep594>` et seront supprimés dans la version 3.13"
|
||||
|
||||
#: whatsnew/3.11.rst:101
|
||||
msgid ""
|
||||
":pep:`624`: :ref:`Py_UNICODE encoder APIs have been removed <whatsnew311-"
|
||||
"pep624>`"
|
||||
msgstr ""
|
||||
":pep:`624`: :ref:`les API d'encodage Py_UNICODE ont été supprimées <whatsnew311-"
|
||||
"pep624>`"
|
||||
|
||||
#: whatsnew/3.11.rst:103
|
||||
msgid ""
|
||||
|
@ -183,9 +189,9 @@ msgid ""
|
|||
"function calls:"
|
||||
msgstr ""
|
||||
"Les versions précédentes de l'interpréteur indiquaient uniquement la ligne, "
|
||||
"ce qui rendait ambigu quel objet était ``None``. Les messages d'erreurs "
|
||||
"ce qui rendait ambigu quel objet était ``None``. Ces messages d'erreurs "
|
||||
"améliorés sont aussi utiles quand on travaille avec des objets dictionnaires "
|
||||
"fortement imbriqués et des appels de fonction multiples,"
|
||||
":class:`dict` fortement imbriqués et des appels de fonction multiples :"
|
||||
|
||||
#: whatsnew/3.11.rst:151
|
||||
#, fuzzy
|
||||
|
@ -234,7 +240,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:185
|
||||
msgid "PEP 654: Exception Groups and ``except*``"
|
||||
msgstr ""
|
||||
msgstr "PEP 654: Groupes d'exception et ``except*``"
|
||||
|
||||
#: whatsnew/3.11.rst:187
|
||||
msgid ""
|
||||
|
@ -248,7 +254,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:194
|
||||
msgid "See :pep:`654` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`654` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:196
|
||||
msgid ""
|
||||
|
@ -276,7 +282,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:210
|
||||
msgid "See :pep:`678` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`678` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:212
|
||||
msgid ""
|
||||
|
@ -286,7 +292,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:219
|
||||
msgid "Windows ``py.exe`` launcher improvements"
|
||||
msgstr ""
|
||||
msgstr "Améliorations du lanceur Windows ``py.exe``"
|
||||
|
||||
#: whatsnew/3.11.rst:221
|
||||
msgid ""
|
||||
|
@ -351,7 +357,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:270
|
||||
msgid "See :pep:`646` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`646` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:272
|
||||
msgid ""
|
||||
|
@ -383,11 +389,11 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:301
|
||||
msgid "The following definition is equivalent::"
|
||||
msgstr ""
|
||||
msgstr "La définition suivante est équivalente ::"
|
||||
|
||||
#: whatsnew/3.11.rst:307
|
||||
msgid "See :pep:`655` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`655` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:309
|
||||
msgid ""
|
||||
|
@ -423,7 +429,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:345
|
||||
msgid "See :pep:`673` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`673` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:347
|
||||
msgid ""
|
||||
|
@ -449,10 +455,12 @@ msgstr ""
|
|||
#: whatsnew/3.11.rst:364
|
||||
msgid "For example, a SQL query function could be annotated as follows::"
|
||||
msgstr ""
|
||||
"Par exemple, une fonction de requête SQL pourrait être annotée de cette"
|
||||
"façon ::"
|
||||
|
||||
#: whatsnew/3.11.rst:382
|
||||
msgid "See :pep:`675` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`675` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:384
|
||||
msgid ""
|
||||
|
@ -475,11 +483,11 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:399
|
||||
msgid "For example::"
|
||||
msgstr ""
|
||||
msgstr "Par exemple ::"
|
||||
|
||||
#: whatsnew/3.11.rst:417
|
||||
msgid "See :pep:`681` for more details."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`681` pour plus de détails."
|
||||
|
||||
#: whatsnew/3.11.rst:419
|
||||
msgid ""
|
||||
|
@ -954,12 +962,11 @@ msgid "IDLE and idlelib"
|
|||
msgstr "``IDLE`` et ``idlelib``"
|
||||
|
||||
#: whatsnew/3.11.rst:804
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood "
|
||||
"and Terry Jan Reedy in :issue:`45447`.)"
|
||||
msgstr ""
|
||||
"Fait la coloration syntaxique des fichiers ``.pyi`` (contribution d'*Alex "
|
||||
"Applique la coloration syntaxique aux fichiers ``.pyi`` (contribution d'*Alex "
|
||||
"Waygood* et de *Terry Jan Reedy* dans :issue:`45447`)."
|
||||
|
||||
#: whatsnew/3.11.rst:807
|
||||
|
@ -1430,6 +1437,8 @@ msgstr ""
|
|||
#: whatsnew/3.11.rst:1131
|
||||
msgid "For major changes, see :ref:`new-feat-related-type-hints-311`."
|
||||
msgstr ""
|
||||
"Pour les modifications majeures, voir :ref:`new-feat-related-"
|
||||
"type-hints-311`."
|
||||
|
||||
#: whatsnew/3.11.rst:1133
|
||||
msgid ""
|
||||
|
@ -1739,7 +1748,9 @@ msgstr ""
|
|||
msgid ""
|
||||
"Interpreter startup is now 10-15% faster in Python 3.11. This has a big "
|
||||
"impact for short-running programs using Python."
|
||||
msgstr ""
|
||||
msgstr "Le lancement de l'interpréteur est 10 à 15% plus rapide"
|
||||
"dans la version 3.11. Cela a un grand impact pour les programmes courts"
|
||||
"utilisant Python."
|
||||
|
||||
#: whatsnew/3.11.rst:1362
|
||||
msgid ""
|
||||
|
@ -1954,7 +1965,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:1467
|
||||
msgid "Calls"
|
||||
msgstr ""
|
||||
msgstr "Appels"
|
||||
|
||||
#: whatsnew/3.11.rst:1467
|
||||
msgid "``f(arg)`` ``C(arg)``"
|
||||
|
@ -2162,7 +2173,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:1554
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "À propos"
|
||||
|
||||
#: whatsnew/3.11.rst:1556
|
||||
msgid ""
|
||||
|
@ -2429,6 +2440,8 @@ msgstr "Obsolescence"
|
|||
msgid ""
|
||||
"This section lists Python APIs that have been deprecated in Python 3.11."
|
||||
msgstr ""
|
||||
"Cette section liste les API Python qui sont devenues obsolètes dans la"
|
||||
"version 3.11."
|
||||
|
||||
#: whatsnew/3.11.rst:1671
|
||||
msgid ""
|
||||
|
@ -2585,7 +2598,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:1742
|
||||
msgid "Standard Library"
|
||||
msgstr ""
|
||||
msgstr "Bibliothèque Standard"
|
||||
|
||||
#: whatsnew/3.11.rst:1744
|
||||
msgid ""
|
||||
|
@ -2776,6 +2789,8 @@ msgid ""
|
|||
"The following Python APIs have been deprecated in earlier Python releases, "
|
||||
"and will be removed in Python 3.12."
|
||||
msgstr ""
|
||||
"Les API Python suivantes sont devenues obsolètes dans des versions "
|
||||
"précédentes, et seront supprimées dans la version 3.12."
|
||||
|
||||
#: whatsnew/3.11.rst:1847
|
||||
msgid ""
|
||||
|
@ -3038,6 +3053,8 @@ msgstr "Retraits"
|
|||
#: whatsnew/3.11.rst:1907
|
||||
msgid "This section lists Python APIs that have been removed in Python 3.11."
|
||||
msgstr ""
|
||||
"Cette section liste les API Python qui ont été supprimées dans la version "
|
||||
"3.11."
|
||||
|
||||
#: whatsnew/3.11.rst:1909
|
||||
msgid ""
|
||||
|
@ -3213,6 +3230,9 @@ msgid ""
|
|||
"This section lists previously described changes and other bugfixes in the "
|
||||
"Python API that may require changes to your Python code."
|
||||
msgstr ""
|
||||
"Cette section liste les modifications précédemment décrites et d'autres"
|
||||
"corrections de bogues dans l'API Python qui pourraient nécessiter des"
|
||||
"modification dans votre code."
|
||||
|
||||
#: whatsnew/3.11.rst:2016
|
||||
msgid ""
|
||||
|
@ -3314,7 +3334,7 @@ msgstr ""
|
|||
|
||||
#: whatsnew/3.11.rst:2087
|
||||
msgid "Building Python now requires:"
|
||||
msgstr ""
|
||||
msgstr "Compiler Python nécessite à présent :"
|
||||
|
||||
#: whatsnew/3.11.rst:2089
|
||||
msgid ""
|
||||
|
|
Loading…
Reference in New Issue