forked from AFPy/python-docs-fr
tx pull
This commit is contained in:
parent c2cbb33365
commit 4474968850
13 changed files with 138 additions and 501 deletions
| | @ -40,6 +40,8 @@ msgid "" | |||
"This does everything :c:func:`PyObject_Init` does, and also initializes the " | ||||
"length information for a variable-size object." | ||||
msgstr "" | ||||
"Ça fait tout ce que :c:func:`PyObject_Init` fait, et il initialise également " | ||||
"l'information de la longueur pour un objet de taille variable." | ||||
| ||||
#: ../Doc/c-api/allocation.rst:32 | ||||
msgid "" | ||||
| | @ -49,6 +51,11 @@ msgid "" | |||
"the memory allocation is determined from the :c:member:`~PyTypeObject." | ||||
"tp_basicsize` field of the type object." | ||||
msgstr "" | ||||
"Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " | ||||
"l'objet de type python *type*. Les champs non définis par l'en-tête de " | ||||
"l'objet Python ne sont pas initialisés; le compteur de la référence objet " | ||||
"sera un. La taille de l'allocation de la mémoire est déterminé par le champs " | ||||
"de l'objet type :c:member:`~PyTypeObject.tp_basicsize`." | ||||
| ||||
#: ../Doc/c-api/allocation.rst:41 | ||||
msgid "" | ||||
| | @ -61,6 +68,15 @@ msgid "" | |||
"Embedding the array of fields into the same allocation decreases the number " | ||||
"of allocations, improving the memory management efficiency." | ||||
msgstr "" | ||||
"Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " | ||||
"l'objet de type Python *type*. Les champs non définis par l'en-tête de " | ||||
"l'objet Python ne sont pas initialisés. La mémoire allouée autorise pour la " | ||||
"structure *TYPE* plus *size* champs de la taille donnée par le champ de " | ||||
"*type* :c:member:`~PyTypeObject.tp_itemsize`. C'est utile pour " | ||||
"l'implémentation d'objets comme les tuples, qui sont capables de déterminer " | ||||
"leur taille durant le temps de la construction. Intégrer l'array de champs " | ||||
"dans la même allocation diminue le nombre d'allocations, mettant à l'épreuve " | ||||
"l'efficacité de la gestion de la mémoire." | ||||
| ||||
#: ../Doc/c-api/allocation.rst:53 | ||||
msgid "" | ||||
| | @ -70,6 +86,11 @@ msgid "" | |||
"fields of the object should not be accessed after this call as the memory is " | ||||
"no longer a valid Python object." | ||||
msgstr "" | ||||
"Libère la mémoire allouée à un objet utilisant :c:func:`PyObject_New` ou :c:" | ||||
"func:`PyObject_NewVar`. C'est normalement appelé par le gestionnaire :c:" | ||||
"member:`~PyTypeObject.tp_dealloc` spécifié dans le type d'objet. Le champ de " | ||||
"l'objet ne devrait pas être accessible après cet appel puisque la mémoire " | ||||
"n'est plus un objet Python valide." | ||||
| ||||
#: ../Doc/c-api/allocation.rst:62 | ||||
msgid "" | ||||
| | @ -77,10 +98,13 @@ msgid "" | |||
"using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " | ||||
"object." | ||||
msgstr "" | ||||
"Objet qui est visible en tant que ``None`` dans Python. Ne devrait être " | ||||
"accessible uniquement en utilisant la macro :c:macro:`Py_None`, qui évalue " | ||||
"cet objet à un pointeur." | ||||
| ||||
#: ../Doc/c-api/allocation.rst:69 | ||||
msgid ":c:func:`PyModule_Create`" | ||||
msgstr "" | ||||
msgstr ":c:func:`PyModule_Create`" | ||||
| ||||
#: ../Doc/c-api/allocation.rst:70 | ||||
msgid "To allocate and create extension modules." | ||||
| | | |||
| | @ -19,12 +19,14 @@ msgstr "" | |||
| ||||
#: ../Doc/c-api/apiabiversion.rst:7 | ||||
msgid "API and ABI Versioning" | ||||
msgstr "" | ||||
msgstr "Version des API et ABI" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:9 | ||||
msgid "" | ||||
"``PY_VERSION_HEX`` is the Python version number encoded in a single integer." | ||||
msgstr "" | ||||
"``PY_VERSION_HEX`` est le numéro de version de Python encodé en un seul " | ||||
"entier." | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:11 | ||||
msgid "" | ||||
| | @ -32,6 +34,9 @@ msgid "" | |||
"underlying version information can be found by treating it as a 32 bit " | ||||
"number in the following manner:" | ||||
msgstr "" | ||||
"Par exemple si le ``PY_VERSION_HEX` est défini à ``0x030401a2``, la " | ||||
"version d'information sous-jacente peut être trouvée en la traitant comme un " | ||||
"nombre sous 32 bits de la manière suivante:" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:16 | ||||
msgid "Bytes" | ||||
| | @ -51,7 +56,7 @@ msgstr "``1``" | |||
| ||||
#: ../Doc/c-api/apiabiversion.rst:18 | ||||
msgid "``1-8``" | ||||
msgstr "" | ||||
msgstr "``1-8``" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:18 | ||||
msgid "``PY_MAJOR_VERSION`` (the ``3`` in ``3.4.1a2``)" | ||||
| | @ -63,7 +68,7 @@ msgstr "``2``" | |||
| ||||
#: ../Doc/c-api/apiabiversion.rst:21 | ||||
msgid "``9-16``" | ||||
msgstr "" | ||||
msgstr "``9-16``" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:21 | ||||
msgid "``PY_MINOR_VERSION`` (the ``4`` in ``3.4.1a2``)" | ||||
| | @ -75,7 +80,7 @@ msgstr "``3``" | |||
| ||||
#: ../Doc/c-api/apiabiversion.rst:24 | ||||
msgid "``17-24``" | ||||
msgstr "" | ||||
msgstr "``17-24``" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:24 | ||||
msgid "``PY_MICRO_VERSION`` (the ``1`` in ``3.4.1a2``)" | ||||
| | @ -87,27 +92,32 @@ msgstr "``4``" | |||
| ||||
#: ../Doc/c-api/apiabiversion.rst:27 | ||||
msgid "``25-28``" | ||||
msgstr "" | ||||
msgstr "``25-28``" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:27 | ||||
msgid "" | ||||
"``PY_RELEASE_LEVEL`` (``0xA`` for alpha, ``0xB`` for beta, ``0xC`` for " | ||||
"release candidate and ``0xF`` for final), in this case it is alpha." | ||||
msgstr "" | ||||
"``PY_RELEASE_LEVEL`` (``0xA`` pour alpha, ``0xB`` pour bêta, ``0xC`` pour " | ||||
"une version candidate et ``0xF`` pour final), dans ce cas c'est alpha." | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:32 | ||||
msgid "``29-32``" | ||||
msgstr "" | ||||
msgstr "``29-32``" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:32 | ||||
msgid "" | ||||
"``PY_RELEASE_SERIAL`` (the ``2`` in ``3.4.1a2``, zero for final releases)" | ||||
msgstr "" | ||||
"``PY_RELEASE_SERIAL`` (le ``2`` au ``3.4.1a2``, zéro pour des versions " | ||||
"finales)" | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:36 | ||||
msgid "Thus ``3.4.1a2`` is hexversion ``0x030401a2``." | ||||
msgstr "" | ||||
msgstr "Ainsi ``3.4.1a2`` est une hexane-version ``0x030401a2``." | ||||
| ||||
#: ../Doc/c-api/apiabiversion.rst:38 | ||||
msgid "All the given macros are defined in :source:`Include/patchlevel.h`." | ||||
msgstr "" | ||||
"Toutes les macros données sont définies dans :source:`Include/patchlevel.h`." | ||||
| | | |||
| | @ -36,34 +36,46 @@ msgstr "" | |||
| ||||
#: ../Doc/c-api/bool.rst:16 | ||||
msgid "Return true if *o* is of type :c:data:`PyBool_Type`." | ||||
msgstr "" | ||||
msgstr "Renvoie vrai si *o* est de type :c:data:`PyBook_Type`." | ||||
| ||||
#: ../Doc/c-api/bool.rst:21 | ||||
msgid "" | ||||
"The Python ``False`` object. This object has no methods. It needs to be " | ||||
"treated just like any other object with respect to reference counts." | ||||
msgstr "" | ||||
"L'objet Python ``False``. Cet objet n'a pas de méthodes. En ce qui concerne " | ||||
"le comptage de référence, il doit être traité comme n'importe quel autre " | ||||
"objet." | ||||
| ||||
#: ../Doc/c-api/bool.rst:27 | ||||
msgid "" | ||||
"The Python ``True`` object. This object has no methods. It needs to be " | ||||
"treated just like any other object with respect to reference counts." | ||||
msgstr "" | ||||
"L'objet Python ``True``. Cet objet n'a pas de méthodes. En ce qui concerne " | ||||
"le comptage de références, il doit être traité comme n'importe quel autre " | ||||
"objet." | ||||
| ||||
#: ../Doc/c-api/bool.rst:33 | ||||
msgid "" | ||||
"Return :const:`Py_False` from a function, properly incrementing its " | ||||
"reference count." | ||||
msgstr "" | ||||
"Renvoie :const:`Py_False` depuis une fonction tout en incrémentant son " | ||||
"nombre de références." | ||||
| ||||
#: ../Doc/c-api/bool.rst:39 | ||||
msgid "" | ||||
"Return :const:`Py_True` from a function, properly incrementing its reference " | ||||
"count." | ||||
msgstr "" | ||||
"Renvoie :const:`Py_True` depuis une fonction, en incrémentant son nombre de " | ||||
"références." | ||||
| ||||
#: ../Doc/c-api/bool.rst:45 | ||||
msgid "" | ||||
"Return a new reference to :const:`Py_True` or :const:`Py_False` depending on " | ||||
"the truth value of *v*." | ||||
msgstr "" | ||||
"Renvoie une nouvelle référence de :const:`Py_True` ou :const:`Py_False` en " | ||||
"fonction de la valeur de *v*." | ||||
| | | |||
19 c-api/gen.po
19
c-api/gen.po | | @ -19,7 +19,7 @@ msgstr "" | |||
| ||||
#: ../Doc/c-api/gen.rst:6 | ||||
msgid "Generator Objects" | ||||
msgstr "" | ||||
msgstr "Objets Générateur" | ||||
| ||||
#: ../Doc/c-api/gen.rst:8 | ||||
msgid "" | ||||
| | @ -28,22 +28,29 @@ msgid "" | |||
"rather than explicitly calling :c:func:`PyGen_New` or :c:func:" | ||||
"`PyGen_NewWithQualName`." | ||||
msgstr "" | ||||
"Les objets générés sont ce qui est utilisé par Python pour implémenter les " | ||||
"itérations générées. Ils sont normalement crées en iterant a traver une " | ||||
"fonction qui prends des valeurs, au lieu d'appeler explicitement :c:func:" | ||||
"`PyGen_New` ou :c:func:`PyGen_NewWithQualName`." | ||||
| ||||
#: ../Doc/c-api/gen.rst:15 | ||||
msgid "The C structure used for generator objects." | ||||
msgstr "" | ||||
msgstr "La structure C utilisée pour les objets générateurs" | ||||
| ||||
#: ../Doc/c-api/gen.rst:20 | ||||
msgid "The type object corresponding to generator objects." | ||||
msgstr "" | ||||
msgstr "Le type objet correspondant aux objets générateurs." | ||||
| ||||
#: ../Doc/c-api/gen.rst:25 | ||||
msgid "Return true if *ob* is a generator object; *ob* must not be *NULL*." | ||||
msgstr "" | ||||
"Retourne vrai si *ob* est un objet générateur. *ob* ne doit pas être *NULL*." | ||||
| ||||
#: ../Doc/c-api/gen.rst:30 | ||||
msgid "Return true if *ob*'s type is *PyGen_Type*; *ob* must not be *NULL*." | ||||
msgstr "" | ||||
"Retourne vrai si le type de *ob* est *PyGen_Type*. *ob* ne doit pas être " | ||||
"*NULL*." | ||||
| ||||
#: ../Doc/c-api/gen.rst:35 | ||||
msgid "" | ||||
| | @ -51,6 +58,9 @@ msgid "" | |||
"reference to *frame* is stolen by this function. The argument must not be " | ||||
"*NULL*." | ||||
msgstr "" | ||||
"Créer et retourner un nouvel objet générateur basé sur l'objet *charpente*. " | ||||
"Une référence a la charpente est prise à la fonction. l'argument ne devra " | ||||
"pas être *NULL*" | ||||
| ||||
#: ../Doc/c-api/gen.rst:41 | ||||
msgid "" | ||||
| | @ -59,3 +69,6 @@ msgid "" | |||
"to *frame* is stolen by this function. The *frame* argument must not be " | ||||
"*NULL*." | ||||
msgstr "" | ||||
"Créer et retourner un nouvel objet générateur basé sur l'objet *charpente*. " | ||||
"Une référence a la charpente est prise à la fonction. l'argument ne devra " | ||||
"pas être *NULL*" | ||||
| | | |||
| | @ -19,11 +19,11 @@ msgstr "" | |||
| ||||
#: ../Doc/distutils/commandref.rst:5 | ||||
msgid "Command Reference" | ||||
msgstr "" | ||||
msgstr "Référence des commandes" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:22 | ||||
msgid "Installing modules: the :command:`install` command family" | ||||
msgstr "" | ||||
msgstr "Installer des modules: la famille de commande :command:`install`" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:24 | ||||
msgid "" | ||||
| | @ -31,26 +31,29 @@ msgid "" | |||
"runs the subcommands :command:`install_lib`, :command:`install_data` and :" | ||||
"command:`install_scripts`." | ||||
msgstr "" | ||||
"La commande d'installation s’assure que la commande de construction a bien " | ||||
"été lancé puis lance les sous-commandes :command:`install_lib`, :command:" | ||||
"`install_data` et :command:`install_scripts`." | ||||
| ||||
#: ../Doc/distutils/commandref.rst:35 | ||||
msgid ":command:`install_data`" | ||||
msgstr "" | ||||
msgstr ":command:`install_data`" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:37 | ||||
msgid "This command installs all data files provided with the distribution." | ||||
msgstr "" | ||||
msgstr "Cette commande installe tout les fichier fournit avec la distribution" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:43 | ||||
msgid ":command:`install_scripts`" | ||||
msgstr "" | ||||
msgstr ":command:`install_scripts`" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:45 | ||||
msgid "This command installs all (Python) scripts in the distribution." | ||||
msgstr "" | ||||
msgstr "Cette commande installe tout les scripts (Python) dans la distribution" | ||||
| ||||
#: ../Doc/distutils/commandref.rst:54 | ||||
msgid "Creating a source distribution: the :command:`sdist` command" | ||||
msgstr "" | ||||
msgstr "Créer une distribution source: la commande :command:`sdist` " | ||||
| ||||
#: ../Doc/distutils/commandref.rst:58 | ||||
msgid "The manifest template commands are:" | ||||
| | | |||
| | @ -416,6 +416,8 @@ msgid "" | |||
"``pythonX.Y-config --ldflags`` 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:" | ||||
| ||||
#: ../Doc/extending/embedding.rst:312 | ||||
msgid "" | ||||
| | | |||
| | @ -20,10 +20,13 @@ msgstr "" | |||
#: ../Doc/faq/windows.rst:7 | ||||
msgid "Python on Windows FAQ" | ||||
msgstr "" | ||||
"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " | ||||
"le lancement de programmes depuis la ligne de commande de Windows alors tout " | ||||
"semblera évident; Sinon, vous auriez besoin d'être un peu guidé." | ||||
| ||||
#: ../Doc/faq/windows.rst:18 | ||||
msgid "How do I run a Python program under Windows?" | ||||
msgstr "" | ||||
msgstr "Comment exécuter un programme Python sous Windows ?" | ||||
| ||||
#: ../Doc/faq/windows.rst:20 | ||||
msgid "" | ||||
| | @ -31,10 +34,13 @@ msgid "" | |||
"familiar with running programs from the Windows command line then everything " | ||||
"will seem obvious; otherwise, you might need a little more guidance." | ||||
msgstr "" | ||||
"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " | ||||
"le lancement de programmes depuis la ligne de commande de Windows alors tout " | ||||
"semblera évident; Sinon, vous auriez besoin d'être un peu guidé." | ||||
| ||||
#: ../Doc/faq/windows.rst:0 | ||||
msgid "|Python Development on XP|_" | ||||
msgstr "" | ||||
msgstr "Développement |Python sur XP|_" | ||||
| ||||
#: ../Doc/faq/windows.rst:27 | ||||
msgid "" | ||||
| | @ -60,6 +66,8 @@ msgid "" | |||
"The letter may be different, and there might be other things after it, so " | ||||
"you might just as easily see something like::" | ||||
msgstr "" | ||||
"la lettre peut être différente, et il peut y avoir d'autres choses à la " | ||||
"suite, alors il se peut aussi bien que vous voyez quelque chose tel que::" | ||||
| ||||
#: ../Doc/faq/windows.rst:51 | ||||
msgid "" | ||||
| | | |||
| | @ -1,474 +0,0 @@ | |||
# SOME DESCRIPTIVE TITLE. | ||||
# Copyright (C) 2001-2016, Python Software Foundation | ||||
# 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.6\n" | ||||
"Report-Msgid-Bugs-To: \n" | ||||
"POT-Creation-Date: 2016-10-30 10:40+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" | ||||
"MIME-Version: 1.0\n" | ||||
"Content-Type: text/plain; charset=UTF-8\n" | ||||
"Content-Transfer-Encoding: 8bit\n" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:4 | ||||
msgid ":mod:`hashlib` --- BLAKE2 hash functions" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:13 | ||||
msgid "" | ||||
"BLAKE2_ is a cryptographic hash function defined in RFC-7693_ that comes in " | ||||
"two flavors:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:16 | ||||
msgid "" | ||||
"**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " | ||||
"between 1 and 64 bytes," | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:19 | ||||
msgid "" | ||||
"**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " | ||||
"any size between 1 and 32 bytes." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:22 | ||||
msgid "" | ||||
"BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " | ||||
"**salted hashing**, **personalization**, and **tree hashing**." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:25 | ||||
msgid "" | ||||
"Hash objects from this module follow the API of standard library's :mod:" | ||||
"`hashlib` objects." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:30 | ||||
msgid "Module" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:33 | ||||
msgid "Creating hash objects" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:35 | ||||
msgid "New hash objects are created by calling constructor functions:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:47 | ||||
msgid "" | ||||
"These functions return the corresponding hash objects for calculating " | ||||
"BLAKE2b or BLAKE2s. They optionally take these general parameters:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:50 | ||||
msgid "" | ||||
"*data*: initial chunk of data to hash, which must be interpretable as buffer " | ||||
"of bytes." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:53 | ||||
msgid "*digest_size*: size of output digest in bytes." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:55 | ||||
msgid "" | ||||
"*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " | ||||
"BLAKE2s)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:58 | ||||
msgid "" | ||||
"*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " | ||||
"bytes for BLAKE2s)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:61 | ||||
msgid "" | ||||
"*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " | ||||
"for BLAKE2s)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:64 | ||||
msgid "The following table shows limits for general parameters (in bytes):" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:67 | ||||
msgid "Hash" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:67 | ||||
msgid "digest_size" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:67 | ||||
msgid "len(key)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:67 | ||||
msgid "len(salt)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:67 | ||||
msgid "len(person)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:69 | ||||
msgid "BLAKE2b" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:69 | ||||
msgid "64" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:69 | ||||
msgid "16" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:70 | ||||
msgid "BLAKE2s" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:70 | ||||
msgid "32" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:70 | ||||
msgid "8" | ||||
msgstr "8" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:75 | ||||
msgid "" | ||||
"BLAKE2 specification defines constant lengths for salt and personalization " | ||||
"parameters, however, for convenience, this implementation accepts byte " | ||||
"strings of any size up to the specified length. If the length of the " | ||||
"parameter is less than specified, it is padded with zeros, thus, for " | ||||
"example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " | ||||
"the case for *key*.)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:82 | ||||
msgid "These sizes are available as module `constants`_ described below." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:84 | ||||
msgid "" | ||||
"Constructor functions also accept the following tree hashing parameters:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:86 | ||||
msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:88 | ||||
msgid "" | ||||
"*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " | ||||
"mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:91 | ||||
msgid "" | ||||
"*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " | ||||
"sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:94 | ||||
msgid "" | ||||
"*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " | ||||
"BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:97 | ||||
msgid "" | ||||
"*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:99 | ||||
msgid "" | ||||
"*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " | ||||
"in sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:102 | ||||
msgid "" | ||||
"*last_node*: boolean indicating whether the processed node is the last one " | ||||
"(`False` for sequential mode)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:108 | ||||
msgid "" | ||||
"See section 2.10 in `BLAKE2 specification <https://blake2.net/" | ||||
"blake2_20130129.pdf>`_ for comprehensive review of tree hashing." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:114 | ||||
msgid "Constants" | ||||
msgstr "Constantes" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:119 | ||||
msgid "Salt length (maximum length accepted by constructors)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:125 | ||||
msgid "" | ||||
"Personalization string length (maximum length accepted by constructors)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:131 | ||||
msgid "Maximum key size." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:137 | ||||
msgid "Maximum digest size that the hash function can output." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:141 | ||||
msgid "Examples" | ||||
msgstr "Exemples" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:144 | ||||
msgid "Simple hashing" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:146 | ||||
msgid "" | ||||
"To calculate hash of some data, you should first construct a hash object by " | ||||
"calling the appropriate constructor function (:func:`blake2b` or :func:" | ||||
"`blake2s`), then update it with the data by calling :meth:`update` on the " | ||||
"object, and, finally, get the digest out of the object by calling :meth:" | ||||
"`digest` (or :meth:`hexdigest` for hex-encoded string)." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:159 | ||||
msgid "" | ||||
"As a shortcut, you can pass the first chunk of data to update directly to " | ||||
"the constructor as the first argument (or as *data* keyword argument):" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:166 | ||||
msgid "" | ||||
"You can call :meth:`hash.update` as many times as you need to iteratively " | ||||
"update the hash:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:179 | ||||
msgid "Using different digest sizes" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:181 | ||||
msgid "" | ||||
"BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " | ||||
"32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " | ||||
"changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:195 | ||||
msgid "" | ||||
"Hash objects with different digest sizes have completely different outputs " | ||||
"(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " | ||||
"produce different outputs even if the output length is the same:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:211 | ||||
msgid "Keyed hashing" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:213 | ||||
msgid "" | ||||
"Keyed hashing can be used for authentication as a faster and simpler " | ||||
"replacement for `Hash-based message authentication code <http://en.wikipedia." | ||||
"org/wiki/Hash-based_message_authentication_code>`_ (HMAC). BLAKE2 can be " | ||||
"securely used in prefix-MAC mode thanks to the indifferentiability property " | ||||
"inherited from BLAKE." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:219 | ||||
msgid "" | ||||
"This example shows how to get a (hex-encoded) 128-bit authentication code " | ||||
"for message ``b'message data'`` with key ``b'pseudorandom key'``::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:229 | ||||
msgid "" | ||||
"As a practical example, a web application can symmetrically sign cookies " | ||||
"sent to users and later verify them to make sure they weren't tampered with::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:253 | ||||
msgid "" | ||||
"Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " | ||||
"used in HMAC construction with :mod:`hmac` module::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:264 | ||||
msgid "Randomized hashing" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:266 | ||||
msgid "" | ||||
"By setting *salt* parameter users can introduce randomization to the hash " | ||||
"function. Randomized hashing is useful for protecting against collision " | ||||
"attacks on the hash function used in digital signatures." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:270 | ||||
msgid "" | ||||
"Randomized hashing is designed for situations where one party, the message " | ||||
"preparer, generates all or part of a message to be signed by a second party, " | ||||
"the message signer. If the message preparer is able to find cryptographic " | ||||
"hash function collisions (i.e., two messages producing the same hash value), " | ||||
"then she might prepare meaningful versions of the message that would produce " | ||||
"the same hash value and digital signature, but with different results (e.g., " | ||||
"transferring $1,000,000 to an account, rather than $10). Cryptographic hash " | ||||
"functions have been designed with collision resistance as a major goal, but " | ||||
"the current concentration on attacking cryptographic hash functions may " | ||||
"result in a given cryptographic hash function providing less collision " | ||||
"resistance than expected. Randomized hashing offers the signer additional " | ||||
"protection by reducing the likelihood that a preparer can generate two or " | ||||
"more messages that ultimately yield the same hash value during the digital " | ||||
"signature generation process – even if it is practical to find collisions " | ||||
"for the hash function. However, the use of randomized hashing may reduce the " | ||||
"amount of security provided by a digital signature when all portions of the " | ||||
"message are prepared by the signer." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:289 | ||||
msgid "" | ||||
"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" <http://csrc." | ||||
"nist.gov/publications/nistpubs/800-106/NIST-SP-800-106.pdf>`_)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:292 | ||||
msgid "" | ||||
"In BLAKE2 the salt is processed as a one-time input to the hash function " | ||||
"during initialization, rather than as an input to each compression function." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:297 | ||||
msgid "" | ||||
"*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " | ||||
"cryptographic hash function, such as SHA-256, is not suitable for hashing " | ||||
"passwords. See `BLAKE2 FAQ <https://blake2.net/#qa>`_ for more information." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:320 | ||||
msgid "Personalization" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:322 | ||||
msgid "" | ||||
"Sometimes it is useful to force hash function to produce different digests " | ||||
"for the same input for different purposes. Quoting the authors of the Skein " | ||||
"hash function:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:326 | ||||
msgid "" | ||||
"We recommend that all application designers seriously consider doing this; " | ||||
"we have seen many protocols where a hash that is computed in one part of the " | ||||
"protocol can be used in an entirely different part because two hash " | ||||
"computations were done on similar or related data, and the attacker can " | ||||
"force the application to make the hash inputs the same. Personalizing each " | ||||
"hash function used in the protocol summarily stops this type of attack." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:333 | ||||
msgid "" | ||||
"(`The Skein Hash Function Family <http://www.skein-hash.info/sites/default/" | ||||
"files/skein1.3.pdf>`_, p. 21)" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:337 | ||||
msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:351 | ||||
msgid "" | ||||
"Personalization together with the keyed mode can also be used to derive " | ||||
"different keys from a single one." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:365 | ||||
msgid "Tree mode" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:367 | ||||
msgid "Here's an example of hashing a minimal tree with two leaf nodes::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:373 | ||||
msgid "" | ||||
"This example uses 64-byte internal digests, and returns the 32-byte final " | ||||
"digest::" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:403 | ||||
msgid "Credits" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:405 | ||||
msgid "" | ||||
"BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " | ||||
"Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " | ||||
"created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " | ||||
"*Raphael C.-W. Phan*." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:410 | ||||
msgid "" | ||||
"It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " | ||||
"Bernstein*." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:412 | ||||
msgid "" | ||||
"The stdlib implementation is based on pyblake2_ module. It was written by " | ||||
"*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " | ||||
"documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:416 | ||||
msgid "The C code was partly rewritten for Python by *Christian Heimes*." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:418 | ||||
msgid "" | ||||
"The following public domain dedication applies for both C hash function " | ||||
"implementation, extension code, and this documentation:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:421 | ||||
msgid "" | ||||
"To the extent possible under law, the author(s) have dedicated all copyright " | ||||
"and related and neighboring rights to this software to the public domain " | ||||
"worldwide. This software is distributed without any warranty." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:425 | ||||
msgid "" | ||||
"You should have received a copy of the CC0 Public Domain Dedication along " | ||||
"with this software. If not, see http://creativecommons.org/publicdomain/" | ||||
"zero/1.0/." | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:429 | ||||
msgid "" | ||||
"The following people have helped with development or contributed their " | ||||
"changes to the project and the public domain according to the Creative " | ||||
"Commons Public Domain Dedication 1.0 Universal:" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:433 | ||||
msgid "*Alexandr Sokolovskiy*" | ||||
msgstr "" | ||||
| ||||
#: ../Doc/library/hashlib-blake2.rst:435 | ||||
msgid "Official BLAKE2 website: https://blake2.net" | ||||
msgstr "" | ||||
| | @ -388,6 +388,8 @@ msgstr "" | |||
#: ../Doc/library/http.cookiejar.rst:278 | ||||
msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." | ||||
msgstr "" | ||||
":exc:`IOError` était normalement levée, elle est maintenant un alias de :exc:" | ||||
"`OSError`." | ||||
| ||||
#: ../Doc/library/http.cookiejar.rst:284 | ||||
msgid "Clear all cookies and reload cookies from a saved file." | ||||
| | | |||
| | @ -23,7 +23,7 @@ msgstr ":mod:`os` --- Diverses interfaces pour le système d'exploitation" | |||
| ||||
#: ../Doc/library/os.rst:7 | ||||
msgid "**Source code:** :source:`Lib/os.py`" | ||||
msgstr "" | ||||
msgstr "**Code source:** :source:`Lib/os.py`" | ||||
| ||||
#: ../Doc/library/os.rst:11 | ||||
msgid "" | ||||
| | @ -456,6 +456,8 @@ msgstr "" | |||
msgid "" | ||||
":func:`getenvb` is only available if :data:`supports_bytes_environ` is True." | ||||
msgstr "" | ||||
":func:`getenvb` n'est disponible que si :data:`supports_byte_environ` vaut " | ||||
"``True``." | ||||
| ||||
#: ../Doc/library/os.rst:249 | ||||
msgid "Availability: most flavors of Unix." | ||||
| | @ -468,6 +470,11 @@ msgid "" | |||
"specified, should be an environment variable dictionary to lookup the PATH " | ||||
"in. By default, when *env* is ``None``, :data:`environ` is used." | ||||
msgstr "" | ||||
"Retourne la liste des dossier qui seront parcouru pour trouver un " | ||||
"exécutable, similaire à un shell lorsque il lance un processus. *env*, quand " | ||||
"spécifié, doit être un dictionnaire de variable d'environnement afin d'y " | ||||
"rechercher le PATH. Par défaut quand *env* est ``None``, :data:`environ` est " | ||||
"utilisé." | ||||
| ||||
#: ../Doc/library/os.rst:267 | ||||
msgid "" | ||||
| | @ -1339,11 +1346,11 @@ msgstr "" | |||
| ||||
#: ../Doc/library/os.rst:954 | ||||
msgid "The above constants are available on Unix and Windows." | ||||
msgstr "" | ||||
msgstr "Les constantes ci-dessus sont disponibles sur Unix et Windows." | ||||
| ||||
#: ../Doc/library/os.rst:965 | ||||
msgid "The above constants are only available on Unix." | ||||
msgstr "" | ||||
msgstr "Les constantes ci-dessus sont uniquement disponibles sur Unix." | ||||
| ||||
#: ../Doc/library/os.rst:967 | ||||
msgid "Add :data:`O_CLOEXEC` constant." | ||||
| | @ -1351,13 +1358,15 @@ msgstr "Ajout de la constante :data:`O_CLOCEXEC`." | |||
| ||||
#: ../Doc/library/os.rst:978 | ||||
msgid "The above constants are only available on Windows." | ||||
msgstr "" | ||||
msgstr "Les constantes ci-dessus sont uniquement disponibles sur Windows." | ||||
| ||||
#: ../Doc/library/os.rst:991 | ||||
msgid "" | ||||
"The above constants are extensions and not present if they are not defined " | ||||
"by the C library." | ||||
msgstr "" | ||||
"Les constantes ci-dessus sont des extensions et ne sont pas présentes si " | ||||
"elles ne sont pas définies par la bibliothèque C." | ||||
| ||||
#: ../Doc/library/os.rst:994 | ||||
msgid "" | ||||
| | @ -1451,6 +1460,8 @@ msgid "" | |||
"Read from a file descriptor, *fd*, at a position of *offset*. It will read " | ||||
"up to *buffersize* number of bytes. The file offset remains unchanged." | ||||
msgstr "" | ||||
"Lit depuis un descripteur de fichier *fd* à la position de l'*offset*. Cela " | ||||
"va lire jusqu'à *buffersize* bytes. L'offset du fichier ne sera pas changé." | ||||
| ||||
#: ../Doc/library/os.rst:1092 | ||||
msgid "" | ||||
| | | |||
| | @ -19,7 +19,7 @@ msgstr "" | |||
| ||||
#: ../Doc/library/uu.rst:2 | ||||
msgid ":mod:`uu` --- Encode and decode uuencode files" | ||||
msgstr "" | ||||
msgstr ":mod:`uu` --- Encode et decode les fichiers uuencode" | ||||
| ||||
#: ../Doc/library/uu.rst:9 | ||||
msgid "**Source code:** :source:`Lib/uu.py`" | ||||
| | @ -36,15 +36,26 @@ msgid "" | |||
"interface is deprecated; it's better for the caller to open the file itself, " | ||||
"and be sure that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows." | ||||
msgstr "" | ||||
"Ce module encode et décode les fichiers au format uuencode, permettant à des " | ||||
"données binaires d'être transférer lors de connexion uniquement-ASCII. " | ||||
"Partout où un fichier est attendu, les fonctions acceptent un \"objet fichier" | ||||
"\". Pour des raisons de compatibilité avec les anciennes versions de Python, " | ||||
"une chaine de caractère contenant un chemin est aussi accepté, et le fichier " | ||||
"correspondant sera ouvert en lecture et écriture; le chemin ``'-'`` est " | ||||
"considéré comme l'entrée ou la sortie standard. Cependant cette interface " | ||||
"est déprécié; il est bien mieux d'ouvrir le fichier sois-même, en vous " | ||||
"assurant que, lorsque c'est nécéssaire, le mode d'ouverture soit ``'rb'`` ou " | ||||
"``'wb'`` sur Windows." | ||||
| ||||
#: ../Doc/library/uu.rst:26 | ||||
msgid "" | ||||
"This code was contributed by Lance Ellinghouse, and modified by Jack Jansen." | ||||
msgstr "" | ||||
"Ce code a été contribué par Lance Ellinghouse, et modifié par Jack Jansen." | ||||
| ||||
#: ../Doc/library/uu.rst:28 | ||||
msgid "The :mod:`uu` module defines the following functions:" | ||||
msgstr "" | ||||
msgstr "Le module :mod:`uu` défini les fonctions suivantes:" | ||||
| ||||
#: ../Doc/library/uu.rst:33 | ||||
msgid "" | ||||
| | @ -53,6 +64,10 @@ msgid "" | |||
"decoding the file. The default defaults are taken from *in_file*, or ``'-'`` " | ||||
"and ``0o666`` respectively." | ||||
msgstr "" | ||||
"fichier Uuencode *in_file* dans le fichier *out_file*. le fichier Uuencode " | ||||
"doit avoir l'entête spécifiant *name* et *mode* par défaut pour les " | ||||
"résultats du décodage du fichier. les défauts défaut sont pris de " | ||||
"*in_file*, ou ``'-'`` et ``0o666`` respectivement." | ||||
| ||||
#: ../Doc/library/uu.rst:41 | ||||
msgid "" | ||||
| | | |||
| | @ -73,17 +73,25 @@ msgid "" | |||
"Python 3.3 and 3.4, and is `deprecated in Python 3.6 <https://docs.python." | ||||
"org/dev/whatsnew/3.6.html#deprecated-features>`_." | ||||
msgstr "" | ||||
"``pyvenv`` était l'outil recommandé pour créer des environnements sous " | ||||
"Python 3.3 et 3.4, et est `déprécié depuis Python 3.6 <https://docs.python." | ||||
"org/dev/whatsnew/3.6.html#deprecated-features>`_." | ||||
| ||||
#: ../Doc/using/venv-create.inc:19 | ||||
msgid "" | ||||
"The use of ``venv`` is now recommended for creating virtual environments." | ||||
msgstr "" | ||||
"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " | ||||
"environnements virtuels." | ||||
| ||||
#: ../Doc/using/venv-create.inc:24 | ||||
msgid "" | ||||
"`Python Packaging User Guide: Creating and using virtual environments " | ||||
"<https://packaging.python.org/installing/#creating-virtual-environments>`__" | ||||
msgstr "" | ||||
"`Guide Utilisateur de l'Empaquetage Python : Créer et utiliser des " | ||||
"environnements virtuels <https://packaging.python.org/installing/#creating-" | ||||
"virtual-environments>`__" | ||||
| ||||
#: ../Doc/using/venv-create.inc:29 | ||||
msgid "On Windows, invoke the ``venv`` command as follows::" | ||||
| | | |||
| | @ -2844,6 +2844,9 @@ msgid "" | |||
"Subclasses of :class:`type` which don't override ``type.__new__`` may no " | ||||
"longer use the one-argument form to get the type of an object." | ||||
msgstr "" | ||||
"Les sous-classes de :class:`type` qui ne redéfinissent pas ``type.__new__`` " | ||||
"ne devraient plus utiliser la forme à un argument pour récupérer le type " | ||||
"d'un objet." | ||||
| ||||
#: ../Doc/whatsnew/3.6.rst:2184 | ||||
msgid "" | ||||
| | | |||
Loading…
Add table
Add a link
Reference in a new issue