forked from AFPy/python-docs-fr
glossary.po: 100%
This commit is contained in:
parent
79703a4b60
commit
3953541fb9
347
glossary.po
347
glossary.po
|
@ -3,19 +3,19 @@
|
|||
# This file is distributed under the same license as the Python package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Python 3.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-12-22 00:55+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"PO-Revision-Date: 2015-12-26 16:20+0100\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 1.8.6\n"
|
||||
|
||||
#: glossary.rst:5
|
||||
msgid "Glossary"
|
||||
|
@ -164,22 +164,21 @@ msgstr ""
|
|||
|
||||
#: glossary.rst:71
|
||||
msgid "asynchronous context manager"
|
||||
msgstr ""
|
||||
msgstr "gestionnaire de contexte asynchrone"
|
||||
|
||||
#: glossary.rst:73
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"An object which controls the environment seen in an :keyword:`async with` "
|
||||
"statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. "
|
||||
"Introduced by :pep:`492`."
|
||||
msgstr ""
|
||||
"Un objet contrôlant l'environnement a l'intérieur d'une instruction :keyword:"
|
||||
"`with` en définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. "
|
||||
"Consultez la :pep:`343`."
|
||||
"Un objet contrôlant l'environnement à l'intérieur d'une instruction :keyword:"
|
||||
"`with` en définissant les méthodes :meth:`__aenter__` et :meth:`__aexit__`. "
|
||||
"Introduit dans la :pep:`492`."
|
||||
|
||||
#: glossary.rst:76
|
||||
msgid "asynchronous iterable"
|
||||
msgstr ""
|
||||
msgstr "itérable asynchrone"
|
||||
|
||||
#: glossary.rst:78
|
||||
msgid ""
|
||||
|
@ -188,10 +187,13 @@ msgid ""
|
|||
"in turn be resolved in an :term:`asynchronous iterator` object. Introduced "
|
||||
"by :pep:`492`."
|
||||
msgstr ""
|
||||
"Un objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa "
|
||||
"méthode :meth:`__aiter__` doit renvoyer un :term:`awaitable`, qui à son tour "
|
||||
"doit donner un :term:`itérateur asynchrone`. Introduit par la :pep:`492`."
|
||||
|
||||
#: glossary.rst:82
|
||||
msgid "asynchronous iterator"
|
||||
msgstr ""
|
||||
msgstr "itérateur asynchrone"
|
||||
|
||||
#: glossary.rst:84
|
||||
msgid ""
|
||||
|
@ -201,6 +203,11 @@ msgid ""
|
|||
"until it raises :exc:`StopAsyncIteration` exception. Introduced by :pep:"
|
||||
"`492`."
|
||||
msgstr ""
|
||||
"Un objet qui implémente les méthodes :meth:`__aiter__`, et :meth:"
|
||||
"`__anext__`, qui doivent donner des :term:`awaitable`\\s. :keyword:`async "
|
||||
"for` résoud les :term:`awaitable`\\s donnés par la méthode :meth:`__anext__` "
|
||||
"de l'itérateur asynchrone, jusqu'à ce qu'il lève une :exc:"
|
||||
"`StopAsyncIteration`. Introduit par la :pep:`492`."
|
||||
|
||||
#: glossary.rst:89
|
||||
msgid "attribute"
|
||||
|
@ -218,7 +225,7 @@ msgstr ""
|
|||
|
||||
#: glossary.rst:94
|
||||
msgid "awaitable"
|
||||
msgstr ""
|
||||
msgstr "awaitable"
|
||||
|
||||
#: glossary.rst:96
|
||||
msgid ""
|
||||
|
@ -226,6 +233,9 @@ msgid ""
|
|||
"term:`coroutine` or an object with an :meth:`__await__` method. See also :"
|
||||
"pep:`492`."
|
||||
msgstr ""
|
||||
"Un objet pouvant être utilisé dans une expression :keyword:`await`. Peut "
|
||||
"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. "
|
||||
"Voir aussi :pep:`492`."
|
||||
|
||||
#: glossary.rst:99
|
||||
msgid "BDFL"
|
||||
|
@ -268,6 +278,12 @@ msgid ""
|
|||
"with binary data; these include compression, saving to a binary file, and "
|
||||
"sending over a socket."
|
||||
msgstr ""
|
||||
"Un objet gèrant les :ref:`bufferobjects` et peut exporter un buffer C-:term:"
|
||||
"`contiguous`. Cela inclu les objets :class:`bytes`, :class:`bytearray`, et :"
|
||||
"class:`array.array`, ainsi que beaucoup d'objets :class:`memoryview`. Les "
|
||||
"objets bytes-compatibles peuvent être utilisés pour diverses opérations sur "
|
||||
"des données binaires, comme la compression, la sauvegard dans un fichier "
|
||||
"binaire, ou l'envoi sur une socket."
|
||||
|
||||
#: glossary.rst:119
|
||||
msgid ""
|
||||
|
@ -278,6 +294,13 @@ msgid ""
|
|||
"immutable objects (\"read-only bytes-like objects\"); examples of these "
|
||||
"include :class:`bytes` and a :class:`memoryview` of a :class:`bytes` object."
|
||||
msgstr ""
|
||||
"Certaines opérations nécessitent de travailler sur des données binaires "
|
||||
"variables. La documentation parle de ceux-ci comme des \"read-write bytes-"
|
||||
"like objects\". Par exemple, :class:`bytearray`, et une :class:`memoryview` "
|
||||
"d'un :class:`bytearray` en sont. D'autres opérations nécessitent de "
|
||||
"travailler sur des données binaires stockées dans des objets immuables (*"
|
||||
"\"read-only bytes-like objects\"*), par exemples :class:`bytes` et :class:"
|
||||
"`memoryview` d'un objet :class:`byte`."
|
||||
|
||||
#: glossary.rst:127
|
||||
msgid "bytecode"
|
||||
|
@ -393,7 +416,7 @@ msgstr ""
|
|||
|
||||
#: glossary.rst:173
|
||||
msgid "contiguous"
|
||||
msgstr ""
|
||||
msgstr "contigus"
|
||||
|
||||
#: glossary.rst:177
|
||||
msgid ""
|
||||
|
@ -405,10 +428,20 @@ msgid ""
|
|||
"fastest when visiting items in order of memory address. However, in Fortran "
|
||||
"contiguous arrays, the first index varies the fastest."
|
||||
msgstr ""
|
||||
"Un *buffer* est considéré contigu s'il est soit *C-contigu* ou *Fortran-"
|
||||
"contigu*. Les tableaux de dimension zéro sont direcement *C-contigus* et "
|
||||
"*Fortran-contigus*. Pour qu'un tableau à une dimension soit *Fortran-"
|
||||
"contigu* et *C-contigu*, ses éléments doivent être placés en mémoire l'un à "
|
||||
"côté de l'autre, dans l'ordre croissant de leur indice, commençant à zéro. "
|
||||
"Finalement, pour qu'un tableau multidimensionnel soit *C-contigu*, le "
|
||||
"dernier indice doit être celui qui varie le plus rapidement lors du parcours "
|
||||
"de ses éléments dans l'ordre de leur adresse mémoire, et pour qu'il soit "
|
||||
"*Fortran-contigu*, c'est le premier indice qui doit varier le plus "
|
||||
"rapidement."
|
||||
|
||||
#: glossary.rst:185
|
||||
msgid "coroutine"
|
||||
msgstr ""
|
||||
msgstr "coroutine"
|
||||
|
||||
#: glossary.rst:187
|
||||
msgid ""
|
||||
|
@ -417,10 +450,14 @@ msgid ""
|
|||
"entered, exited, and resumed at many different points. They can be "
|
||||
"implemented with the :keyword:`async def` statement. See also :pep:`492`."
|
||||
msgstr ""
|
||||
"Les coroutines sont une forme généralisées des fonctions. Les fonctions sont "
|
||||
"accédées en un point et sortent en un point. Les coroutines peuvent être "
|
||||
"accédées, quittées, reprises en plusieurs points. Elles peuvent être "
|
||||
"implémentées via l'instruction :keyword:`async def`. Voir aussi :pep:`492`."
|
||||
|
||||
#: glossary.rst:192
|
||||
msgid "coroutine function"
|
||||
msgstr ""
|
||||
msgstr "fonction coroutine"
|
||||
|
||||
#: glossary.rst:194
|
||||
msgid ""
|
||||
|
@ -429,6 +466,10 @@ msgid ""
|
|||
"keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords. "
|
||||
"These were introduced by :pep:`492`."
|
||||
msgstr ""
|
||||
"Une fonction qui donne un objet :term:`coroutine`. Une fonction coroutine "
|
||||
"peut être définie par l'instruction :keyword:`async def`, et peuvent "
|
||||
"contenir les mots clefs :keyword:`await`, :keyword:`async for`, et :keyword:"
|
||||
"`async with`.Elles sont introduites par la :pep:`492`."
|
||||
|
||||
#: glossary.rst:199
|
||||
msgid "CPython"
|
||||
|
@ -476,8 +517,8 @@ msgid ""
|
|||
"definitions <class>` for more about decorators."
|
||||
msgstr ""
|
||||
"Quoique moins fréquemment utilisé, le même concept existe pour les classes. "
|
||||
"Consultez la documentation :ref:`définitions de fonctions <fonction>` et :"
|
||||
"ref:`définitions de classes <classe>` pour en savoir plus sur les decorators."
|
||||
"Consultez la documentation :ref:`définitions de fonctions <function>` et :"
|
||||
"ref:`définitions de classes <class>` pour en savoir plus sur les decorators."
|
||||
|
||||
#: glossary.rst:225
|
||||
msgid "descriptor"
|
||||
|
@ -699,6 +740,8 @@ msgid ""
|
|||
"An object that tries to find the :term:`loader` for a module that is being "
|
||||
"imported."
|
||||
msgstr ""
|
||||
"Un objet qui essaye de trouver un :term:`loader` pour le module étant "
|
||||
"importé."
|
||||
|
||||
#: glossary.rst:314
|
||||
msgid ""
|
||||
|
@ -706,10 +749,14 @@ msgid ""
|
|||
"<meta path finder>` for use with :data:`sys.meta_path`, and :term:`path "
|
||||
"entry finders <path entry finder>` for use with :data:`sys.path_hooks`."
|
||||
msgstr ""
|
||||
"Depuis Python 3.3, il existe deux types de *finder*: :term:`meta path "
|
||||
"finders <meta path finder>` à utiliser avec :data:`sys.meta_path`, et :term:"
|
||||
"`path entry finders <path entry finder>` à utiliser avec :data:`sys."
|
||||
"path_hooks`."
|
||||
|
||||
#: glossary.rst:318
|
||||
msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail."
|
||||
msgstr ""
|
||||
msgstr "Voir :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails."
|
||||
|
||||
#: glossary.rst:319
|
||||
msgid "floor division"
|
||||
|
@ -818,6 +865,10 @@ msgid ""
|
|||
"producing a series of values usable in a for-loop or that can be retrieved "
|
||||
"one at a time with the :func:`next` function."
|
||||
msgstr ""
|
||||
"Une fonction qui renvoie un :term:`itérateur de générateur`. Cela ressemble "
|
||||
"à une fonction normale, en dehors du fait qu'elle contient une ou des "
|
||||
"expressions :keyword:`yield` pruduisant une série de valeurs utilisable dans "
|
||||
"une boucle *for*, ou récupérées une à une via la fonction :func:`next`."
|
||||
|
||||
#: glossary.rst:368
|
||||
msgid ""
|
||||
|
@ -825,14 +876,18 @@ msgid ""
|
|||
"iterator* in some contexts. In cases where the intended meaning isn't "
|
||||
"clear, using the full terms avoids ambiguity."
|
||||
msgstr ""
|
||||
"Fait généralement allusion à une fonction générateur, mais peut faire "
|
||||
"allusion à un *itérateur de générateur* dans certains contextes. Dans les "
|
||||
"cas où le sens voulu n'est pas clair, utiliser les termes complets évite "
|
||||
"l'ambiguité."
|
||||
|
||||
#: glossary.rst:371
|
||||
msgid "generator iterator"
|
||||
msgstr ""
|
||||
msgstr "itérateur de générateur"
|
||||
|
||||
#: glossary.rst:373
|
||||
msgid "An object created by a :term:`generator` function."
|
||||
msgstr ""
|
||||
msgstr "Un objet crée par une fonction :term:`générateur`."
|
||||
|
||||
#: glossary.rst:375
|
||||
msgid ""
|
||||
|
@ -841,6 +896,11 @@ msgid ""
|
|||
"statements). When the *generator iterator* resumes, it picks-up where it "
|
||||
"left-off (in contrast to functions which start fresh on every invocation)."
|
||||
msgstr ""
|
||||
"Chaque :keyword:`yield` suspend temporairement l'exécution, se rappelant de "
|
||||
"l'endroit et de l'état de l'exécution (incluant les variables locales et les "
|
||||
"*try* en cours). Lorsque l'itérateur de générateur reprend, il reprend où il "
|
||||
"en était (contrairement à une fonction qui prendrait un nouveau départ à "
|
||||
"chaque invocation)."
|
||||
|
||||
#: glossary.rst:382
|
||||
msgid "generator expression"
|
||||
|
@ -1087,7 +1147,7 @@ msgstr ""
|
|||
|
||||
#: glossary.rst:483
|
||||
msgid "interpreter shutdown"
|
||||
msgstr ""
|
||||
msgstr "arrêt de l'interpréteur"
|
||||
|
||||
#: glossary.rst:485
|
||||
msgid ""
|
||||
|
@ -1100,12 +1160,23 @@ msgid ""
|
|||
"relies on may not function anymore (common examples are library modules or "
|
||||
"the warnings machinery)."
|
||||
msgstr ""
|
||||
"Lorsqu'on lui demande de s'arrêter, l'interpréteur Python entre dans une "
|
||||
"phase spéciale où il libère graduellement les ressources allouées, comme les "
|
||||
"modules ou quelques structures de données internes. Il fait aussi quelques "
|
||||
"appels au :term:`ramasse-miette`. Cela peut déclencher l'exécution de code "
|
||||
"dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code "
|
||||
"exécuté lors de l'arrêt peut rencontrer quelques exception puisque les "
|
||||
"ressources sur lesquels il pourrait s'appuyer pourraient ne plus "
|
||||
"fonctionner, (typiquement les modules de la bibliothèque ou le mécanisme de "
|
||||
"*warning*)."
|
||||
|
||||
#: glossary.rst:494
|
||||
msgid ""
|
||||
"The main reason for interpreter shutdown is that the ``__main__`` module or "
|
||||
"the script being run has finished executing."
|
||||
msgstr ""
|
||||
"La principale raison qu'a l'interpréteur de s'arrêter est lorsque le module "
|
||||
"``__main__`` ou le script en cours d'exécution à terminé de s'exécuter."
|
||||
|
||||
#: glossary.rst:496
|
||||
msgid "iterable"
|
||||
|
@ -1128,6 +1199,21 @@ msgid ""
|
|||
"iterator for the duration of the loop. See also :term:`iterator`, :term:"
|
||||
"`sequence`, and :term:`generator`."
|
||||
msgstr ""
|
||||
"Un objet capable de donner ses éléments un à un. Pour lister quelques "
|
||||
"exemples d'itérables, on pourrait lister tout les types séquence (comme :"
|
||||
"class:`list`, :class:`str`, et :class:`tuple`), et quelques autres comme :"
|
||||
"class:`dict`, :term:`objets fichiers <objet fichier>`, ou tout objet de "
|
||||
"toute classe ayant une méthode :meth:`__iter__` ou :meth:`__getitem__`. Les "
|
||||
"itérables peuvent être utilisés dans des boucles :keyword:`for` ou tout "
|
||||
"autre endroit où une séquence est requise (:func:`zip`, :func:`map`, ...). "
|
||||
"Lorsqu'un itérable est passé comme argument à la fonction native :func:"
|
||||
"`iter`, elle donnera un itérateur de cet itérable. Cet itérateur n'est "
|
||||
"valable que pour une passe sur le jeu de valeurs. Lors de l'utilisation "
|
||||
"d'itérables, il n'est habituellement pas nécessaire d'appeler :func:`iter` "
|
||||
"ou de s'occuper d'objet itérateurs. L'instruction ``for`` fait ça "
|
||||
"automatiquement pour vous, créant une variable temporaire anonyme pour "
|
||||
"garder l'itérateur durant la boucle. Voir aussi :term:`iterator`, :term:"
|
||||
"`séquence`, et :term:`générateur`."
|
||||
|
||||
#: glossary.rst:512
|
||||
msgid "iterator"
|
||||
|
@ -1150,6 +1236,21 @@ msgid ""
|
|||
"iterator will just return the same exhausted iterator object used in the "
|
||||
"previous iteration pass, making it appear like an empty container."
|
||||
msgstr ""
|
||||
"Un objet représentant un flux de donnée. Des appels successifs à la méthode :"
|
||||
"meth:~iterator.__next__` de l'itérateur (ou le donner à la fonction native :"
|
||||
"func:`next`) donne successivement les objets du flux. Lorsque plus aucune "
|
||||
"donnée n'est disponible, une exception :exc:`StopIteration` est lancée. À ce "
|
||||
"point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:"
|
||||
"`__next__` lanceront encore une exception :exc:`StopIteration`. Les "
|
||||
"itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet "
|
||||
"itérateur lui même, tel que chaque itérateur soit aussi itérable et puisse "
|
||||
"être utilisé dans la plupart des endroits où d'autres itérables sont "
|
||||
"attendus. Une exception notable serait un code qui tenterai plusieurs "
|
||||
"itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un "
|
||||
"nouvel itérateur neuf à chaque fois qu'il est donné à la fonction :func:"
|
||||
"`iter` où qu'il est utilisé dans une boucle :keyword:`for`. Faire ceci sur "
|
||||
"un itérateur donnerai simplement le même objet itérateur épuisé utilisé dans "
|
||||
"son itération précédente, le faisant ressembler à un conteneur vide."
|
||||
|
||||
#: glossary.rst:529
|
||||
msgid "More information can be found in :ref:`typeiter`."
|
||||
|
@ -1171,7 +1272,6 @@ msgstr ""
|
|||
"tri spécifiques aux paramètres régionaux courants."
|
||||
|
||||
#: glossary.rst:537
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"A number of tools in Python accept key functions to control how elements are "
|
||||
"ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :"
|
||||
|
@ -1180,11 +1280,10 @@ msgid ""
|
|||
msgstr ""
|
||||
"Plusieurs outils dans Python acceptent des fonctions clef pour maîtriser "
|
||||
"comment les éléments dont triés ou groupés. Typiquement les fonctions :func:"
|
||||
"`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq."
|
||||
"nsmallest`, :func:`heapq.nlargest`, et :func:`itertools.groupby`."
|
||||
"`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq.merge`, :"
|
||||
"func:`heapq.nsmallest`, :func:`heapq.nlargest`, et :func:`itertools.groupby`."
|
||||
|
||||
#: glossary.rst:543
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"There are several ways to create a key function. For example. the :meth:"
|
||||
"`str.lower` method can serve as a key function for case insensitive sorts. "
|
||||
|
@ -1195,9 +1294,10 @@ msgid ""
|
|||
"methodcaller`. See the :ref:`Sorting HOW TO <sortinghowto>` for examples of "
|
||||
"how to create and use key functions."
|
||||
msgstr ""
|
||||
"La méthode :meth:`str.lower` peut servir en fonction clef pour effectuer des "
|
||||
"Il existe plusieurs moyens de créer une fonction clef. Par exemple, la "
|
||||
"méthode :meth:`str.lower` peut servir en fonction clef pour effectuer des "
|
||||
"recherches insensibles à la casse. Aussi, il est possible de créer des "
|
||||
"fonctions clef au besoin avec des expressions lambda, comme ``lambda r: "
|
||||
"fonctions clef avec des expressions :keyword:`lambda`, comme ``lambda r: "
|
||||
"(r[0], r[2])``. Finalement le module :mod:`operator` fournit des "
|
||||
"constructeurs de fonctions clef : :func:`~operator.attrgetter`, :func:"
|
||||
"`~operator.itemgetter`, et :func:`~operator.methodcaller`. Voir :ref:"
|
||||
|
@ -1336,12 +1436,17 @@ msgid ""
|
|||
"finders are related to, but different from :term:`path entry finders <path "
|
||||
"entry finder>`."
|
||||
msgstr ""
|
||||
"Un :term:`finder` donné par une recherche dans :data:`sys.meta_path`. Les "
|
||||
"*meta path finders* ressemblent, mais sont différents de :term:`path entry "
|
||||
"finders <path entry finder>`."
|
||||
|
||||
#: glossary.rst:604
|
||||
msgid ""
|
||||
"See :class:`importlib.abc.MetaPathFinder` for the methods that meta path "
|
||||
"finders implement."
|
||||
msgstr ""
|
||||
"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les *meta "
|
||||
"path finders* doivent implémenter."
|
||||
|
||||
#: glossary.rst:606
|
||||
msgid "metaclass"
|
||||
|
@ -1422,6 +1527,9 @@ msgid ""
|
|||
"A namespace containing the import-related information used to load a module. "
|
||||
"An instance of :class:`importlib.machinery.ModuleSpec`."
|
||||
msgstr ""
|
||||
"Un espace de nom contenant les informations, relatives à l'import, utilisées "
|
||||
"pour charger un module. C'est une instance de la classe :class:`importlib."
|
||||
"machinery.ModuleSpec`."
|
||||
|
||||
#: glossary.rst:641
|
||||
msgid "MRO"
|
||||
|
@ -1491,6 +1599,16 @@ msgid ""
|
|||
"func:`itertools.islice` makes it clear that those functions are implemented "
|
||||
"by the :mod:`random` and :mod:`itertools` modules, respectively."
|
||||
msgstr ""
|
||||
"L'endroit où une variable est stockée. Les espaces de noms sont en fait des "
|
||||
"dictionnaires. Il existe des espaces de noms globaux, natifs, ou imbriqués "
|
||||
"dans les objets (dans les méthodes). Les espaces de noms sont modulaires "
|
||||
"afin d'éviter les conflits de noms. Par exemple, les fonctions :func:"
|
||||
"`builtins.open <.open>` et :func:`os.open`sont différenciées par leurs "
|
||||
"espaces de nom. Les espaces de noms aident aussi à la lisibilité et "
|
||||
"maintenabilité en rendant clair quel module implémente une fonction. Par "
|
||||
"exemple, écrire :func:`random.seed` ou :func:`itertools.islice` rend clair "
|
||||
"que ces fonctions sont implémentées respectivement dans les modules :mod:"
|
||||
"`random` et :mod`itertools`."
|
||||
|
||||
#: glossary.rst:673
|
||||
msgid "namespace package"
|
||||
|
@ -1603,6 +1721,10 @@ msgid ""
|
|||
"<argument>`. This is the default kind of parameter, for example *foo* and "
|
||||
"*bar* in the following::"
|
||||
msgstr ""
|
||||
":dfn:`positional-or-keyword`: dit d'un argument qui peut être passé soit par "
|
||||
"sa :term:`position <argument>` soit en temps que :term:`paramètre nommé "
|
||||
"<argument>`. C'est le type de paramètre par défaut, par exemple, *foo* et "
|
||||
"*bar* dans l'exemple suivant ::"
|
||||
|
||||
#: glossary.rst:721
|
||||
msgid ""
|
||||
|
@ -1634,6 +1756,10 @@ msgid ""
|
|||
"prepending the parameter name with ``*``, for example *args* in the "
|
||||
"following::"
|
||||
msgstr ""
|
||||
":dfn:`var-positional`: spécifie qu'une séquence d'arguments positionels peut "
|
||||
"être fourni (en plus de tous les arguments positionels déjà acceptés par "
|
||||
"d'autres paramètres). Un tel paramètre peut être définit en préfixant son "
|
||||
"nom par une ``*``, par exemple *args* ici ::"
|
||||
|
||||
#: glossary.rst:744
|
||||
msgid ""
|
||||
|
@ -1642,6 +1768,10 @@ msgid ""
|
|||
"parameters). Such a parameter can be defined by prepending the parameter "
|
||||
"name with ``**``, for example *kwargs* in the example above."
|
||||
msgstr ""
|
||||
":dfn:`var-keyword`: spécifie qu'une quantité arbitraire d'arguments peuvent "
|
||||
"être passés par nom (en plus de tous les arguments nommés déjà acceptés par "
|
||||
"d'autres paramètres). Un tel paramètre est définit en préfixant le nom du "
|
||||
"paramètre par ``**``, par exemple, *kwargs* ci-dessus."
|
||||
|
||||
#: glossary.rst:750
|
||||
msgid ""
|
||||
|
@ -1662,7 +1792,7 @@ msgstr ""
|
|||
"Voir aussi :term:`argument` dans le glossaire, la question sur :ref:`la "
|
||||
"différence entre les arguments et les paramètre <faq-argument-vs-parameter>` "
|
||||
"dans la FAQ, la classe :class:`inspect.Parameter`, la section :ref:"
|
||||
"`fonction`, et la :pep:`362`."
|
||||
"`function`, et la :pep:`362`."
|
||||
|
||||
#: glossary.rst:757
|
||||
msgid "path entry"
|
||||
|
@ -1673,10 +1803,12 @@ msgid ""
|
|||
"A single location on the :term:`import path` which the :term:`path based "
|
||||
"finder` consults to find modules for importing."
|
||||
msgstr ""
|
||||
"Un seul emplacement dans l':term:`import path` que le :term:`path based "
|
||||
"finder` consulte pour trouver des modules à importer."
|
||||
|
||||
#: glossary.rst:761
|
||||
msgid "path entry finder"
|
||||
msgstr ""
|
||||
msgstr "path entry finder"
|
||||
|
||||
#: glossary.rst:763
|
||||
msgid ""
|
||||
|
@ -1684,16 +1816,21 @@ msgid ""
|
|||
"term:`path entry hook`) which knows how to locate modules given a :term:"
|
||||
"`path entry`."
|
||||
msgstr ""
|
||||
"Un :term:`finder` donné par un appelable sur un :data:`sys.path_hooks` (çàd "
|
||||
"un :term:`path entry hook`) qui sait où trouver des modules lorsqu'on lui "
|
||||
"donne un :term:`path entry`."
|
||||
|
||||
#: glossary.rst:767
|
||||
msgid ""
|
||||
"See :class:`importlib.abc.PathEntryFinder` for the methods that path entry "
|
||||
"finders implement."
|
||||
msgstr ""
|
||||
"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un *path "
|
||||
"entry finder* doit implémenter."
|
||||
|
||||
#: glossary.rst:769
|
||||
msgid "path entry hook"
|
||||
msgstr ""
|
||||
msgstr "path entry hook"
|
||||
|
||||
#: glossary.rst:771
|
||||
msgid ""
|
||||
|
@ -1701,26 +1838,34 @@ msgid ""
|
|||
"entry finder` if it knows how to find modules on a specific :term:`path "
|
||||
"entry`."
|
||||
msgstr ""
|
||||
"Un appelable dans la liste :data:`sys.path_hook` qui donne un :term:`path "
|
||||
"entry finder` s'il sait où trouver des modules pour un :term:`path entry` "
|
||||
"donné."
|
||||
|
||||
#: glossary.rst:774
|
||||
msgid "path based finder"
|
||||
msgstr ""
|
||||
msgstr "path based finder"
|
||||
|
||||
#: glossary.rst:776
|
||||
msgid ""
|
||||
"One of the default :term:`meta path finders <meta path finder>` which "
|
||||
"searches an :term:`import path` for modules."
|
||||
msgstr ""
|
||||
"L'un des :term:`meta path finders <meta path finder>` par défaut qui cherche "
|
||||
"des modules dans un :term:`import path`."
|
||||
|
||||
#: glossary.rst:778
|
||||
msgid "portion"
|
||||
msgstr ""
|
||||
msgstr "portion"
|
||||
|
||||
#: glossary.rst:780
|
||||
msgid ""
|
||||
"A set of files in a single directory (possibly stored in a zip file) that "
|
||||
"contribute to a namespace package, as defined in :pep:`420`."
|
||||
msgstr ""
|
||||
"Un jeu de fichiers dans un seul dossier (pouvant être stockés sous forme de "
|
||||
"fichier zip) qui contribuent à l'espace de nom d'un paquet, tel que définit "
|
||||
"dans la :pep:`420`."
|
||||
|
||||
#: glossary.rst:782
|
||||
msgid "positional argument"
|
||||
|
@ -1728,7 +1873,7 @@ msgstr "augment positionnel"
|
|||
|
||||
#: glossary.rst:785
|
||||
msgid "provisional API"
|
||||
msgstr ""
|
||||
msgstr "API provisoire"
|
||||
|
||||
#: glossary.rst:787
|
||||
msgid ""
|
||||
|
@ -1740,6 +1885,14 @@ msgid ""
|
|||
"will not be made gratuitously -- they will occur only if serious fundamental "
|
||||
"flaws are uncovered that were missed prior to the inclusion of the API."
|
||||
msgstr ""
|
||||
"Une API provisoire est une API délibérément exclue des garanties de "
|
||||
"rétrocompatibilité de la bibliothèque standard. Bien que des changements "
|
||||
"majeurs de telles interfaces ne sont pas attendus, tant qu'elles sont "
|
||||
"marquées provisoires, des changement cassant la rétrocompatibilité (jusqu'à "
|
||||
"sa suppression complète) peuvent survenir s'ils semblent nécessaires. Ces "
|
||||
"modifications ne seront pas effectuées gratuitement, ils ne surviendront "
|
||||
"seulement si de sérieux problèmes sont découvert, qui n'avaient pas étés "
|
||||
"repérés avant l'ajout de l'API."
|
||||
|
||||
#: glossary.rst:796
|
||||
msgid ""
|
||||
|
@ -1747,6 +1900,10 @@ msgid ""
|
|||
"\"solution of last resort\" - every attempt will still be made to find a "
|
||||
"backwards compatible resolution to any identified problems."
|
||||
msgstr ""
|
||||
"Même pour les API provisoires, les changement cassant la rétrocompatibilité "
|
||||
"sont des \"solutions de dernier recours\", tout ce qui est possible sera "
|
||||
"fait pour tenter de résoudre les problème en conservant la "
|
||||
"rétrocompatibilité.."
|
||||
|
||||
#: glossary.rst:800
|
||||
msgid ""
|
||||
|
@ -1754,14 +1911,17 @@ msgid ""
|
|||
"without locking in problematic design errors for extended periods of time. "
|
||||
"See :pep:`411` for more details."
|
||||
msgstr ""
|
||||
"Ce processus permet à la bibliothèque standard de continuer à évoluer avec "
|
||||
"le temps, sans se bloquer longtemps sur des erreurs d'architecture. Voir la :"
|
||||
"pep:`411` pour plus de détails."
|
||||
|
||||
#: glossary.rst:803
|
||||
msgid "provisional package"
|
||||
msgstr ""
|
||||
msgstr "paquet provisoire"
|
||||
|
||||
#: glossary.rst:805
|
||||
msgid "See :term:`provisional API`."
|
||||
msgstr ""
|
||||
msgstr "Voir :term:`provisional API`."
|
||||
|
||||
#: glossary.rst:806
|
||||
msgid "Python 3000"
|
||||
|
@ -1803,7 +1963,7 @@ msgstr ""
|
|||
|
||||
#: glossary.rst:827
|
||||
msgid "qualified name"
|
||||
msgstr ""
|
||||
msgstr "nom qualifié"
|
||||
|
||||
#: glossary.rst:829
|
||||
msgid ""
|
||||
|
@ -1812,6 +1972,10 @@ msgid ""
|
|||
"top-level functions and classes, the qualified name is the same as the "
|
||||
"object's name::"
|
||||
msgstr ""
|
||||
"Un nom, comprenant des points, montrant le \"chemin\" de l'espace de nom "
|
||||
"globale d'un module à une class, fonction, ou méthode définie dans ce "
|
||||
"module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de "
|
||||
"premier niveau, le nom qualifié est le même que le nom de l'objet ::"
|
||||
|
||||
#: glossary.rst:846
|
||||
msgid ""
|
||||
|
@ -1819,6 +1983,9 @@ msgid ""
|
|||
"dotted path to the module, including any parent packages, e.g. ``email.mime."
|
||||
"text``::"
|
||||
msgstr ""
|
||||
"Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* "
|
||||
"signifie le chemin complet (séparé par des points) vers le module, incluant "
|
||||
"tous les paquet parents, typiquement: ``email.mime.text`` ::"
|
||||
|
||||
#: glossary.rst:853
|
||||
msgid "reference count"
|
||||
|
@ -1833,6 +2000,12 @@ msgid ""
|
|||
"function that programmers can call to return the reference count for a "
|
||||
"particular object."
|
||||
msgstr ""
|
||||
"Le nombre de références à un objet. Lorsque le nombre de références à un "
|
||||
"objet descend à zéro, l'objet est désalloué. Le comptage de référence n'est "
|
||||
"généralement pas visible dans le code Python, mais c'est un élément clef de "
|
||||
"l'implémentation :term:`CPython`. Le module :mod`sys` défini une fonction :"
|
||||
"func:`~sys.getrefcount`que les développeurs peuvent utiliser pour obtenir le "
|
||||
"nombre de référence d'un objet donné."
|
||||
|
||||
#: glossary.rst:861
|
||||
msgid "regular package"
|
||||
|
@ -1843,14 +2016,16 @@ msgid ""
|
|||
"A traditional :term:`package`, such as a directory containing an ``__init__."
|
||||
"py`` file."
|
||||
msgstr ""
|
||||
"Un :term:`paquet` traditionnel, tel qu'un dossier contenant un fichier "
|
||||
"``__init__.py``."
|
||||
|
||||
#: glossary.rst:866
|
||||
msgid "See also :term:`namespace package`."
|
||||
msgstr ""
|
||||
msgstr "Voir aussi :term:`paquet espace de nom`."
|
||||
|
||||
#: glossary.rst:867
|
||||
msgid "__slots__"
|
||||
msgstr ""
|
||||
msgstr "__slots__"
|
||||
|
||||
#: glossary.rst:869
|
||||
msgid ""
|
||||
|
@ -1860,10 +2035,15 @@ msgid ""
|
|||
"cases where there are large numbers of instances in a memory-critical "
|
||||
"application."
|
||||
msgstr ""
|
||||
"Une déclaration dans une classe qui économise de la mémoire en pré-allouant "
|
||||
"de l'espace pour les instances des attributs, et le dictionnaire des "
|
||||
"instances. Bien que populaire, cette technique est difficile à maîtriser et "
|
||||
"devrait être réservée à de rares cas avec un grand nombre d'instances dans "
|
||||
"une application où la mémoire est un sujet critique."
|
||||
|
||||
#: glossary.rst:874
|
||||
msgid "sequence"
|
||||
msgstr ""
|
||||
msgstr "séquence"
|
||||
|
||||
#: glossary.rst:876
|
||||
msgid ""
|
||||
|
@ -1875,6 +2055,14 @@ msgid ""
|
|||
"`__len__`, but is considered a mapping rather than a sequence because the "
|
||||
"lookups use arbitrary :term:`immutable` keys rather than integers."
|
||||
msgstr ""
|
||||
"Un :term:`itérable` qui gère l'accès efficient à ses éléments par un indice "
|
||||
"sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et "
|
||||
"qui défini une méthode :meth:`__len__` qui donne sa taille. Voici quelques "
|
||||
"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:"
|
||||
"`bytes`. Notez que :class:`dict` a aussi une méthode :meth:`__getitem__`et "
|
||||
"une méthode :meth:`__len__`, mais il est considéré comme un *mapping* plutôt "
|
||||
"qu'une séquence, car ses accès se font par une clef arbitraire :term:"
|
||||
"`immuable` plutôt qu'un nombre entier."
|
||||
|
||||
#: glossary.rst:885
|
||||
msgid ""
|
||||
|
@ -1884,20 +2072,28 @@ msgid ""
|
|||
"meth:`__reversed__`. Types that implement this expanded interface can be "
|
||||
"registered explicitly using :func:`~abc.register`."
|
||||
msgstr ""
|
||||
"La class abstraite de base :class:`collections.abc.Sequence` défini une "
|
||||
"interface plus riche qui va au delà des simples :meth:`__getitem__` et :meth:"
|
||||
"`__len__`, en ajoutant :meth:`count`, :meth:`index`, :meth:`__contains__`, "
|
||||
"et :meth:`__reversed__`. Les types qui implémentent cette interface étendue "
|
||||
"peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`."
|
||||
|
||||
#: glossary.rst:892
|
||||
msgid "single dispatch"
|
||||
msgstr ""
|
||||
msgstr "distribution simple"
|
||||
|
||||
#: glossary.rst:894
|
||||
msgid ""
|
||||
"A form of :term:`generic function` dispatch where the implementation is "
|
||||
"chosen based on the type of a single argument."
|
||||
msgstr ""
|
||||
"Une forme de distribution, comme les :term:`fonction génériques <fonction "
|
||||
"générique>`, où l'implémentation est choisie en fonction du type d'un seul "
|
||||
"argument."
|
||||
|
||||
#: glossary.rst:896
|
||||
msgid "slice"
|
||||
msgstr ""
|
||||
msgstr "tranche"
|
||||
|
||||
#: glossary.rst:898
|
||||
msgid ""
|
||||
|
@ -1906,10 +2102,15 @@ msgid ""
|
|||
"when several are given, such as in ``variable_name[1:3:5]``. The bracket "
|
||||
"(subscript) notation uses :class:`slice` objects internally."
|
||||
msgstr ""
|
||||
"*slice*, un objet contenant habituellement une portion de :term:`séquence`. "
|
||||
"Une tranche est crée en utilisant la notation ``[]`` avec des ``:`` entre "
|
||||
"les nombres lorsque plusieurs sont fournis, tel que dans "
|
||||
"``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` "
|
||||
"en interne."
|
||||
|
||||
#: glossary.rst:902
|
||||
msgid "special method"
|
||||
msgstr ""
|
||||
msgstr "méthode spéciale"
|
||||
|
||||
#: glossary.rst:904
|
||||
msgid ""
|
||||
|
@ -1918,6 +2119,10 @@ msgid ""
|
|||
"with double underscores. Special methods are documented in :ref:"
|
||||
"`specialnames`."
|
||||
msgstr ""
|
||||
"*special method*: Une méthode appelée implicitement par Python pour exécuter "
|
||||
"une opération sur un type, tel qu'une addition. De telles méthodes ont des "
|
||||
"noms démarrant et terminant par des doubles tirets bas. Les méthodes "
|
||||
"spéciales sont documentées dans :ref:`specialnames`."
|
||||
|
||||
#: glossary.rst:908
|
||||
msgid "statement"
|
||||
|
@ -1929,10 +2134,14 @@ msgid ""
|
|||
"an :term:`expression` or one of several constructs with a keyword, such as :"
|
||||
"keyword:`if`, :keyword:`while` or :keyword:`for`."
|
||||
msgstr ""
|
||||
"Une instruction (*statement*) fait partie d'une suite, (un \"bloc\" de "
|
||||
"code). Une instruction est soit une :term:`expression` soit une ou plusieurs "
|
||||
"constructions basées sur un mot-clef, tel qu'un :keyword:`if`, :keyword:"
|
||||
"`while`, ou :keyword:`for`."
|
||||
|
||||
#: glossary.rst:913
|
||||
msgid "struct sequence"
|
||||
msgstr ""
|
||||
msgstr "struct sequence"
|
||||
|
||||
#: glossary.rst:915
|
||||
msgid ""
|
||||
|
@ -1943,14 +2152,21 @@ msgid ""
|
|||
"`~collections.somenamedtuple._asdict`. Examples of struct sequences include :"
|
||||
"data:`sys.float_info` and the return value of :func:`os.stat`."
|
||||
msgstr ""
|
||||
"Un uplet (*tuple*) dont les éléments sont nommés. Les *struct sequences* "
|
||||
"exposent une interface similaires au :term:`named tuple` par le fait que "
|
||||
"leurs éléments peuvent être accédés par nom d'attribut ou par indice. "
|
||||
"Cependant, elles n'ont aucune des méthodes du *named tuple*, comme :meth:"
|
||||
"`collections.somenamedtuple._make` ou :meth:`~collections.somenamedtuple."
|
||||
"_asdict`. Par exemple :data:`sys.float_info`, ou les valeurs données par :"
|
||||
"func:`os.stat` sont des *struct sequence*."
|
||||
|
||||
#: glossary.rst:921
|
||||
msgid "text encoding"
|
||||
msgstr ""
|
||||
msgstr "encodage de texte"
|
||||
|
||||
#: glossary.rst:923
|
||||
msgid "A codec which encodes Unicode strings to bytes."
|
||||
msgstr ""
|
||||
msgstr "Un codec qui convertit des chaînes de caractères Unicode en octets."
|
||||
|
||||
#: glossary.rst:924
|
||||
msgid "text file"
|
||||
|
@ -1962,14 +2178,17 @@ msgid ""
|
|||
"text file actually accesses a byte-oriented datastream and handles the :term:"
|
||||
"`text encoding` automatically."
|
||||
msgstr ""
|
||||
"Un :term:`objet fichier` capable de lire et d'écrire des objets :class:"
|
||||
"`str`. Souvent, un fichier texte (*text file*) accède en fait à flux de "
|
||||
"donnée en octets, et gère l':term:`encodage de texte` automatiquement."
|
||||
|
||||
#: glossary.rst:931
|
||||
msgid "A :term:`binary file` reads and write :class:`bytes` objects."
|
||||
msgstr ""
|
||||
msgstr "Un :term:`fichier binaire` lit et écrit des objets :class:`bytes`."
|
||||
|
||||
#: glossary.rst:932
|
||||
msgid "triple-quoted string"
|
||||
msgstr ""
|
||||
msgstr "chaîne entre triple guillemets"
|
||||
|
||||
#: glossary.rst:934
|
||||
msgid ""
|
||||
|
@ -1981,6 +2200,14 @@ msgid ""
|
|||
"continuation character, making them especially useful when writing "
|
||||
"docstrings."
|
||||
msgstr ""
|
||||
"Une chaîne qui est assembée par trois guillemets simples (``'``) ou trois "
|
||||
"guillemets doubles (``\"``). Bien qu'elles ne fournissent aucune "
|
||||
"fonctionalité qui ne serait pas disponnible avec les chaînes entre "
|
||||
"guillemets, elles sont utiles pour moultes raisons. Elles vous autorisent à "
|
||||
"insérer des guillemets simples et doubles dans une chaîne sana voir à les "
|
||||
"protéger, et elles peuvent s'étendre sur plusieurs lignes sans avoir à les "
|
||||
"terminer par un ``\\``, les rendant ainsi particulièrement utile pour les "
|
||||
"chaînes de documentation (*docstrings*)."
|
||||
|
||||
#: glossary.rst:941
|
||||
msgid "type"
|
||||
|
@ -1992,10 +2219,13 @@ msgid ""
|
|||
"object has a type. An object's type is accessible as its :attr:`~instance."
|
||||
"__class__` attribute or can be retrieved with ``type(obj)``."
|
||||
msgstr ""
|
||||
"Le type d'un objet Python détermine quel genre d'objet c'est. Tous les "
|
||||
"objets ont un type. Le type d'un objet peut être obtenu via son attribut :"
|
||||
"attr:`~instance.__class__` ou via ``type(obj)``."
|
||||
|
||||
#: glossary.rst:947
|
||||
msgid "universal newlines"
|
||||
msgstr ""
|
||||
msgstr "retours à la ligne universels"
|
||||
|
||||
#: glossary.rst:949
|
||||
msgid ""
|
||||
|
@ -2005,6 +2235,11 @@ msgid ""
|
|||
"``'\\r'``. See :pep:`278` and :pep:`3116`, as well as :func:`bytes."
|
||||
"splitlines` for an additional use."
|
||||
msgstr ""
|
||||
"Une manière d'interpréter des flux de texte dans lesquels toutes les fin de "
|
||||
"lignes suivantes sont reconnues: la convention Unix ``'\\n'``, la convention "
|
||||
"Windows ``'\\r\\n'``, et l'ancienne convention Macintosh ``'\\r'``. Voir la :"
|
||||
"pep:`278` et la :pep:`3116`, ainsi que la fonction :func:bytes.splitlines` "
|
||||
"pour d'autres usages."
|
||||
|
||||
#: glossary.rst:954
|
||||
msgid "virtual environment"
|
||||
|
@ -2017,10 +2252,14 @@ msgid ""
|
|||
"interfering with the behaviour of other Python applications running on the "
|
||||
"same system."
|
||||
msgstr ""
|
||||
"Un environnement isolé, coopérant à son isolement à l'execution, qui permet "
|
||||
"aux utilisateurs de Python et aux applications d'installer et de mettre à "
|
||||
"jour des paquets sans interférer avec d'autres applications Python "
|
||||
"fonctionnant sur le même système."
|
||||
|
||||
#: glossary.rst:961
|
||||
msgid "See also :ref:`scripts-pyvenv`."
|
||||
msgstr ""
|
||||
msgstr "Voir aussi :ref:`scripts-pyvenv`."
|
||||
|
||||
#: glossary.rst:962
|
||||
msgid "virtual machine"
|
||||
|
@ -2031,10 +2270,13 @@ msgid ""
|
|||
"A computer defined entirely in software. Python's virtual machine executes "
|
||||
"the :term:`bytecode` emitted by the bytecode compiler."
|
||||
msgstr ""
|
||||
"Un ordinateur défini entièrement par du logiciel. La machine virtuelle "
|
||||
"(*virtual machine*) de Python exécute le :term:`bytecode` donné par le "
|
||||
"compilateur de *bytecode*."
|
||||
|
||||
#: glossary.rst:966
|
||||
msgid "Zen of Python"
|
||||
msgstr ""
|
||||
msgstr "Le Zen de Python"
|
||||
|
||||
#: glossary.rst:968
|
||||
msgid ""
|
||||
|
@ -2042,3 +2284,6 @@ msgid ""
|
|||
"understanding and using the language. The listing can be found by typing "
|
||||
"\"``import this``\" at the interactive prompt."
|
||||
msgstr ""
|
||||
"Liste de principes et de philosophies utiles pour comprendre et utiliser le "
|
||||
"langage. Cette liste peut être obtenue en tapant \"``import this``\" dans "
|
||||
"une invite Python interactive."
|
||||
|
|
|
@ -107680,7 +107680,7 @@ msgstr ""
|
|||
|
||||
#: library/stdtypes.rst:4375
|
||||
msgid "See :ref:`objects` and :ref:`class` for these."
|
||||
msgstr "Voir :ref:`objets` et :ref:`classe`."
|
||||
msgstr "Voir :ref:`objects` et :ref:`class`."
|
||||
|
||||
#: library/stdtypes.rst:4383
|
||||
msgid ""
|
||||
|
|
Loading…
Reference in New Issue