faq.po: 26% thanks to @amaddah from crowdin.
This commit is contained in:
parent
cdef27e77a
commit
d0b70de630
5
c-api.po
5
c-api.po
|
@ -58,6 +58,11 @@ msgid ""
|
|||
"detector's set of observed objects. Other fields of the object are not "
|
||||
"affected."
|
||||
msgstr ""
|
||||
"Permet d'initialiser un objet *op* nouvellement alloué ainsi que son type et "
|
||||
"sa référence initiale. Retourne l'objet initialisé. La présence de *type* "
|
||||
"indique que l'objet doit être traité par le détecteur d'ordures cycliques, "
|
||||
"il est de ce fait ajouté à l'ensemble du détecteur d'objets observés. Les "
|
||||
"autres champs de l'objet ne sont pas affectés."
|
||||
|
||||
#: c-api/allocation.rst:26
|
||||
msgid ""
|
||||
|
|
331
faq.po
331
faq.po
|
@ -74,7 +74,6 @@ msgstr ""
|
|||
"autre style."
|
||||
|
||||
#: faq/design.rst:31
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Many coding styles place begin/end brackets on a line by themselves. This "
|
||||
"makes programs considerably longer and wastes valuable screen space, making "
|
||||
|
@ -86,13 +85,13 @@ msgid ""
|
|||
msgstr ""
|
||||
"Nombre de styles de programmation placent les accolades de début/fin sur une "
|
||||
"ligne à part. Cela rend les sources beaucoup plus longues et fait perdre une "
|
||||
"bonne partie de l'espace visible sur l'écran, rendant plus compliqué un "
|
||||
"aperçu global du programme. Idéalement, une fonction doit être visible sur "
|
||||
"un même écran (environ 20 ou 30 lignes). 20 lignes de Python peuvent faire "
|
||||
"beaucoup plus que 20 lignes de C. Ce n'est pas seulement dû à l'absence "
|
||||
"d'accolades de début/fin -- l'absence de déclarations et les types de haut-"
|
||||
"niveau en sont également responsables -- mais la syntaxe basée sur "
|
||||
"l'indentation y est pour beaucoup."
|
||||
"bonne partie de l'espace visible sur l'écran, empêchant un peu d'avoir une "
|
||||
"vue globale du programme. Idéalement, une fonction doit être visible sur un "
|
||||
"écran (environ 20 ou 30 lignes). 20 lignes de Python peuvent faire beaucoup "
|
||||
"plus que 20 lignes de C. Ce n'est pas seulement dû à l'absence d'accolades "
|
||||
"de début/fin -- l'absence de déclarations et les types de haut-niveau en "
|
||||
"sont également responsables -- mais la syntaxe basée sur l'indentation y est "
|
||||
"pour beaucoup."
|
||||
|
||||
#: faq/design.rst:41
|
||||
msgid "Why am I getting strange results with simple arithmetic operations?"
|
||||
|
@ -105,27 +104,22 @@ msgid "See the next question."
|
|||
msgstr "Voir la question suivante."
|
||||
|
||||
#: faq/design.rst:47
|
||||
#, fuzzy
|
||||
msgid "Why are floating-point calculations so inaccurate?"
|
||||
msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?"
|
||||
|
||||
#: faq/design.rst:49
|
||||
#, fuzzy
|
||||
msgid "Users are often surprised by results like this::"
|
||||
msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::"
|
||||
|
||||
#: faq/design.rst:54
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"and think it is a bug in Python. It's not. This has little to do with "
|
||||
"Python, and much more to do with how the underlying platform handles "
|
||||
"floating-point numbers."
|
||||
msgstr ""
|
||||
"et pensent que c'est un bogue dans Python. Ça ne l'est pas. Ceci n'a rien à "
|
||||
"voir avec Python, mais avec la manière dont la plateforme C sous-jacente "
|
||||
"gère les nombres à virgule flottante et enfin, les imprécisions introduites "
|
||||
"lors de l'écriture des nombres en chaînes de caractères d'un nombre fixe de "
|
||||
"chiffres."
|
||||
"et pensent que c'est un *bug* dans Python. Ça ne l'est pas. Ceci n'a "
|
||||
"d'ailleurs que peu à voir avec Python, mais avec la manière dont la "
|
||||
"plateforme sous-jacente gère les nombres à virgule flottante."
|
||||
|
||||
#: faq/design.rst:58
|
||||
msgid ""
|
||||
|
@ -136,12 +130,23 @@ msgid ""
|
|||
"point operations. This means that as far as floating-point operations are "
|
||||
"concerned, Python behaves like many popular languages including C and Java."
|
||||
msgstr ""
|
||||
"La classe :class:`float` dans CPython utilise le type double du langage C "
|
||||
"comme stockage. La valeur d'un objet :class:`float` est stockée dans un "
|
||||
"format binaire à virgule flottante avec une précision fixe (généralement 53 "
|
||||
"bits). Python utilise des opérations qui proviennent du langage C qui à leur "
|
||||
"tour reposent sur l'implémentation au niveau du processeur afin d'effectuer "
|
||||
"des opérations en virgule flottante. Cela signifie que dans le cadre des "
|
||||
"opérations sur les nombres à virgule flottante, Python se comporte comme "
|
||||
"beaucoup de langages populaires dont C et Java."
|
||||
|
||||
#: faq/design.rst:65
|
||||
msgid ""
|
||||
"Many numbers that can be written easily in decimal notation cannot be "
|
||||
"expressed exactly in binary floating-point. For example, after::"
|
||||
msgstr ""
|
||||
"Beaucoup de nombres pouvant être écrits facilement en notation décimale ne "
|
||||
"peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par "
|
||||
"exemple, après ::"
|
||||
|
||||
#: faq/design.rst:70
|
||||
msgid ""
|
||||
|
@ -149,20 +154,23 @@ msgid ""
|
|||
"value ``1.2``, but is not exactly equal to it. On a typical machine, the "
|
||||
"actual stored value is::"
|
||||
msgstr ""
|
||||
"la valeur stockée pour ``x`` est une (très bonne) approximation de la valeur "
|
||||
"décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine "
|
||||
"typique, la valeur stockée est en fait ::"
|
||||
|
||||
#: faq/design.rst:76
|
||||
#, fuzzy
|
||||
msgid "which is exactly::"
|
||||
msgstr "qui donne le résultat ::"
|
||||
msgstr "qui est, exactement ::"
|
||||
|
||||
#: faq/design.rst:80
|
||||
msgid ""
|
||||
"The typical precision of 53 bits provides Python floats with 15-16 decimal "
|
||||
"digits of accuracy."
|
||||
msgstr ""
|
||||
"La précision typique, de 53 bits, permet une précision de 15-16 décimales "
|
||||
"sur les :class:`float`."
|
||||
|
||||
#: faq/design.rst:83
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"For a fuller explanation, please see the :ref:`floating point arithmetic "
|
||||
"<tut-fp-issues>` chapter in the Python tutorial."
|
||||
|
@ -376,16 +384,15 @@ msgstr ""
|
|||
"boucle."
|
||||
|
||||
#: faq/design.rst:201
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The best approach is to use iterators, making it possible to loop through "
|
||||
"objects using the ``for`` statement. For example, :term:`file objects <file "
|
||||
"object>` support the iterator protocol, so you can write simply::"
|
||||
msgstr ""
|
||||
"La meilleur approche est d'utiliser les itérateurs, rendant possible de "
|
||||
"boucler au travers d'objets en utilisant la déclaration ``for``. Par "
|
||||
"exemple, dans la version actuelle de Python, les fichiers objets supportent "
|
||||
"le protocole d'itérateur, vous pouvez alors simplement écrire ::"
|
||||
"parcourir des objets en utilisant l'instruction ``for``. Par exemple, les :"
|
||||
"term:`fichiers objet` <file object>` gèrent le protocole d'itération, donc "
|
||||
"vous pouvez simplement écrire ::"
|
||||
|
||||
#: faq/design.rst:211
|
||||
msgid ""
|
||||
|
@ -396,7 +403,6 @@ msgstr ""
|
|||
"list.index()) mais des fonctions pour d'autres (ex : len(list)) ?"
|
||||
|
||||
#: faq/design.rst:213
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The major reason is history. Functions were used for those operations that "
|
||||
"were generic for a group of types and which were intended to work even for "
|
||||
|
@ -409,8 +415,8 @@ msgstr ""
|
|||
"ces opérations qui étaient génériques pour un groupe de types et qui étaient "
|
||||
"censés fonctionner même pour les objets qui n'avaient pas de méthodes du "
|
||||
"tout (ex : tuples). C'est aussi pratique d'avoir une fonction qui s'apprête "
|
||||
"bien à une collection amorphe d'objets lorsque vous utiliser les "
|
||||
"fonctionnalités fonctionnelles de Python (``map()``, ``apply()`` et autres)."
|
||||
"bien à une collection amorphe d'objets lorsque vous utiliser les outils "
|
||||
"fonctionnels de Python (``map()``, ``zip()`` et autres)."
|
||||
|
||||
#: faq/design.rst:219
|
||||
msgid ""
|
||||
|
@ -493,16 +499,15 @@ msgstr ""
|
|||
"méthode de chaîne, puisque dans ce cas il est facile de voir que ::"
|
||||
|
||||
#: faq/design.rst:263
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"is an instruction to a string literal to return the substrings delimited by "
|
||||
"the given separator (or, by default, arbitrary runs of white space)."
|
||||
msgstr ""
|
||||
"est une instruction à une chaîne littérale de retourner les sous-chaînes "
|
||||
"délimitées par le séparateur fournit (ou, par défaut, les espaces)."
|
||||
"délimitées par le séparateur fournit (ou, par défaut, les espaces, ou "
|
||||
"groupes d'espaces)."
|
||||
|
||||
#: faq/design.rst:266
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
":meth:`~str.join` is a string method because in using it you are telling the "
|
||||
"separator string to iterate over a sequence of strings and insert itself "
|
||||
|
@ -510,16 +515,16 @@ msgid ""
|
|||
"obeys the rules for sequence objects, including any new classes you might "
|
||||
"define yourself. Similar methods exist for bytes and bytearray objects."
|
||||
msgstr ""
|
||||
":meth:`~str.join` est une méthode de chaîne parce qu'en l'utilisant vous "
|
||||
"dites au séparateur de chaîne d'itérer autour d'une séquence de chaînes et "
|
||||
"de s'insérer entre les éléments adjacents. Cette méthode peut être utilisée "
|
||||
":meth:`~str.join` est une méthode de :class:`str` parce qu'en l'utilisant "
|
||||
"vous dites au séparateur de chaîne d'itérer une séquence de chaînes et de "
|
||||
"s'insérer entre les éléments adjacents. Cette méthode peut être utilisée "
|
||||
"avec n'importe quel argument qui obéit aux règles d'objets séquence, "
|
||||
"incluant n'importe quelles nouvelles classes que vous pourriez définir vous-"
|
||||
"même. Des méthodes similaires existent pour des objets bytes et bytearray."
|
||||
|
||||
#: faq/design.rst:274
|
||||
msgid "How fast are exceptions?"
|
||||
msgstr ""
|
||||
msgstr "À quel point les exceptions sont-elles rapides ?"
|
||||
|
||||
#: faq/design.rst:276
|
||||
msgid ""
|
||||
|
@ -527,12 +532,19 @@ msgid ""
|
|||
"Actually catching an exception is expensive. In versions of Python prior to "
|
||||
"2.0 it was common to use this idiom::"
|
||||
msgstr ""
|
||||
"Un bloc try/except est extrêmement efficient tant qu'aucune exception ne "
|
||||
"sont levée. En effet, intercepter une exception s'avère coûteux. Dans les "
|
||||
"versions de précédant Python 2.0, il était courant d'utiliser cette "
|
||||
"pratique::"
|
||||
|
||||
#: faq/design.rst:286
|
||||
msgid ""
|
||||
"This only made sense when you expected the dict to have the key almost all "
|
||||
"the time. If that wasn't the case, you coded it like this::"
|
||||
msgstr ""
|
||||
"Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la "
|
||||
"clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé "
|
||||
"comme suit ::"
|
||||
|
||||
#: faq/design.rst:294
|
||||
msgid ""
|
||||
|
@ -540,10 +552,15 @@ msgid ""
|
|||
"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough "
|
||||
"because it is evaluated in all cases."
|
||||
msgstr ""
|
||||
"Pour ce cas, vous pouvez également utiliser ``value = dict.setdefault(key, "
|
||||
"getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est "
|
||||
"suffisamment peu coûteux car il est évalué dans tous les cas."
|
||||
|
||||
#: faq/design.rst:300
|
||||
msgid "Why isn't there a switch or case statement in Python?"
|
||||
msgstr ""
|
||||
"Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire "
|
||||
"à *switch / case* en Python ?"
|
||||
|
||||
#: faq/design.rst:302
|
||||
msgid ""
|
||||
|
@ -552,6 +569,10 @@ msgid ""
|
|||
"there is no consensus (yet) on whether and how to do range tests. See :pep:"
|
||||
"`275` for complete details and the current status."
|
||||
msgstr ""
|
||||
"Vous pouvez le faire assez facilement avec une séquence de ``if... elif... "
|
||||
"elif... else``. Il y a eu quelques propositions pour la syntaxe de "
|
||||
"l'instruction switch, mais il n'y a pas (encore) de consensus sur le cas des "
|
||||
"intervalles. Voir la :pep:`275` pour tous les détails et l'état actuel."
|
||||
|
||||
#: faq/design.rst:307
|
||||
msgid ""
|
||||
|
@ -559,12 +580,18 @@ msgid ""
|
|||
"possibilities, you can create a dictionary mapping case values to functions "
|
||||
"to call. For example::"
|
||||
msgstr ""
|
||||
"Dans les cas où vous devez choisir parmi un très grand nombre de "
|
||||
"possibilités, vous pouvez créer un dictionnaire faisant correspondre des "
|
||||
"valeurs à des fonctions à appeler. Par exemple ::"
|
||||
|
||||
#: faq/design.rst:321
|
||||
msgid ""
|
||||
"For calling methods on objects, you can simplify yet further by using the :"
|
||||
"func:`getattr` built-in to retrieve methods with a particular name::"
|
||||
msgstr ""
|
||||
"Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage "
|
||||
"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes "
|
||||
"avec un nom donné ::"
|
||||
|
||||
#: faq/design.rst:333
|
||||
msgid ""
|
||||
|
@ -573,12 +600,18 @@ msgid ""
|
|||
"from an untrusted source, an attacker would be able to call any method on "
|
||||
"your object."
|
||||
msgstr ""
|
||||
"Il est suggéré que vous utilisiez un préfixe pour les noms de méthodes, "
|
||||
"telles que ``visit_`` dans cet exemple. Sans ce préfixe, si les valeurs "
|
||||
"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler "
|
||||
"n'importe quelle méthode sur votre objet."
|
||||
|
||||
#: faq/design.rst:339
|
||||
msgid ""
|
||||
"Can't you emulate threads in the interpreter instead of relying on an OS-"
|
||||
"specific thread implementation?"
|
||||
msgstr ""
|
||||
"Est-il possible d'émuler des *threads* dans l'interpréteur plutôt que se "
|
||||
"baser sur les implémentations spécifique aux OS ?"
|
||||
|
||||
#: faq/design.rst:341
|
||||
msgid ""
|
||||
|
@ -587,6 +620,11 @@ msgid ""
|
|||
"almost random moments. Therefore, a complete threads implementation "
|
||||
"requires thread support for C."
|
||||
msgstr ""
|
||||
"Réponse 1: Malheureusement, l'interpréteur pousse au moins un block de pile "
|
||||
"C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions "
|
||||
"peuvent rappeler dans Python à presque n'importe quel moment. Par "
|
||||
"conséquent, une implémentation complète des *thread* nécessiterai un support "
|
||||
"complet en C."
|
||||
|
||||
#: faq/design.rst:346
|
||||
msgid ""
|
||||
|
@ -594,10 +632,14 @@ msgid ""
|
|||
"com>`_, which has a completely redesigned interpreter loop that avoids the C "
|
||||
"stack."
|
||||
msgstr ""
|
||||
"Réponse 2: Heureusement, il existe `Stackless Python <d'http://www.stackless."
|
||||
"com>`_, qui à complètement ré-architecturé la boucle principale de "
|
||||
"l'interpréteur afin de ne pas utiliser la pile C."
|
||||
|
||||
#: faq/design.rst:351
|
||||
msgid "Why can't lambda expressions contain statements?"
|
||||
msgstr ""
|
||||
"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?"
|
||||
|
||||
#: faq/design.rst:353
|
||||
msgid ""
|
||||
|
@ -607,6 +649,13 @@ msgid ""
|
|||
"other languages, where they add functionality, Python lambdas are only a "
|
||||
"shorthand notation if you're too lazy to define a function."
|
||||
msgstr ""
|
||||
"Les expressions lambda de Python ne peuvent pas contenir d'instructions "
|
||||
"parce que le cadre syntaxique de Python ne peut pas gérer les instructions "
|
||||
"imbriquées à l'intérieur d'expressions. Cependant, en Python, ce n'est pas "
|
||||
"vraiment un problème. Contrairement aux formes lambda dans d'autres "
|
||||
"langages, où elles ajoutent des fonctionnalités, les expressions lambda de "
|
||||
"Python sont seulement une notation concise si vous êtes trop paresseux pour "
|
||||
"définir une fonction."
|
||||
|
||||
#: faq/design.rst:359
|
||||
msgid ""
|
||||
|
@ -617,14 +666,21 @@ msgid ""
|
|||
"(which is exactly the same type of object that a lambda expression yields) "
|
||||
"is assigned!"
|
||||
msgstr ""
|
||||
"Les fonctions sont déjà des objets de première classe en Python et peuvent "
|
||||
"être déclarées dans une portée locale. L'unique avantage d'utiliser une "
|
||||
"fonction lambda au lieu d'une fonction définie localement est que vous "
|
||||
"n'avez nullement besoin d'un nom pour la fonction -- Mais c'est juste une "
|
||||
"variable locale à laquelle est affecté l'objet fonction (qui est exactement "
|
||||
"le même type d'objet qui donne une expression lambda) !"
|
||||
|
||||
#: faq/design.rst:367
|
||||
msgid "Can Python be compiled to machine code, C or some other language?"
|
||||
msgstr ""
|
||||
"Python peut-il être compilé en code machine, en C ou dans un autre langage ?"
|
||||
|
||||
#: faq/design.rst:369
|
||||
msgid "Practical answer:"
|
||||
msgstr ""
|
||||
msgstr "Réponse concrète :"
|
||||
|
||||
#: faq/design.rst:371
|
||||
msgid ""
|
||||
|
@ -636,10 +692,18 @@ msgid ""
|
|||
"www.nuitka.net/>`_ is an up-and-coming compiler of Python into C++ code, "
|
||||
"aiming to support the full Python language."
|
||||
msgstr ""
|
||||
"`Cython <http://cython.org/>`_ et `Pyrex <http://www.cosc.canterbury.ac.nz/"
|
||||
"greg.ewing/python/Pyrex/>`_ compilent une version modifiée de Python avec "
|
||||
"des annotations optionnelles en extensions C. `Weave <http://docs.scipy.org/"
|
||||
"doc/scipy-dev/reference/tutorial/weave.html`_ rend facile d'entremêler du "
|
||||
"code C et Python de diverses façons afin d'améliorer au mieux les "
|
||||
"performances. `Nuitka <http://www.nuitka.net/>`_ est un compilateur de "
|
||||
"Python en C++ plein d'avenir, dont le but est de gérer l'ensemble du langage "
|
||||
"Python."
|
||||
|
||||
#: faq/design.rst:378
|
||||
msgid "Theoretical answer:"
|
||||
msgstr ""
|
||||
msgstr "Réponse théorique :"
|
||||
|
||||
#: faq/design.rst:382
|
||||
msgid ""
|
||||
|
@ -649,6 +713,11 @@ msgid ""
|
|||
"probably consist mostly of calls into the Python run-time system, even for "
|
||||
"seemingly simple operations like ``x+1``."
|
||||
msgstr ""
|
||||
"Pas de façon triviale. Les types de données haut niveau de Python, le typage "
|
||||
"dynamique des objets et l'invocation de l’interpréteur à l'exécution (via :"
|
||||
"func:`eval` ou :func:`exec`) font qu'un programme Python compilé naïvement "
|
||||
"consisterait probablement principalement à faire des appels au système "
|
||||
"d'exécution de Python, même pour des opérations simples comme ``x + 1``."
|
||||
|
||||
#: faq/design.rst:388
|
||||
msgid ""
|
||||
|
@ -661,10 +730,19 @@ msgid ""
|
|||
"See the proceedings from the `1997 Python conference <http://legacy.python."
|
||||
"org/workshops/1997-10/proceedings/>`_ for more information.)"
|
||||
msgstr ""
|
||||
"Plusieurs projets décrits dans le forum de Python ou dans les anciennes "
|
||||
"`Conférences Python <https://www.python.org/community/workshops/>`_ ont "
|
||||
"montré que cette approche est réalisable, même si les améliorations "
|
||||
"atteintes restaient modestes (autour de ×2). Jython utilise la même "
|
||||
"stratégie pour compiler en *bytecode* Java. (Jim Hugunin a démontré qu'en "
|
||||
"combinaison avec une analyse de la totalité du programme, des améliorations "
|
||||
"de ×1000 sont possibles sur de petits programmes de démonstration. Voir le "
|
||||
"compte rendu de la `Conférence de Python 1997 <http://legacy.python.org/"
|
||||
"workshops/1997-10/proceedings/>`_ pour plus d'informations.)"
|
||||
|
||||
#: faq/design.rst:399
|
||||
msgid "How does Python manage memory?"
|
||||
msgstr ""
|
||||
msgstr "Comment Python gère la mémoire ?"
|
||||
|
||||
#: faq/design.rst:401
|
||||
msgid ""
|
||||
|
@ -676,6 +754,14 @@ msgid ""
|
|||
"provides functions to perform a garbage collection, obtain debugging "
|
||||
"statistics, and tune the collector's parameters."
|
||||
msgstr ""
|
||||
"Les détails de la gestion de la mémoire en Python dépendent de "
|
||||
"l'implémentation. En effet, l'implémentation standard de Python, :term:"
|
||||
"`CPython`, utilise des compteurs de références afin de détecter des objets "
|
||||
"inaccessibles et un autre mécanisme pour collecter les références "
|
||||
"circulaires, exécutant périodiquement un algorithme de détection de cycles "
|
||||
"qui recherche les cycles inaccessibles et supprime les objets implqués. Le "
|
||||
"module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, "
|
||||
"d'obtenir des statistiques de débogage et ajuster ses paramètres."
|
||||
|
||||
#: faq/design.rst:409
|
||||
msgid ""
|
||||
|
@ -685,12 +771,20 @@ msgid ""
|
|||
"porting problems if your Python code depends on the behavior of the "
|
||||
"reference counting implementation."
|
||||
msgstr ""
|
||||
"Cependant, d'autres implémentations (par exemple `Jython <http://www.jython."
|
||||
"org>`_ ou `PyPy <http://www.pypy.org>`_) peuvent compter sur un mécanisme "
|
||||
"différent comme un véritable ramasse-miette. Cette différence peut causer de "
|
||||
"subtils problèmes de portabilité si votre code Python dépend du comportement "
|
||||
"de l'implémentation du compteur de références."
|
||||
|
||||
#: faq/design.rst:415
|
||||
msgid ""
|
||||
"In some Python implementations, the following code (which is fine in "
|
||||
"CPython) will probably run out of file descriptors::"
|
||||
msgstr ""
|
||||
"Dans certaines implémentations de Python, le code suivant (qui marche "
|
||||
"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de "
|
||||
"fichiers::"
|
||||
|
||||
#: faq/design.rst:422
|
||||
msgid ""
|
||||
|
@ -699,6 +793,11 @@ msgid ""
|
|||
"those file objects will only get collected (and closed) at varying and "
|
||||
"possibly long intervals."
|
||||
msgstr ""
|
||||
"En effet, à l'aide du comptage de références et du destructeur d'objets de "
|
||||
"*CPython*, chaque nouvelle affectation à *f* ferme le fichier précédent. "
|
||||
"Cependant, avec un *GC* classique, ces objets seront seulement recueillies "
|
||||
"(et fermés) à intervalles variables et possiblement avec de longs "
|
||||
"intervalles."
|
||||
|
||||
#: faq/design.rst:427
|
||||
msgid ""
|
||||
|
@ -706,11 +805,15 @@ msgid ""
|
|||
"should explicitly close the file or use the :keyword:`with` statement; this "
|
||||
"will work regardless of memory management scheme::"
|
||||
msgstr ""
|
||||
"Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle "
|
||||
"implémentation de Python, vous devez explicitement fermer le fichier ou "
|
||||
"utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du "
|
||||
"système de gestion de la mémoire::"
|
||||
|
||||
#: faq/design.rst:437
|
||||
#, fuzzy
|
||||
msgid "Why doesn't CPython use a more traditional garbage collection scheme?"
|
||||
msgstr "Pourquoi Python utilise l'indentation pour grouper les instructions ?"
|
||||
msgstr ""
|
||||
"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?"
|
||||
|
||||
#: faq/design.rst:439
|
||||
msgid ""
|
||||
|
@ -720,6 +823,12 @@ msgid ""
|
|||
"transparent, it isn't completely transparent; patches are required to get "
|
||||
"Python to work with it.)"
|
||||
msgstr ""
|
||||
"D'une part, ce n'est pas une caractéristique normalisé en C et par "
|
||||
"conséquent ce n'est pas portable. (Oui, nous connaissons la bibliothèque *GC "
|
||||
"Boehm*. Elle contient du code assembleur pour la plupart des plates-formes "
|
||||
"classiques, mais pas toutes, et bien qu'elle soit le plus souvent "
|
||||
"transparent, c'est loin d'être le cas, des correctifs sont nécessaires afin "
|
||||
"que Python fonctionne correctement avec.)"
|
||||
|
||||
#: faq/design.rst:445
|
||||
msgid ""
|
||||
|
@ -730,10 +839,18 @@ msgid ""
|
|||
"malloc() and free(), and may not want Python's. Right now, CPython works "
|
||||
"with anything that implements malloc() and free() properly."
|
||||
msgstr ""
|
||||
"Le *GC* classique devient également un problème lorsque Python est incorporé "
|
||||
"dans d'autres applications. Bien que dans une application Python, il ne soit "
|
||||
"pas gênant de remplacer les fonctions malloc() et free() avec les versions "
|
||||
"fournies par la bibliothèque *GC*, une application incluant Python peut "
|
||||
"vouloir avoir ses propres implémentations de malloc() et free() et peut ne "
|
||||
"pas vouloir celles de Python. À l'heure actuelle, CPython fonctionne avec "
|
||||
"n'importe quelle implémentation correcte de malloc() et free()."
|
||||
|
||||
#: faq/design.rst:454
|
||||
msgid "Why isn't all memory freed when CPython exits?"
|
||||
msgstr ""
|
||||
"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?"
|
||||
|
||||
#: faq/design.rst:456
|
||||
msgid ""
|
||||
|
@ -744,16 +861,27 @@ msgid ""
|
|||
"about these). Python is, however, aggressive about cleaning up memory on "
|
||||
"exit and does try to destroy every single object."
|
||||
msgstr ""
|
||||
"Les objets référencés depuis les espaces de noms globaux des modules Python "
|
||||
"ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se "
|
||||
"produire s'il y a des références circulaires. Il y a aussi certaines parties "
|
||||
"de mémoire qui sont alloués par la bibliothèque C qui sont impossibles à "
|
||||
"libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, "
|
||||
"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à "
|
||||
"détruire chaque objet."
|
||||
|
||||
#: faq/design.rst:463
|
||||
msgid ""
|
||||
"If you want to force Python to delete certain things on deallocation use "
|
||||
"the :mod:`atexit` module to run a function that will force those deletions."
|
||||
msgstr ""
|
||||
"Si vous voulez forcer Python à désallouer certains objets en quittant, "
|
||||
"utilisez le module :mod:`texit` pour exécuter une fonction qui va forcer ces "
|
||||
"destructions."
|
||||
|
||||
#: faq/design.rst:468
|
||||
msgid "Why are there separate tuple and list data types?"
|
||||
msgstr ""
|
||||
"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?"
|
||||
|
||||
#: faq/design.rst:470
|
||||
msgid ""
|
||||
|
@ -764,6 +892,13 @@ msgid ""
|
|||
"Cartesian coordinate is appropriately represented as a tuple of two or three "
|
||||
"numbers."
|
||||
msgstr ""
|
||||
"Les listes et les *tuples*, bien que semblable à bien des égards, sont "
|
||||
"généralement utilisés de façons fondamentalement différentes. Les *tuples* "
|
||||
"peuvent être considérés comme étant similaires aux dossiers en Pascal ou aux "
|
||||
"structures en C; Ce sont de petites collections de données associées qui "
|
||||
"peuvent être de différents types qui sont utilisées sensemble. Par exemple, "
|
||||
"un repère cartésien est correctement représenté comme un *tuple* de deux ou "
|
||||
"trois nombres."
|
||||
|
||||
#: faq/design.rst:477
|
||||
msgid ""
|
||||
|
@ -774,6 +909,13 @@ msgid ""
|
|||
"Functions which operate on this output would generally not break if you "
|
||||
"added another file or two to the directory."
|
||||
msgstr ""
|
||||
"Les listes, ressemblent davantage à des tableaux dans d'autres langues. "
|
||||
"Elles ont tendance à contenir un nombre variable d'objets de même type "
|
||||
"manipulés individuellement. Par exemple, ``os.listdir('.')`` retourne une "
|
||||
"liste de chaînes représentant les fichiers dans le dossier courant. Les "
|
||||
"fonctions travaillant sur cette sortie accepteraient généralement sans aucun "
|
||||
"problème que vous ajoutiez un ou deux fichiers supplémentaire dans le "
|
||||
"dossier."
|
||||
|
||||
#: faq/design.rst:484
|
||||
msgid ""
|
||||
|
@ -783,6 +925,12 @@ msgid ""
|
|||
"be used as dictionary keys, and hence only tuples and not lists can be used "
|
||||
"as keys."
|
||||
msgstr ""
|
||||
"Les *tuples* sont immuables, ce qui signifie que lorsqu'un *tuple* a été "
|
||||
"créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle "
|
||||
"valeur. Les listes sont variables, ce qui signifie que vous pouvez toujours "
|
||||
"modifier les éléments d'une liste. Seuls des éléments immuables peuvent être "
|
||||
"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul "
|
||||
"des *tuples* peuvent être utilisés comme clés."
|
||||
|
||||
#: faq/design.rst:491
|
||||
msgid "How are lists implemented?"
|
||||
|
@ -2953,7 +3101,7 @@ msgstr ""
|
|||
|
||||
#: faq/library.rst:458
|
||||
msgid "Input and Output"
|
||||
msgstr "Les entrées/sorties"
|
||||
msgstr "Entrées et Sorties"
|
||||
|
||||
#: faq/library.rst:461
|
||||
msgid "How do I delete a file? (And other file questions...)"
|
||||
|
@ -3828,9 +3976,8 @@ msgid "Why did changing list 'y' also change list 'x'?"
|
|||
msgstr ""
|
||||
|
||||
#: faq/programming.rst:431
|
||||
#, fuzzy
|
||||
msgid "If you wrote code like::"
|
||||
msgstr "In C++ you'd write"
|
||||
msgstr "Si vous avez écrit du code comme ::"
|
||||
|
||||
#: faq/programming.rst:441
|
||||
msgid ""
|
||||
|
@ -3952,14 +4099,13 @@ msgstr ""
|
|||
|
||||
#: faq/programming.rst:526
|
||||
msgid "By passing a mutable (changeable in-place) object::"
|
||||
msgstr "En passant un objet mutable (modifiable par remplacement)::"
|
||||
msgstr "En passant un objet variable (modifiable sur place) ::"
|
||||
|
||||
#: faq/programming.rst:536
|
||||
msgid "By passing in a dictionary that gets mutated::"
|
||||
msgstr "En utilisant un dictionnaire, qui est modifié (en place)."
|
||||
msgstr "En passant un dictionnaire, qui sera modifié ::"
|
||||
|
||||
#: faq/programming.rst:546
|
||||
#, fuzzy
|
||||
msgid "Or bundle up values in a class instance::"
|
||||
msgstr "Ou regrouper les valeurs dans une instance de classe::"
|
||||
|
||||
|
@ -3972,12 +4118,12 @@ msgstr ""
|
|||
#: faq/programming.rst:564
|
||||
msgid "Your best choice is to return a tuple containing the multiple results."
|
||||
msgstr ""
|
||||
"Votre meilleure option est de renvoyer un tuple contenant les résultats "
|
||||
"multiples."
|
||||
"Votre meilleure option est de renvoyer un *tuple* contenant les multiples "
|
||||
"résultats."
|
||||
|
||||
#: faq/programming.rst:568
|
||||
msgid "How do you make a higher order function in Python?"
|
||||
msgstr "Comment construire une fonction de grand ordre en Python?"
|
||||
msgstr "Comment construire une fonction d'ordre supérieur en Python ?"
|
||||
|
||||
#: faq/programming.rst:570
|
||||
msgid ""
|
||||
|
@ -3986,14 +4132,14 @@ msgid ""
|
|||
"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested "
|
||||
"scopes::"
|
||||
msgstr ""
|
||||
"Vous avez deux choix: vous pouvez utiliser les portées imbriquées ou vous "
|
||||
"pouvez utiliser des objets appelable. Par exemple, supposons que vous "
|
||||
"vouliez définir ``lineare (a, b)`` qui retourne une fonction ``f (x)`` qui "
|
||||
"calcule la valeur ``a * x + b``. En utilisant les portées imbriquées::"
|
||||
"Vous avez deux choix : vous pouvez utiliser les portées imbriquées ou vous "
|
||||
"pouvez utiliser des objets appelables. Par exemple, supposons que vous "
|
||||
"vouliez définir ``linear(a, b)`` qui retourne une fonction ``f(x)`` qui "
|
||||
"calcule la valeur `a * x + b``. En utilisant les portées imbriquées ::"
|
||||
|
||||
#: faq/programming.rst:579
|
||||
msgid "Or using a callable object::"
|
||||
msgstr "Ou en utilisant un objet appelable."
|
||||
msgstr "Ou en utilisant un objet appelable ::"
|
||||
|
||||
#: faq/programming.rst:589
|
||||
msgid "In both cases, ::"
|
||||
|
@ -4001,7 +4147,7 @@ msgstr "dans les deux cas, ::"
|
|||
|
||||
#: faq/programming.rst:593
|
||||
msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``."
|
||||
msgstr "retourne un objet appelable tel que ``taxes(10e6) == 0.3 * 10e6 + 2``."
|
||||
msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``."
|
||||
|
||||
#: faq/programming.rst:595
|
||||
msgid ""
|
||||
|
@ -4009,13 +4155,12 @@ msgid ""
|
|||
"and results in slightly longer code. However, note that a collection of "
|
||||
"callables can share their signature via inheritance::"
|
||||
msgstr ""
|
||||
"L'approche par objet appelables a le désavantage d'être légèrement plus "
|
||||
"lente et de produire un code légèrement plus long. Cependant, il faut noter "
|
||||
"qu'une collection d'objet appelables peuvent partager leur signatures par "
|
||||
"héritage::"
|
||||
"L'approche par objet appelable a le désavantage d'être légèrement plus lente "
|
||||
"et de produire un code légèrement plus long. Cependant, il faut noter qu'une "
|
||||
"collection d'objet appelables peuvent partager leur signatures par "
|
||||
"héritage ::"
|
||||
|
||||
#: faq/programming.rst:604
|
||||
#, fuzzy
|
||||
msgid "Object can encapsulate state for several methods::"
|
||||
msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes::"
|
||||
|
||||
|
@ -4024,7 +4169,7 @@ msgid ""
|
|||
"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the "
|
||||
"same counting variable."
|
||||
msgstr ""
|
||||
"Ici ``inc()``, ``dec()`` et ``reset`` agissent comme des fonctions "
|
||||
"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions "
|
||||
"partageant une même variable compteur."
|
||||
|
||||
#: faq/programming.rst:627
|
||||
|
@ -4036,8 +4181,9 @@ msgid ""
|
|||
"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general "
|
||||
"case. Not all objects can be copied, but most can."
|
||||
msgstr ""
|
||||
"En général, essayez :funct:`copy.copy` ou :func:`copy.deepcopy` pour le cas "
|
||||
"général. Tout les objets ne peuvent pas être copiés, mais la plupart peuvent."
|
||||
"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy` pour le cas "
|
||||
"général. Tout les objets ne peuvent pas être copiés, mais la plupart le "
|
||||
"peuvent."
|
||||
|
||||
#: faq/programming.rst:632
|
||||
msgid ""
|
||||
|
@ -4049,7 +4195,7 @@ msgstr ""
|
|||
|
||||
#: faq/programming.rst:637
|
||||
msgid "Sequences can be copied by slicing::"
|
||||
msgstr "Les séquences peuvent être copiées par tranches::"
|
||||
msgstr "Les séquences peuvent être copiées via la syntaxe des tranches::"
|
||||
|
||||
#: faq/programming.rst:643
|
||||
msgid "How can I find the methods or attributes of an object?"
|
||||
|
@ -4078,8 +4224,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"De façon générale, il ne peut pas, par ce que les objets n'ont pas "
|
||||
"réellement de noms. Essentiellement, l'assignation attache un nom à une "
|
||||
"valeur; C'est vrai aussi pour les mots clés ``def`` et ``class``, à la "
|
||||
"différence que la valeur est un objet appelable."
|
||||
"valeur; C'est vrai aussi pour les instructions ``def`` et ``class``, à la "
|
||||
"différence que dans ce cas la valeur est appelable. Par exemple, dans le "
|
||||
"code suivant ::"
|
||||
|
||||
#: faq/programming.rst:670
|
||||
msgid ""
|
||||
|
@ -4088,10 +4235,11 @@ msgid ""
|
|||
"instance of class A. However, it is impossible to say whether the "
|
||||
"instance's name is a or b, since both names are bound to the same value."
|
||||
msgstr ""
|
||||
"Le fait que la classe ait un nom est discutable, même si elle a deux noms et "
|
||||
"qu'elle est appelé via le nom B, l'instance crée déclare tout de même être "
|
||||
"une instance de la classe A. De même Il est impossible de dire si le nom de "
|
||||
"l'instance est a ou b, les deux noms sont attachés à la même valeur."
|
||||
"Le fait que la classe ait un nom est discutable, bien qu'elles soit liée à "
|
||||
"deux noms, et qu'elle soit appelée via le nom B, l'instance crée déclare "
|
||||
"tout de même être une instance de la classe A. De même Il est impossible de "
|
||||
"dire si le nom de l'instance est a ou b, les deux noms sont attachés à la "
|
||||
"même valeur."
|
||||
|
||||
#: faq/programming.rst:675
|
||||
msgid ""
|
||||
|
@ -4101,7 +4249,7 @@ msgid ""
|
|||
"approach might be beneficial."
|
||||
msgstr ""
|
||||
"De façon général, il ne devrait pas être nécessaire pour votre application "
|
||||
"de \"connaitre le nom\" d'une valeur particulière. À moins que vous soyez "
|
||||
"de \"connaître le nom\" d'une valeur particulière. À moins que vous soyez "
|
||||
"délibérément en train d'écrire un programme introspectif, c'est souvent une "
|
||||
"indication qu'un changement d'approche pourrait être bénéfique."
|
||||
|
||||
|
@ -4120,10 +4268,10 @@ msgid ""
|
|||
"so the only way to find out what it's called is to ask all your neighbours "
|
||||
"(namespaces) if it's their cat (object)..."
|
||||
msgstr ""
|
||||
"De la même manière que vous trouvez le nom du chat que vous avez trouvé dans "
|
||||
"votre coure: le chat ne peux pas vous dire lui même son nom, et il s'en "
|
||||
"moque un peu -- alors le meilleur moyen de savoir comment il est appelé est "
|
||||
"de demander à tous vos voisins (namespaces) si c'est leur chat (object)…"
|
||||
"C'est pareil que trouver le nom du chat qui traîne devant votre porte: Le "
|
||||
"chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu "
|
||||
"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à "
|
||||
"tous vos voisins (namespaces) si c'est leur chat (objet)…"
|
||||
|
||||
#: faq/programming.rst:688
|
||||
msgid ""
|
||||
|
@ -4135,12 +4283,12 @@ msgstr ""
|
|||
|
||||
#: faq/programming.rst:693
|
||||
msgid "What's up with the comma operator's precedence?"
|
||||
msgstr "Quel est le souci avec la précédente de l'opérateur virgule?"
|
||||
msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?"
|
||||
|
||||
#: faq/programming.rst:695
|
||||
msgid "Comma is not an operator in Python. Consider this session::"
|
||||
msgstr ""
|
||||
"Virgule n'est pas un opérateur en Python. Observez la session suivante::"
|
||||
"La virgule n'est pas un opérateur en Python. Observez la session suivante::"
|
||||
|
||||
#: faq/programming.rst:700
|
||||
msgid ""
|
||||
|
@ -4161,20 +4309,17 @@ msgid ""
|
|||
"They are not truly operators but syntactic delimiters in assignment "
|
||||
"statements."
|
||||
msgstr ""
|
||||
"Ceci est vrai de tous les opérateurs d'assignations (``=``, ``+=`` etc). Ce "
|
||||
"ne sont pas vraiment des opérateurs mais des délimiteurs syntaxiques dans "
|
||||
"Ceci est vrai pour tous les opérateurs d'assignations (``=``, ``+=`` etc). "
|
||||
"Ce ne sont pas vraiment des opérateurs mais des délimiteurs syntaxiques dans "
|
||||
"les instructions d'assignation."
|
||||
|
||||
#: faq/programming.rst:714
|
||||
msgid "Is there an equivalent of C's \"?:\" ternary operator?"
|
||||
msgstr "Existe-t'il un équivalent à l'opérateur \"?:\" ternaire du C?"
|
||||
msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?"
|
||||
|
||||
#: faq/programming.rst:716
|
||||
#, fuzzy
|
||||
msgid "Yes, there is. The syntax is as follows::"
|
||||
msgstr ""
|
||||
"Oui, cette fonctionnalité à été ajouté à partir de Python 2.5. La syntaxe "
|
||||
"est la suivante::"
|
||||
msgstr "Oui, il y en a un. Sa syntaxe est la suivante ::"
|
||||
|
||||
#: faq/programming.rst:723
|
||||
msgid ""
|
||||
|
@ -4192,8 +4337,8 @@ msgstr ""
|
|||
#: faq/programming.rst:734
|
||||
msgid "Is it possible to write obfuscated one-liners in Python?"
|
||||
msgstr ""
|
||||
"Est-il possible d'écrire des programmes volontairement difficile à "
|
||||
"comprendre sur une seule ligne en Python?"
|
||||
"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne "
|
||||
"en Python ?"
|
||||
|
||||
#: faq/programming.rst:736
|
||||
msgid ""
|
||||
|
@ -4206,15 +4351,15 @@ msgstr ""
|
|||
|
||||
#: faq/programming.rst:763
|
||||
msgid "Don't try this at home, kids!"
|
||||
msgstr "Les enfants, ne faîtes pas ça chez vous!"
|
||||
msgstr "Les enfants, ne faîtes pas ça chez vous !"
|
||||
|
||||
#: faq/programming.rst:767
|
||||
msgid "Numbers and strings"
|
||||
msgstr "Nombres et chaines de caractères"
|
||||
msgstr "Nombres et chaînes de caractères"
|
||||
|
||||
#: faq/programming.rst:770
|
||||
msgid "How do I specify hexadecimal and octal integers?"
|
||||
msgstr "Comment puis-je spécifier des entiers hexadécimaux ou octaux?"
|
||||
msgstr "Comment puis-je écrire des entiers hexadécimaux ou octaux ?"
|
||||
|
||||
#: faq/programming.rst:772
|
||||
msgid ""
|
||||
|
@ -4222,9 +4367,9 @@ msgid ""
|
|||
"lower or uppercase \"o\". For example, to set the variable \"a\" to the "
|
||||
"octal value \"10\" (8 in decimal), type::"
|
||||
msgstr ""
|
||||
"Pour spécifier un entier octal, faites précéder la valeur octale par un "
|
||||
"zéro, puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur "
|
||||
"octale \"10\" (8 en décimal) à \"a\", tapez::"
|
||||
"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, "
|
||||
"puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale "
|
||||
"\"10\" (8 en décimal) à la variable \"a\", tapez::"
|
||||
|
||||
#: faq/programming.rst:780
|
||||
msgid ""
|
||||
|
@ -4239,7 +4384,7 @@ msgstr ""
|
|||
|
||||
#: faq/programming.rst:793
|
||||
msgid "Why does -22 // 10 return -3?"
|
||||
msgstr "Pourquoi -22//10 retourne-t'il -3?"
|
||||
msgstr "Pourquoi -22 // 10 donne-t-il -3 ?"
|
||||
|
||||
#: faq/programming.rst:795
|
||||
msgid ""
|
||||
|
@ -4247,7 +4392,7 @@ msgid ""
|
|||
"``j``. If you want that, and also want::"
|
||||
msgstr ""
|
||||
"Cela est principalement due à la volonté que ``i % j`` ait le même signe que "
|
||||
"j. Si vous voulez cela, vous voulez aussi::"
|
||||
"j. Si vous voulez cela, vous voulez aussi ::"
|
||||
|
||||
#: faq/programming.rst:800
|
||||
msgid ""
|
||||
|
@ -4257,7 +4402,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Alors la division entière doit retourner l'entier inférieur. Le C demande "
|
||||
"aussi à ce que cette égalité soit vérifiée, et donc les compilateur qui "
|
||||
"tronquent ``i//j`` ont besoin que ``i % j`` ait le même signe que ``i``."
|
||||
"tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``."
|
||||
|
||||
#: faq/programming.rst:804
|
||||
msgid ""
|
||||
|
|
Loading…
Reference in New Issue
Block a user