Compare commits

...

60 Commits
3.11 ... 3.10

Author SHA1 Message Date
Julien Palard 99f2135a89
Hello sphinx-lint. (#1913) 2022-11-14 15:25:17 +01:00
DERICK TEMFACK e552e4f391
ftplib (#1911) 2022-10-27 21:35:07 +02:00
Julien Palard 20eba35774
Make merge (#1912)
* Make merge

* Try to have the same build locally to reproduce an issue.
2022-10-19 14:43:37 +02:00
Julien Palard 900b88915a
Fix issues found by sphinx-lint 2022-10-18 12:38:19 +02:00
Julien Palard 0a1983e280
Drop powrap from make verifs. (#1909)
Closes #1841
2022-10-16 10:34:53 +02:00
Julien Palard 27b150c990
pomerge (#1885) 2022-09-18 12:33:39 +02:00
Philippe Galvan c19994718d
Complément de traduction library/random.po (#1906)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-08-30 09:34:18 +02:00
Nicolas Haller 1961c8af9b
Traduction de library/asyncio-future.po (#1907)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-08-30 09:31:35 +02:00
Jean Abou-Samra fe714889f3
Quelques fuzzies et mini-trads (#1902)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-07-09 08:14:15 +02:00
Julien Palard c1f223aff0
FIX: Turtle module constant should not be translated. (#1901)
* FIX: Turtle module constant should not be translated.

* Oops default roles.
2022-07-07 13:43:44 +02:00
Jean Abou-Samra e6f2a01f46
Reformulation dans glossary.po (#1899)
Pour des raisons que je n'ai pas creusées, la syntaxe :pep:`quelque
chose <numéro>` est une extension de Sphinx, qui n'est pas présente
dans Docutils. Cela gêne pospell, qui dit « (ERROR/3) PEP number must
be a number from 0 to 9999; "585 <585>" is invalid. »
2022-06-19 15:28:05 +02:00
Nicolas Haller 8001d30342
Traduction de library/asyncio-dev.po (#1891)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-06-07 07:30:19 +02:00
Jean-Christophe Helary b48e326e75
petites fautes (#1894) 2022-06-02 08:56:30 +02:00
Nils Van Zuijlen 168550f460
Traduction de library/decimal.po (#1660)
Co-authored-by: Julien Palard <julien@palard.fr>
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Mathieu Dupuy <mathieu.dupuy@critizr.com>
Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>

Merci à tous.
2022-05-30 12:13:38 +02:00
Christophe Nanteuil 0b030e224d
Traduction de library/argparse.po (#1892)
* fuzzies
* coquille pour le paragraphe concernant le paramètre type
2022-05-30 11:13:22 +02:00
Jules Lasne 37da9a8706
Started translating library/os.po (#1531)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Mathieu Dupuy <mathieu.dupuy@critizr.com>
2022-05-27 15:06:27 +02:00
Mathieu Dupuy 0181416d7f
faq: 2 fuzzies (#1889)
* faq: 2 fuzzies

Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-27 12:51:02 +02:00
Antoine a183a44f3c
library/logging.handlers (#1797)
Co-authored-by: PhilippeGalvan <git.philippeG@outlook.com>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
2022-05-27 12:07:23 +02:00
Jean Abou-Samra 1e8e99b91b
Traduction de library/zoneinfo.po (#1879)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Loc Cosnier <loc.cosnier@pm.me>
2022-05-27 10:48:01 +02:00
Jean Abou-Samra 86f8d73230
Quelques fuzzies (#1873)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-05-27 10:40:48 +02:00
Mathieu Dupuy 2c827d82d1
using/windows.po (#1886)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
2022-05-26 23:45:44 +02:00
Mathieu Dupuy 583c3fad3b
tutorial: quelques fuzzies (#1888)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-26 23:31:42 +02:00
Melcore 229bcd578e
Traduction de library/stat.po (#1748)
Co-authored-by: Julien Palard <julien@palard.fr>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
2022-05-24 18:50:30 +02:00
Mathieu Dupuy 0a16b65078
using/mac.po: 1 fuzzy (#1887) 2022-05-24 18:34:23 +02:00
PhilippeGalvan 5ca18fea1b
Relecture complète et complément de library/csv.po (#1798)
Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Julien Palard <julien@palard.fr>
2022-05-23 14:19:30 +02:00
Jean Abou Samra 9a4893a322 Make merge 2022-05-23 01:36:45 +02:00
Jean Abou Samra 3fc81dd82c merge.py: Use git ls-files to get list of downstream PO files
The previous method could lead to problems if a dependency installed
within venv/ shipped with its own PO files.
2022-05-23 01:33:40 +02:00
Mathieu Dupuy 7b5494304c
library/json.po: fuzzies (#1878) 2022-05-21 13:08:37 +02:00
Mathieu Dupuy ea615bb65f
whatsnew/3.10.po: fuzzies (#1875)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
2022-05-21 13:07:46 +02:00
Nicolas Haller f30d3f2c7b
Traduction de library/socketserver.po (#1872)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-05-21 13:03:47 +02:00
Mathieu Dupuy 0546f86f47
library/csv.po: some fuzzies + new blocks (#1877)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-05-21 10:13:35 +02:00
Loc Cosnier 29fd9f86d6
Traduction de library/datetime.po (#1578)
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Mathieu Dupuy <mathieu.dupuy@critizr.com>
2022-05-20 14:48:15 +02:00
Mathieu Dupuy 3374b5df2c
library/errors.po: 1 fuzzy (#1876) 2022-05-20 11:34:15 +02:00
Loc Cosnier d9b20359bf
Traduction de library/stdtypes.po (#1576)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Mathieu Dupuy <mathieu.dupuy@critizr.com>
2022-05-20 09:06:14 +02:00
Vincent Poulailleau fe69851029 auto fill reStructuredText-only strings 2022-05-19 09:36:06 +02:00
Mathieu Dupuy 7cc3ab279d
howto: fuzzies (#1869) 2022-05-12 20:42:08 +02:00
Mathieu Dupuy fbad65ec29
library/path.po: entrées manquantes (#1868)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-11 18:40:05 +02:00
Mathieu Dupuy 9b6d6e2585
fuzzy + wrapping (#1866)
le changement upstream est le retrait de la majuscule au mot "Internet" , qui n'est pas repris dans la trad française
2022-05-09 14:40:08 +02:00
Thierry Pellé c4cc2a5a28
Traduction de library/html.parser.po (#1864)
Co-Authored-By: Jean Abou Samra <jean@abou-samra.fr>
2022-05-08 09:58:49 +02:00
Christophe Nanteuil a0c7fabc13
Reprise des fuzzies. RAS (#1865) 2022-05-07 16:38:04 +02:00
Nicolas Haller 5025581da6
Traduction de library/syslog.po (#1862)
Marque une entrée de library/syslog.po comme fuzzy.

Une demande d'éclaircissement sur la doc originale a été ouverte.
python/cpython#92412

Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-07 10:27:16 +02:00
edith 720a28c138
library/http.server.po (#1853)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Jimmy Lamothe <jmichel.dev@gmail.com>
2022-05-03 13:32:30 +02:00
Christophe Nanteuil 2fb8b34a03
Traduction de howto/logging-cookbook (#1850)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-04-30 16:41:46 +02:00
Mathieu Dupuy 28a1fc2581
unfuzzy a string (#1858)
Le changement upstream est une correction de grammaire : 63298930fb
2022-04-29 18:45:23 +02:00
Thierry Pellé b0ab49b4bf
Restructuration de Contributing.rst (#1848)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-04-28 14:20:14 +02:00
freallearn b76b03017b
Traduction partielle library/glob.po (#1815)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>
2022-04-28 00:35:34 +02:00
Mathieu Dupuy 50d8aa8ff9
unfuzz an entry (#1856)
le changement en anglais upstream n'affecte pas la traduction française (python/cpython@9a0d941df4)
2022-04-26 18:15:03 +02:00
Christophe Nanteuil 3c0f0166ec
fuzzys et padpo (#1855) 2022-04-26 18:14:10 +02:00
Jean-Michel Laprise 50bd7b27d6
Vérifications de fuzzy et corrections de style sur tutorial/controlflow.po (#1849) 2022-04-26 17:47:26 +02:00
Yannick Gingras cff92cc17a
Partie finale de library/exceptions.po (#1845)
Co-authored-by: Jean-Michel Laprise <jmichel.dev@gmail.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-04-18 22:44:15 +02:00
Emmanuel Leblond e805151949
Correction de contresens de traduction de os.utime (#1851) 2022-04-15 19:10:19 +02:00
Jean-Michel Laprise d9cb93b14e
Mise à jour de copyright.po (#1843) 2022-04-07 21:50:11 +02:00
Thierry Pellé 5460f47129
Library http client.po (#1826)
* essai traduction

* Traduction de fuzzies. Ajout de traductions manquantes

* Traduction de l'introduction et de la classe HTTPConnect

* Suite de la traduction. J'ai sauté un paragraphe sur la sécurité dont je ne maîtrisais pas le vocabulaire

* Suite de la traduction et correction d'un barbarisme dans whatsnew/3.10.po

* Suite traduction

* Récupération ancienne version de whatsnew/3.10.po

* Suite traduction

* Fin de traduction. Attente de relecture personnelle

* Début de relecture

* Fin de relecture

* Modif loggin

* Mise à jour library/http.client.po

Prise en compte commentaires

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/http.client.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Make merge

* Apply suggestions from code review

Relecture finale pour corriger toutes les imperfections.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Remise de whatsnew/3.10.po à l'état 3.10

* Remise de logging à 3.10

* powrap library/http.client.po

* Faute de frappe dans http.client.po

* Espaces insécables

* Correction de fautes de frappe trouvées par padpo

* Apply suggestions from code review

Prise en compte des remarques.

Co-authored-by: Julien Palard <julien@palard.fr>

* Apply suggestions from code review

Validation des propositions.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Application de powrap

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>
2022-04-07 14:53:24 +02:00
Jean Abou Samra cf90440fa3 Ajout des modules rendus obsolètes par la PEP 594 à EXCLUDED
Il n'est pas très utile de traduire ces fichiers, puisqu'ils seront
supprimés (avec les modules correspondants) en 2.12.
2022-04-05 23:04:26 +02:00
Julien Palard b8eb0ae207
Make merge 3.10 (#1837)
* Make merge

* Whine about lines too long only if line contains a space.
2022-04-05 12:13:01 +02:00
Yannick Gingras f75fa85f4a
traduction finale de library/atexit.po (#1832)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-04-04 14:01:42 +02:00
Yannick Gingras 2d202f482a
traduction finale de library/tarfile.po (#1830)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-04-04 14:00:32 +02:00
Julien Palard 3df1955d81 Wrapping comments. 2022-03-23 18:57:04 +01:00
Julien Palard e82724d296 Check line length without checking exact wrapping.
Problem is: gettext changed it line wrapping algorithm, so we can no
longer rely on everyone having the same wrapping: some will still get
the old one for a very long time, while other will have the new one.
2022-03-23 18:57:04 +01:00
Julien Palard 518292adbb Make merge 2022-03-23 18:57:04 +01:00
339 changed files with 32849 additions and 27220 deletions

View File

@ -15,14 +15,15 @@ jobs:
strategy:
matrix:
tool:
- name: sphinx-lint
package: sphinx-lint
command: 'sphinx-lint --enable default-role --ignore .git'
- name: Orthographe
package: pospell
apt_dependencies: hunspell hunspell-fr-comprehensive
command: 'pospell -p dict -l fr_FR $CHANGED_PO_FILES'
- name: Longueur des lignes
package: powrap
apt_dependencies: gettext
command: 'powrap --check --quiet --diff $CHANGED_PO_FILES'
command: 'awk ''{if (length($0) > 80 && length(gensub(/[^ ]/, "", "g")) > 1) {print FILENAME ":" FNR, "line too long:", $0; ERRORS+=1}} END {if (ERRORS>0) {exit 1}}'' $CHANGED_PO_FILES'
- name: Grammaire
package: padpo
command: 'padpo -i $CHANGED_PO_FILES 2>&1 | grep -v -Ff padpo.ignore'
@ -42,9 +43,13 @@ jobs:
python-version: '3.9'
- name: Install ${{ matrix.tool.package }}
run: |
[ -n "${{ matrix.tool.apt_dependencies }}" ] && sudo apt-get update && sudo apt-get install -y ${{ matrix.tool.apt_dependencies }}
python -m pip install --upgrade pip setuptools wheel
python -m pip install ${{ matrix.tool.package }}
if [ -n "${{ matrix.tool.apt_dependencies }}" ]; then
sudo apt-get update && sudo apt-get install -y ${{ matrix.tool.apt_dependencies }}
fi
if [ -n "${{ matrix.tool.package }}" ]; then
python -m pip install --upgrade pip setuptools wheel
python -m pip install ${{ matrix.tool.package }}
fi
- name: Run ${{ matrix.tool.package }}
env:
ADDED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.added), ' ') }}
@ -64,14 +69,18 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: '~/cpython/'
key: '1'
- uses: actions/setup-python@v2
- uses: actions/cache@v3
with:
python-version: '3.9'
path: ~/.cache/pip
key: '1'
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Clone cpython
run: |
if [ ! -d ~/cpython ]; then
@ -86,9 +95,7 @@ jobs:
git -C ~/cpython checkout $(grep ^CPYTHON_CURRENT_COMMIT Makefile| cut -d= -f2)
- name: Prepare venv
run: |
# If the venv exists but is broken, drop it (happens on Python upgrades):
# see https://github.com/actions/setup-python/issues/170
[ -d $HOME/cpython/Doc/venv/bin/ -a ! -e $HOME/cpython/Doc/venv/bin/python ] && rm -fr $HOME/cpython/Doc/venv
make -C $HOME/cpython/Doc clean-venv
make -C $HOME/cpython/Doc venv
- name: sphinx-build
run: make -C $HOME/cpython/Doc SPHINXOPTS="-q -j4 -D locale_dirs=$HOME/locales -D language=fr -D gettext_compact=0" autobuild-dev-html

View File

@ -1,26 +1,125 @@
Guide de contribution à la documentation via GitHub
===================================================
Instructions
------------
###################################################
Prérequis
~~~~~~~~~
=========
Outils souhaitables
-------------------
Pour pouvoir participer à la traduction en commun, il est souhaitable
d'installer :
- un client ``git`` `Linux <https://git-scm.com/>`_, `MacOS
<https://git-scm.com/>`_ ou `Windows <https://gitforwindows.org/>`_ ;
- un client ``git`` `Linux <https://git-scm.com/>`_, `MacOS <https://git-scm.com/>`_ ou `Windows <https://gitforwindows.org/>`_ ;
- un éditeur de fichier ``.po`` (comme `Poedit <https://poedit.net/>`_).
Équipez-vous aussi de quelques outils pour vous aider dans
votre traduction (voir `Outils utiles pour la traduction`_).
Outils facultatifs
------------------
De plus, il peut être utile de s'équiper d'utilitaires pour faciliter
la manipulation des fichiers ``.po`` et la traduction.
`Poutils <https://pypi.org/project/poutils/>`_ est un paquet PyPI qui
regroupe un certain nombre d'outils liés à la traduction. Dans un
environnement disposant de Python 3.7 ou plus, installez-le avec ::
python3 -m pip install poutils
Dans notre cas, les utilitaires de *Poutils* qui nous intéressent sont :
Pospell
^^^^^^^
Vérificateur d'orthographe fondé sur Hunspell. ``make spell`` exécute
Pospell. Pour l'utiliser, il vous faut installer Hunspell. Attention,
dans Debian notamment (et ses dérivés comme Ubuntu), il existe plusieurs
dictionnaires français qui diffèrent en raison de l'orthographe
réformée. Installez celui qui contient les deux orthographes avec ::
sudo apt install hunspell hunspell-fr-comprehensive
Potodo
^^^^^^
Permet d'identifier les parties de la documentation qu'il reste à
traduire. ``make todo`` fait appel à Potodo.
Pogrep
^^^^^^
Permet de rechercher dans la documentation des termes. Utile si on a un doute
sur comment traduire un terme ou chercher la traduction d'un terme dans
d'autres fichiers. Pour connaître les options disponibles, tapez ::
pogrep --help
Powrap
^^^^^^
Formateur de fichier *.po*. C'est l'outil qui se cache derrière ``make
wrap``.
Padpo (beta)
^^^^^^^^^^^^
Analyseur de code qui encapsule notamment `Grammalecte
<https://grammalecte.net>`_ et qui vérifie la grammaire, l'orthographe
et la syntaxe des fichiers *.po*.
Configuration des outils
------------------------
Configuration de Poedit
^^^^^^^^^^^^^^^^^^^^^^^
* N'oubliez pas de configurer votre nom et
votre adresse de courriel (Édition → Préférences → Général).
* Vérifiez également qu'il est configuré pour passer à la ligne à 79
caractères (Édition → Préférences → Avancé → Passer à la ligne à
79).
Configuration de Git (rendre plus lisible l'affichage des modifications)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Le résultat de ``git diff`` est souvent encombré de changements inutiles de numéros
de ligne, comme :
.. code-block:: diff
-#: ../Doc/library/sys.rst:406
+#: ../Doc/library/sys.rst:408
*fork* personnel sur Github
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pour dire à Git que ce ne sont pas des informations utiles, vous pouvez faire
ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre
``PATH``.
Pour commencer vous aurez besoin de *forker* le dépôt des sources `python-docs-fr
<https://github.com/python/python-docs-fr>`_ en cliquant sur son bouton
``Fork``. Ceci crée une copie du projet sur votre compte Github, c'est un endroit
où vous avez le droit de faire des modifications.
.. code-block:: bash
cat <<EOF > ~/.local/bin/podiff
#!/bin/sh
grep -v '^#:' "\$1"
EOF
chmod a+x ~/.local/bin/podiff
git config diff.podiff.textconv podiff
Pas d'inquiétude, cela ne change la façon dont Git affiche les changements que sur
les fichiers de la traduction, sans incidence sur les autres.
Première étape : créer et peupler son dépôt
===========================================
Sur Github
----------
Depuis votre compte GitHub, se rendre dans le dépôt des sources `python-docs-fr
<https://github.com/python/python-docs-fr>`_ puis cliquer sur son bouton ``Fork``.
Ceci crée une copie du projet sur votre compte Github. C'est sur cette copie
que vous avez le droit de faire des modifications.
Étape par étape :
@ -40,12 +139,14 @@ où vous avez le droit de faire des modifications.
git remote add upstream https://github.com/python/python-docs-fr.git
*fork* personnel sur une autre forge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sur une autre forge
-------------------
Si vous n'avez pas de compte Github, il est possible *fork* ce dépôt sur une autre forge.
Si vous n'avez pas de compte Github, il est possible d'utiliser une autre forge.
Vous devez dans un premier temps initier un dépôt vide sur la forge où vous voulez héberger le
dépôt.
dépôt puis le peupler.
Étape par étape :
.. code-block:: bash
@ -66,15 +167,49 @@ dépôt.
git push -u origin
Réservation d'un fichier
~~~~~~~~~~~~~~~~~~~~~~~~
Deuxième étape : choisir et réserver le fichier sur lequel travailler
=====================================================================
*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
Note liminaire
--------------
Ensuite, vous devez trouver un fichier sur lequel travailler
(pour vous aiguiller, lisez la section `Que traduire ?`_). Nous vous conseillons
de choisir, si possible, un fichier traitant d'un sujet que vous maitrisez, cela
vous aidera grandement à produire une traduction de bonne qualité.
Il est vivement conseillé de ne pas travailler sur fichiers des
répertoires *c-api/*, *whatsnew/*, *distutils/* et *install/* :
- *c-api/* car c'est une partie très technique ;
- *whatsnew/* car les anciennes versions de Python sont pour la plupart
obsolètes et leurs journaux de modifications ne sont pas les pages les plus
consultées ;
- *distutils/*, *install/*, et quelques autres parties qui seront bientôt
obsolètes. De manière générale, il n'est pas utile de traduire un module que
sa documentation mentionne comme obsolète.
Trouver un fichier sur lequel travailler
----------------------------------------
Pour vous aiguiller dans votre choix, vous pouvez utiliser ``potodo``,
un outil recherchant des fichiers ``.po`` à traduire. Une fois
installé, utilisez la commande ``make todo`` dans votre clone local.
La liste renvoyée contient tous les fichiers qui ne sont pas encore complètement
traduits. Vous pouvez choisir n'importe quel fichier non réservé dans la liste
renvoyée (notez que ceux mentionnés plus haut sont automatiquement exclus).
Vous pouvez commencer par des tâches faciles comme réviser les entrées
*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide
de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite
mais dont la source en anglais a été modifiée depuis (correction orthographique,
changement d'un terme, ajout ou suppression d'une phrase…). Elles sont
généralement plus « faciles » à traduire.
Vous pouvez également relire des entrées déjà traduites pour vous faire une
idée, et passer ensuite à la traduction de celles qui ne le sont pas encore.
Nous vous conseillons de choisir, si possible, un fichier traitant
d'un sujet que vous maîtrisez, cela vous aidera grandement à produire
une traduction de bonne qualité.
Si c'est votre première contribution, commencez par une toute petite
traduction, de quelques paragraphes maximum, pour vous familiariser. Il n'est
@ -82,6 +217,11 @@ pas nécessaire de terminer un fichier lorsqu'on le commence, vous
pouvez donc prendre n'importe quel fichier, mais ne traduire que
quelques paragraphes.
Réserver le fichier
-------------------
*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
Une fois que vous avez choisi un fichier sur lequel travailler vous pouvez nous
le signaler par différents moyens :
@ -100,12 +240,15 @@ dans les tickets et les *pull requests*.
`irc://irc.libera.chat/#python-docs-fr <https://web.libera.chat/#python-docs-fr>`_
pour nous le signaler.
Vous êtes maintenant prêt. Chaque fois que vous commencerez un nouveau fichier,
suivez cette procédure :
Pour travailler, nous avons besoin d'une branche, basée sur une version à jour
(fraîchement récupérée) de la branche « upstream/3.10 ». On met donc à jour notre
version locale.
Création de la branche de traduction
------------------------------------
*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
Vous êtes maintenant prêt. Pour travailler, nous avons besoin d'une
branche, basée sur une version à jour (fraîchement récupérée) de la
branche « upstream/3.10 ». On met donc à jour notre version locale.
.. code-block:: bash
@ -122,12 +265,12 @@ fichier sur lequel on travaille. Par exemple, si vous travaillez sur
git checkout -b library-sys upstream/3.10
Vous pouvez maintenant travailler sur le fichier.
Si vous utilisez Poedit, n'oubliez pas de configurer votre nom et votre adresse de courriel
(Édition → Préférences → Général).
Vérifiez aussi qu'il est configuré pour passer à la ligne à 79 caractères
(Édition → Préférences → Avancé → Passer à la ligne à 79).
Troisième étape: Traduction
===========================
Avec Poedit
---------------
Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment.
.. code-block:: bash
@ -138,11 +281,11 @@ Ici, remplacez « library/sys.po » par le fichier que vous avez choisi préc
Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ».
Traduction
~~~~~~~~~~
Vérifications après traduction
------------------------------
Vous pouvez dès à présent commencer à traduire le fichier en
respectant les `conventions`_ du projet. Pour vous y aider, la commande :
Après avoir modifié les fichiers, vérifiez que vous respectez les
`conventions`_ du projet. Pour vous y aider, la commande :
.. code-block:: bash
@ -157,8 +300,9 @@ Si ``make verifs`` trouve des problèmes de longueurs de ligne,
vérifiez votre configuration ``poedit`` (Édition → Préférences →
Avancé → Passer à la ligne à 79) ou utilisez ``make wrap``.
Une fois la traduction finie, il faut compiler la documentation, c'est-à-dire générer les fichiers HTML
affichés par le site, pour les relire. Si la commande précédente s'est exécutée sans erreur, la
Une fois la traduction finie, il faut compiler la documentation,
c'est-à-dire générer les fichiers HTML affichés par le site, pour les
relire. Si la commande précédente s'est exécutée sans erreur, la
compilation ne devrait pas échouer.
.. code-block:: bash
@ -174,13 +318,10 @@ documentation local :
make serve
La documentation est publiée l'adresse `<http://localhost:8000/library/sys.html>`_.
Si vous souhaitez modifier le port de ce serveur (par exemple 8080), utilisez :
.. code-block:: bash
make serve SERVE_PORT=8080
La documentation est publiée à l'adresse `<http://localhost:8000/library/sys.html>`_.
Attention: le port TCP/8000 ne peut être changé, il convient d'arrêter
tout service qui écouterait sur celui-ci.
Vous pouvez recommencer les étapes de cette section autant de fois que
nécessaire.
@ -190,21 +331,21 @@ Poedit donne beaucoup d'avertissements, par exemple pour vous informer que
la source. Ces avertissements ne sont pas tous fondés. En cas de doute,
*affichez et relisez la page HTML produite* avec ``make serve``.
*pull request*
~~~~~~~~~~~~~~
Quatrième étape : publier sa traduction
=======================================
Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les
`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local.
``git add`` place nos modifications dans l'index de Git en
attendant d'être propagées dans le dépôt local.
* ``git add`` place nos modifications dans l'index de Git en attendant
d'être propagées dans le dépôt local.
.. code-block:: bash
git add library/sys.po
``git commit`` permet de les propager :
* ``git commit`` permet de les propager :
.. code-block:: bash
@ -222,7 +363,7 @@ branche est liée à votre *fork* (et donc que vos futurs ``git pull`` et
git push --set-upstream origin
Sur Github
++++++++++
----------
La commande précédente vous affiche un lien pour ouvrir une *pull request* sur
Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/pulls
@ -250,7 +391,7 @@ GitHub puis relancer ``powrap`` :
git push
Sur une autre forge
+++++++++++++++++++
-------------------
Quand vous avez poussé vos modifications, il y a plusieurs possibilités.
@ -307,38 +448,10 @@ les plus anciennes par l'`équipe de documentation
<https://www.python.org/dev/peps/pep-8015/#documentation-team>`_.
Que traduire ?
--------------
Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers *po*
à traduire. Une fois installé, utilisez la commande ``make todo`` dans votre clone
local.
Vous pouvez choisir n'importe quel fichier non réservé dans la liste renvoyée.
Elle contient tous les fichiers qui ne sont pas encore complètement traduits, à
l'exception des fichiers de :
- *c-api/* car c'est une partie très technique ;
- *whatsnew/* car les anciennes versions de Python sont pour la plupart
obsolètes et leurs journaux de modifications ne sont pas les pages les plus
consultées ;
- *distutils/*, *install/*, et quelques autres parties qui seront bientôt
obsolètes. De manière générale, il n'est pas utile de traduire un module que
sa documentation mentionne comme obsolète.
Vous pouvez commencer par des tâches faciles comme réviser les entrées
*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide
de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite
mais dont la source en anglais a été remodifiée depuis (correction orthographique,
changement d'un terme, ajout ou suppression d'une phrase…). Elles sont
généralement plus « faciles » à traduire.
Vous pouvez également relire des entrées déjà traduites pour vous faire une
idée, et passer ensuite à la traduction de celles qui ne le sont pas encore.
Conventions
-----------
===========
Certaines conventions ont été édictées pour homogénéiser la traduction.
Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et
@ -346,7 +459,7 @@ les traductions déjà définies dans le `glossaire`_.
Style
~~~~~
-----
Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle
en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et
@ -357,7 +470,7 @@ documentation anglaise, si le rythme l'exige. Il faut aussi chercher des
garde aux anglicismes.
Utilisation du futur
++++++++++++++++++++
^^^^^^^^^^^^^^^^^^^^
Dans la description du comportement de Python (au sens large, c'est-à-dire
l'interpréteur lui-même mais aussi toutes les bibliothèques), la version
@ -370,13 +483,13 @@ processus de compilation n'est pas immédiat) ou pour des raisons de
concordance des temps.
Utilisation du conditionnel
+++++++++++++++++++++++++++
^^^^^^^^^^^^^^^^^^^^^^^^^^^
La version originale est très polie envers le lecteur ; elle lui intime
rarement des obligations, préférant employer « you should ». Cependant, en
français, il est d'usage d'être plus direct pour être correctement compris :
« vous devez ». *Vous devriez* est en effet généralement compris comme quelque
chose dont l'on peut de temps en temps se passer, alors que c'est très
chose dont on peut de temps en temps se passer, alors que c'est très
rarement le cas pour les « you should » de cette documentation.
De la même manière, « can » est souvent mieux traduit sans introduire de notion
de possibilité, en particulier quand la phrase est à la voix passive ; la
@ -384,20 +497,20 @@ phrase « these objects can be accessed by… » se traduit mieux par « on ac
ces objets en… ».
Utilisation du masculin
+++++++++++++++++++++++
^^^^^^^^^^^^^^^^^^^^^^^
Dans un souci de lisibilité et en accord avec la préconisation de
l'Académie française, nous utilisons le masculin pour indiquer un
genre neutre. Par exemple : l'utilisateur ou le lecteur.
Règles rst
~~~~~~~~~~
----------
Prototypes et exemples
++++++++++++++++++++++
^^^^^^^^^^^^^^^^^^^^^^
Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms
de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser
de fonctions, paramètres de ces fonctions, constantes, etc.) mais les laisser
tels quel, entourés d'astérisques dans les blocs de texte.
Si la documentation contient des exemples, vous *pouvez* traduire les noms
utilisés, en prenant garde d'être cohérent. Vous pouvez ainsi traduire :
@ -428,7 +541,7 @@ mais pas en
Liens hypertextes
+++++++++++++++++
^^^^^^^^^^^^^^^^^
Il faut transformer les liens hypertextes qui redirigent vers une page dont il
existe une version française (c'est notamment très souvent le cas pour les
@ -439,11 +552,11 @@ doit devenir ```Jeu de la vie <https://fr.wikipedia.org/wiki/Jeu_de_la_vie>`_``.
Balises
+++++++
^^^^^^^
Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``.
Vous devez cependant traduire les balises ``:term:...``, qui font référence à
un concept ou une primitive défini dans le `glossaire Python <https://docs.python.org/fr/3/glossary.html>`_.
une primitive ou un concept défini dans le `glossaire Python <https://docs.python.org/fr/3/glossary.html>`_.
La syntaxe est ``:term:nom_français<nom_anglais>``. Par exemple, traduisez
``:term:`dictionary``` en ``:term:`dictionnaire <dictionary>```.
@ -452,7 +565,7 @@ terme que vous pouvez rencontrer.
Glossaire
~~~~~~~~~
=========
Afin d'assurer la cohérence de la traduction, voici quelques
termes fréquents déjà traduits. Une liste blanche de noms propres, comme « Guido »,
@ -481,6 +594,7 @@ bytecode code intermédiaire
callback fonction de rappel
call stack pile d'appels
caught (exception) interceptée
daemon *daemon*
debugging débogage
deep copy copie récursive (préféré), ou copie profonde
double quote guillemet
@ -552,12 +666,12 @@ whitespace caractère d'espacement
========================== ===============================================
Ressources de traduction
------------------------
========================
- les canaux IRC sur irc.libera.chat :
- `#python-docs-fr <https://web.libera.chat/#python-docs-fr>`_ — communauté python autour de la documentation française,
- `#python-fr <https://web.libera.chat/#python-fr>`_ — communauté python francophone,
- `#python-fr <https://web.libera.chat/#python-fr>`_ — communauté python francophone,
- `#python-doc <https://web.libera.chat/#python-doc>`_ — communauté python autour de la documentation anglophone ;
- les listes de diffusion relatives à la documentation (courriel) :
@ -566,8 +680,8 @@ Ressources de traduction
- des glossaires et dictionnaires :
- le `glossaire de la documentation Python <https://docs.python.org/fr/3/glossary.html>`_, car il est déjà traduit,
- les `glossaires et dictionnaires de traduc.org <https://traduc.org/Glossaires_et_dictionnaires>`_, en particulier le `grand dictionnaire terminologique <http://gdt.oqlf.gouv.qc.ca/>`_ de l'Office québécois de la langue française,
- Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ;
- les `glossaires et dictionnaires de traduc.org <https://traduc.org/Glossaires_et_dictionnaires>`_, en particulier le `grand dictionnaire terminologique <http://gdt.oqlf.gouv.qc.ca/>`_ de l'Office québécois de la langue française,
- Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version française pour voir comment le sujet de l'article est traduit ;
- le `guide stylistique pour le français de localisation des produits Sun
<https://web.archive.org/web/20160821182818/http://frenchmozilla.org/FTP/TEMP/guide_stylistique_December05.pdf>`_ donne
beaucoup de conseils pour éviter une traduction trop mot à mot ;
@ -582,10 +696,10 @@ page et génèrent une documentation au style très « lourd ».
Caractères spéciaux et typographie
----------------------------------
==================================
La touche de composition
~~~~~~~~~~~~~~~~~~~~~~~~
------------------------
Cette `touche <https://fr.wikipedia.org/wiki/Touche_de_composition>`_,
absente par défaut des claviers, permet de saisir des
@ -610,7 +724,7 @@ simplement fonctionner :
- etc.
Comment définir la touche de composition ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------------
Cela dépend de votre système d'exploitation et de votre clavier.
@ -629,7 +743,7 @@ ajouter l'équivalent de :
keycode 115 = Multi_key
Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous
Utilisez ``xev`` pour connaître la bonne correspondance de la touche que vous
voulez assigner !
Ensuite, dans votre fichier *~/.xsession*, ajoutez :
@ -647,8 +761,8 @@ modifier dans les « Paramètres » → « Clavier » → « Disposition » →
⇒ Sous Windows, vous
pouvez utiliser `wincompose <https://github.com/SamHocevar/wincompose>`_.
Le cas de « --- », « -- », « ... »
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Le cas de « --- », « -- », « ... »
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
La version anglaise utilise les
`smartquotes <http://docutils.sourceforge.net/docs/user/smartquotes.html>`_,
@ -664,7 +778,7 @@ Les *smartquotes* sont normalement responsables de la transformation de
| « ... » : faites :kbd:`Compose . . .`
Le cas de « "…" »
~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^
Les guillemets français ``«`` et ``»`` ne sont pas identiques aux
guillemets anglais ``"``. Cependant, Python utilise les guillemets
@ -675,7 +789,7 @@ traduire les guillemets mais pas les délimiteurs de chaîne.
| « "…" » : faites :kbd:`Compose < <` ou :kbd:`Compose > >`
Le cas de « :: »
~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^
| Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la
documentation nous voyons soit « bla bla:: », soit « bla bla. :: ».
@ -691,7 +805,7 @@ En français, nous mettons une espace insécable devant nos deux-points, comme :
Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE`
Les doubles-espaces
~~~~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^
La documentation originale comporte beaucoup de doubles-espaces.
Cela se fait en anglais, mais pas en français. De toute manière,
@ -702,7 +816,7 @@ coté traduction : nous ne les retirons pas et ce n'est pas grave
si des traducteurs en retirent par accident.
Les énumérations
~~~~~~~~~~~~~~~~
^^^^^^^^^^^^^^^^
Chaque paragraphe d'une énumération introduite par un deux-point
doit se terminer par un point-virgule (bien entendu précédé d'une
@ -715,7 +829,7 @@ une virgule et le dernier par un point-virgule.
Par exemple :
- le premier paragraphe de l'énumération ;
- le deuxième paragraphe, lui-aussi une énumération :
- le deuxième paragraphe, lui aussi une énumération :
- premier sous-paragraphe,
- second sous-paragraphe ;
@ -727,88 +841,3 @@ entre un paragraphe et sa traduction ; il faut passer outre ses avertissements.
Vous pouvez aussi rajouter un commentaire dans le fichier *.po* pour avertir
les traducteurs suivants et éviter qu'ils ne « corrigent » par erreur ces
avertissements.
Outils utiles pour la traduction
--------------------------------
Poutils
~~~~~~~
`Poutils <https://pypi.org/project/poutils/>`_ est un paquet PyPI qui
regroupe un certain nombre d'outils liés à la traduction. Dans un
environnement disposant de Python 3.7 ou plus, installez-le avec ::
python3 -m pip install poutils
Voici le détail des paquets qui nous intéressent dans Poutils :
Pospell
+++++++
Vérificateur d'orthographe fondé sur Hunspell. ``make spell`` exécute
Pospell. Pour l'utiliser, il vous faut installer Hunspell. Attention,
dans Debian notamment (et ses dérivés comme Ubuntu), il existe plusieurs
dictionnaires français qui diffèrent en raison de l'orthographe
réformée. Installez celui qui contient les deux orthographes avec ::
sudo apt install hunspell hunspell-fr-comprehensive
Potodo
++++++
Permet d'identifier les parties de la documentation qu'il reste à
traduire. ``make todo`` fait appel à Potodo.
Pogrep
++++++
Permet de rechercher dans la documentation des termes. Utile si on a un doute
sur comment traduire un terme ou chercher la traduction d'un terme dans
d'autres fichiers. Pour connaître les options disponibles, tapez ::
pogrep --help
Powrap
++++++
Formateur de fichier *.po*. C'est l'outil qui se cache derrière ``make
wrap``.
Padpo (beta)
++++++++++++
Analyseur de code qui encapsule notamment `Grammalecte
<https://grammalecte.net>`_ et qui vérifie la grammaire, l'orthographe
et la syntaxe des fichiers *.po*.
Affichage des modifications par Git
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Le résultat de ``git diff`` est souvent encombré de changements inutiles de numéros
de ligne, comme :
.. code-block:: diff
-#: ../Doc/library/sys.rst:406
+#: ../Doc/library/sys.rst:408
Pour dire à Git que ce ne sont pas des informations utiles, vous pouvez faire
ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre
``PATH``.
.. code-block:: bash
cat <<EOF > ~/.local/bin/podiff
#!/bin/sh
grep -v '^#:' "\$1"
EOF
chmod a+x ~/.local/bin/podiff
git config diff.podiff.textconv podiff
Pas d'inquiétude, cela ne change la façon dont Git affiche les changements que sur
les fichiers de la traduction, sans incidence sur les autres.

View File

@ -20,7 +20,7 @@
# from which we generated our po files. We use it here so when we
# test build, we're building with the .rst files that generated our
# .po files.
CPYTHON_CURRENT_COMMIT := 1b37268ef10bd20c30d349b8401c88215c8a6be8
CPYTHON_CURRENT_COMMIT := b2db1c208066b67bdf57bf3799de50352fe63416
LANGUAGE := fr
BRANCH := 3.10
@ -34,7 +34,28 @@ EXCLUDED := \
library/distutils.po \
library/imp.po \
library/tkinter.tix.po \
library/test.po
library/test.po \
library/aifc.po \
library/asynchat.po \
library/asyncore.po \
library/audioop.po \
library/cgi.po \
library/cgitb.po \
library/chunk.po \
library/crypt.po \
library/imghdr.po \
library/msilib.po \
library/nntplib.po \
library/nis.po \
library/ossaudiodev.po \
library/pipes.po \
library/smtpd.po \
library/sndhdr.po \
library/spwd.po \
library/sunau.po \
library/telnetlib.po \
library/uu.po \
library/xdrlib.po
# Internal variables
@ -132,7 +153,6 @@ fuzzy: ensure_prerequisites
.PHONY: verifs
verifs: spell
powrap --check --quiet *.po */*.po
.PHONY: clean
clean:

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"PO-Revision-Date: 2018-07-23 17:55+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-07-08 17:54+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -52,8 +52,9 @@ msgstr ""
"et rédacteur de la plupart de son contenu ;"
#: about.rst:24
#, fuzzy
msgid ""
"the `Docutils <http://docutils.sourceforge.net/>`_ project for creating "
"the `Docutils <https://docutils.sourceforge.io/>`_ project for creating "
"reStructuredText and the Docutils suite;"
msgstr ""
"le projet `Docutils <http://docutils.sourceforge.net/>`_ pour avoir créé "
@ -61,17 +62,17 @@ msgstr ""
#: about.rst:26
msgid ""
"Fredrik Lundh for his `Alternative Python Reference <http://effbot.org/zone/"
"pyref.htm>`_ project from which Sphinx got many good ideas."
"Fredrik Lundh for his Alternative Python Reference project from which Sphinx "
"got many good ideas."
msgstr ""
"Fredrik Lundh pour son projet `Alternative Python Reference <http://effbot."
"org/zone/pyref.htm>`_, dont Sphinx a pris beaucoup de bonnes idées."
"Fredrik Lundh pour son projet *Alternative Python Reference*, dont Sphinx a "
"pris beaucoup de bonnes idées."
#: about.rst:32
#: about.rst:31
msgid "Contributors to the Python Documentation"
msgstr "Contributeurs de la documentation Python"
#: about.rst:34
#: about.rst:33
msgid ""
"Many people have contributed to the Python language, the Python standard "
"library, and the Python documentation. See :source:`Misc/ACKS` in the "
@ -82,7 +83,7 @@ msgstr ""
"sources de la distribution Python pour avoir une liste partielle des "
"contributeurs."
#: about.rst:38
#: about.rst:37
msgid ""
"It is only with the input and contributions of the Python community that "
"Python has such wonderful documentation -- Thank You!"

118
bugs.po
View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-11-06 22:05+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-07-08 17:50+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -95,7 +95,7 @@ msgstr ""
"Vue d'ensemble du processus pour proposer une amélioration avec l'outil de "
"suivi."
#: bugs.rst:35
#: bugs.rst:36
msgid ""
"`Helping with Documentation <https://devguide.python.org/docquality/#helping-"
"with-documentation>`_"
@ -109,30 +109,49 @@ msgid ""
"Python documentation."
msgstr "Guide complet pour qui souhaite contribuer à la documentation Python."
#: bugs.rst:41
#: bugs.rst:38
msgid ""
"`Documentation Translations <https://devguide.python.org/documenting/"
"#translating>`_"
msgstr ""
"`Aider avec la documentation <https://devguide.python.org/documenting/"
"#translating>`_"
#: bugs.rst:39
msgid ""
"A list of GitHub pages for documentation translation and their primary "
"contacts."
msgstr ""
"Liste de dépôts GitHub où la documentation est traduite, avec les personnes "
"à contacter."
#: bugs.rst:45
msgid "Using the Python issue tracker"
msgstr "Utilisation du gestionnaire de tickets Python"
#: bugs.rst:43
#: bugs.rst:47
#, fuzzy
msgid ""
"Bug reports for Python itself should be submitted via the Python Bug Tracker "
"(https://bugs.python.org/). The bug tracker offers a web form which allows "
"pertinent information to be entered and submitted to the developers."
"Issue reports for Python itself should be submitted via the GitHub issues "
"tracker (https://github.com/python/cpython/issues). The GitHub issues "
"tracker offers a web form which allows pertinent information to be entered "
"and submitted to the developers."
msgstr ""
"Les rapports de bogues pour Python lui-même devraient être soumis via le "
"l'outil de suivi des bogues (*Bug Tracker Python* — http://bugs.python."
"org/). Le gestionnaire de tickets propose un formulaire Web permettant de "
"saisir des informations pertinentes à soumettre aux développeurs."
#: bugs.rst:47
#: bugs.rst:52
#, fuzzy
msgid ""
"The first step in filing a report is to determine whether the problem has "
"already been reported. The advantage in doing so, aside from saving the "
"developers time, is that you learn what has been done to fix it; it may be "
"developers' time, is that you learn what has been done to fix it; it may be "
"that the problem has already been fixed for the next release, or additional "
"information is needed (in which case you are welcome to provide it if you "
"can!). To do this, search the bug database using the search box on the top "
"of the page."
"can!). To do this, search the tracker using the search box at the top of the "
"page."
msgstr ""
"La première étape pour remplir un rapport est de déterminer si le problème a "
"déjà été rapporté. L'avantage de cette approche, en plus d'économiser du "
@ -142,13 +161,13 @@ msgstr ""
"contribution est la bienvenue !). Pour ce faire, cherchez dans la base de "
"données de bogues grâce à la boîte de recherche en haut de la page."
#: bugs.rst:54
#: bugs.rst:59
#, fuzzy
msgid ""
"If the problem you're reporting is not already in the bug tracker, go back "
"to the Python Bug Tracker and log in. If you don't already have a tracker "
"account, select the \"Register\" link or, if you use OpenID, one of the "
"OpenID provider logos in the sidebar. It is not possible to submit a bug "
"report anonymously."
"If the problem you're reporting is not already in the list, log in to "
"GitHub. If you don't already have a GitHub account, create a new account "
"using the \"Sign up\" link. It is not possible to submit a bug report "
"anonymously."
msgstr ""
"Si le problème que vous soumettez n'est pas déjà dans l'outil de suivi des "
"bogues, revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez "
@ -157,29 +176,27 @@ msgstr ""
"dans la barre latérale. Il n'est pas possible de soumettre un rapport de "
"bogue de manière anonyme."
#: bugs.rst:59
#: bugs.rst:64
#, fuzzy
msgid ""
"Being now logged in, you can submit a bug. Select the \"Create New\" link "
"in the sidebar to open the bug reporting form."
"Being now logged in, you can submit an issue. Click on the \"New issue\" "
"button in the top bar to report a new issue."
msgstr ""
"Une fois identifié, pour pouvez rapporter un bogue. Sélectionnez le lien "
"*Create New* dans la barre latérale pour ouvrir un nouveau formulaire de "
"rapport de bogue."
#: bugs.rst:62
msgid ""
"The submission form has a number of fields. For the \"Title\" field, enter "
"a *very* short description of the problem; less than ten words is good. In "
"the \"Type\" field, select the type of your problem; also select the "
"\"Component\" and \"Versions\" to which the bug relates."
msgstr ""
"Le formulaire de soumission a un certain nombre de champs. Pour le champ "
 Titre », saisissez une *très* courte description du problème ; moins de "
"dix mots est approprié. Dans le champ « Type », sélectionnez le type de "
"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec "
"le bogue."
#: bugs.rst:67
msgid "The submission form has two fields, \"Title\" and \"Comment\"."
msgstr ""
#: bugs.rst:69
msgid ""
"For the \"Title\" field, enter a *very* short description of the problem; "
"less than ten words is good."
msgstr ""
#: bugs.rst:72
msgid ""
"In the \"Comment\" field, describe the problem in detail, including what you "
"expected to happen and what did happen. Be sure to include whether any "
@ -192,17 +209,18 @@ msgstr ""
"plateforme matérielle et logicielle vous utilisiez (en incluant les "
"informations de versions)."
#: bugs.rst:72
#: bugs.rst:77
#, fuzzy
msgid ""
"Each bug report will be assigned to a developer who will determine what "
"needs to be done to correct the problem. You will receive an update each "
"time action is taken on the bug."
"Each issue report will be reviewed by a developer who will determine what "
"needs to be done to correct the problem. You will receive an update each "
"time an action is taken on the issue."
msgstr ""
"Chaque bogue sera attribué à un développeur qui déterminera ce qui est "
"nécessaire d'entreprendre pour corriger le problème. Vous recevrez une "
"notification à chaque action effectuée sur le bogue."
#: bugs.rst:81
#: bugs.rst:86
msgid ""
"`How to Report Bugs Effectively <https://www.chiark.greenend.org.uk/"
"~sgtatham/bugs.html>`_"
@ -210,7 +228,7 @@ msgstr ""
"`Comment signaler des bogues de manière efficace <https://www.chiark."
"greenend.org.uk/~sgtatham/bugs.html>`_ (en anglais)"
#: bugs.rst:80
#: bugs.rst:85
msgid ""
"Article which goes into some detail about how to create a useful bug report. "
"This describes what kind of information is useful and why it is useful."
@ -219,7 +237,7 @@ msgstr ""
"bogue utile. Il décrit quel genre d'information est utile et pourquoi elle "
"est utile."
#: bugs.rst:84
#: bugs.rst:89
msgid ""
"`Bug Writing Guidelines <https://bugzilla.mozilla.org/page.cgi?id=bug-"
"writing.html>`_"
@ -227,7 +245,7 @@ msgstr ""
"`Guide pour la rédaction de rapports de bogues <https://bugzilla.mozilla.org/"
"page.cgi?id=bug-writing.html>`_"
#: bugs.rst:84
#: bugs.rst:89
msgid ""
"Information about writing a good bug report. Some of this is specific to "
"the Mozilla project, but describes general good practices."
@ -235,11 +253,11 @@ msgstr ""
"Conseils pour écrire un bon rapport de bogue. Certains sont spécifiques au "
"projet Mozilla mais présentent des bonnes pratiques générales."
#: bugs.rst:90
#: bugs.rst:95
msgid "Getting started contributing to Python yourself"
msgstr "Commencer à contribuer à Python vous-même"
#: bugs.rst:92
#: bugs.rst:97
msgid ""
"Beyond just reporting bugs that you find, you are also welcome to submit "
"patches to fix them. You can find more information on how to get started "
@ -253,3 +271,15 @@ msgstr ""
"Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing "
"list`_ est un endroit amical pour obtenir des réponses à toutes les "
"questions à propos du processus de corrections de bugs dans Python."
#~ msgid ""
#~ "The submission form has a number of fields. For the \"Title\" field, "
#~ "enter a *very* short description of the problem; less than ten words is "
#~ "good. In the \"Type\" field, select the type of your problem; also "
#~ "select the \"Component\" and \"Versions\" to which the bug relates."
#~ msgstr ""
#~ "Le formulaire de soumission a un certain nombre de champs. Pour le champ "
#~ "« Titre », saisissez une *très* courte description du problème ; moins de "
#~ "dix mots est approprié. Dans le champ « Type », sélectionnez le type de "
#~ "problème ; sélectionnez aussi « Composant » et « Versions » en rapport "
#~ "avec le bogue."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-10-20 21:16+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -20,8 +20,9 @@ msgid "Allocating Objects on the Heap"
msgstr "Allouer des objets dans le tas"
#: c-api/allocation.rst:17
#, fuzzy
msgid ""
"Initialize a newly-allocated object *op* with its type and initial "
"Initialize a newly allocated object *op* with its type and initial "
"reference. Returns the initialized object. If *type* indicates that the "
"object participates in the cyclic garbage detector, it is added to the "
"detector's set of observed objects. Other fields of the object are not "

View File

@ -96,7 +96,7 @@ msgstr ""
#: c-api/apiabiversion.rst:47
msgid "1"
msgstr ""
msgstr "1"
#: c-api/apiabiversion.rst:47
#, fuzzy
@ -113,7 +113,7 @@ msgstr ""
#: c-api/apiabiversion.rst:49
msgid "2"
msgstr ""
msgstr "2"
#: c-api/apiabiversion.rst:49
#, fuzzy
@ -130,7 +130,7 @@ msgstr ""
#: c-api/apiabiversion.rst:51
msgid "3"
msgstr ""
msgstr "3"
#: c-api/apiabiversion.rst:51
#, fuzzy
@ -147,7 +147,7 @@ msgstr ""
#: c-api/apiabiversion.rst:53
msgid "4"
msgstr ""
msgstr "4"
#: c-api/apiabiversion.rst:53
#, fuzzy

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 11:44+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -324,7 +324,7 @@ msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]"
msgid ""
"Requires that the Python object is a :class:`bytes` object, without "
"attempting any conversion. Raises :exc:`TypeError` if the object is not a "
"bytes object. The C variable may also be declared as :c:type:`PyObject*`."
"bytes object. The C variable may also be declared as :c:expr:`PyObject*`."
msgstr ""
"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté "
"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de "
@ -340,7 +340,7 @@ msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]"
msgid ""
"Requires that the Python object is a :class:`bytearray` object, without "
"attempting any conversion. Raises :exc:`TypeError` if the object is not a :"
"class:`bytearray` object. The C variable may also be declared as :c:type:"
"class:`bytearray` object. The C variable may also be declared as :c:expr:"
"`PyObject*`."
msgstr ""
"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté "
@ -426,7 +426,7 @@ msgstr "``U`` (:class:`str`) [``PyObject *``]"
msgid ""
"Requires that the Python object is a Unicode object, without attempting any "
"conversion. Raises :exc:`TypeError` if the object is not a Unicode object. "
"The C variable may also be declared as :c:type:`PyObject*`."
"The C variable may also be declared as :c:expr:`PyObject*`."
msgstr ""
"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté "
"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de "
@ -458,10 +458,10 @@ msgstr ""
#: c-api/arg.rst:196
msgid ""
"This format requires two arguments. The first is only used as input, and "
"must be a :c:type:`const char*` which points to the name of an encoding as a "
"must be a :c:expr:`const char*` which points to the name of an encoding as a "
"NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is "
"used. An exception is raised if the named encoding is not known to Python. "
"The second argument must be a :c:type:`char**`; the value of the pointer it "
"The second argument must be a :c:expr:`char**`; the value of the pointer it "
"references will be set to a buffer with the contents of the argument text. "
"The text will be encoded in the encoding specified by the first argument."
msgstr ""
@ -506,10 +506,10 @@ msgstr ""
#: c-api/arg.rst:219
msgid ""
"It requires three arguments. The first is only used as input, and must be "
"a :c:type:`const char*` which points to the name of an encoding as a NUL-"
"a :c:expr:`const char*` which points to the name of an encoding as a NUL-"
"terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. "
"An exception is raised if the named encoding is not known to Python. The "
"second argument must be a :c:type:`char**`; the value of the pointer it "
"second argument must be a :c:expr:`char**`; the value of the pointer it "
"references will be set to a buffer with the contents of the argument text. "
"The text will be encoded in the encoding specified by the first argument. "
"The third argument must be a pointer to an integer; the referenced integer "
@ -523,8 +523,8 @@ msgstr "Il existe deux modes de fonctionnement :"
#: c-api/arg.rst:231
msgid ""
"If *\\*buffer* points a ``NULL`` pointer, the function will allocate a "
"buffer of the needed size, copy the encoded data into this buffer and set *"
"\\*buffer* to reference the newly allocated storage. The caller is "
"buffer of the needed size, copy the encoded data into this buffer and set "
"*\\*buffer* to reference the newly allocated storage. The caller is "
"responsible for calling :c:func:`PyMem_Free` to free the allocated buffer "
"after usage."
msgstr ""
@ -571,9 +571,10 @@ msgid "``b`` (:class:`int`) [unsigned char]"
msgstr "``b`` (:class:`int`) [``unsigned char``]"
#: c-api/arg.rst:254
#, fuzzy
msgid ""
"Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :"
"c:type:`unsigned char`."
"c:expr:`unsigned char`."
msgstr ""
"Convertit un entier Python positif ou nul en un ``unsigned tiny int``, "
"stocké dans un :c:type:`unsigned char` C."
@ -583,9 +584,10 @@ msgid "``B`` (:class:`int`) [unsigned char]"
msgstr "``B`` (:class:`int`) [``unsigned char``]"
#: c-api/arg.rst:258
#, fuzzy
msgid ""
"Convert a Python integer to a tiny int without overflow checking, stored in "
"a C :c:type:`unsigned char`."
"a C :c:expr:`unsigned char`."
msgstr ""
"Convertit un entier Python en un ``tiny int`` sans vérifier le débordement, "
"stocké dans un :c:type:`unsigned char` C."
@ -595,7 +597,8 @@ msgid "``h`` (:class:`int`) [short int]"
msgstr "``h`` (:class:`int`) [``short int``]"
#: c-api/arg.rst:262
msgid "Convert a Python integer to a C :c:type:`short int`."
#, fuzzy
msgid "Convert a Python integer to a C :c:expr:`short int`."
msgstr "Convertit un entier Python en un :c:type:`short int` C."
#: c-api/arg.rst:602
@ -603,8 +606,9 @@ msgid "``H`` (:class:`int`) [unsigned short int]"
msgstr "``H`` (:class:`int`) [``unsigned short int``]"
#: c-api/arg.rst:265
#, fuzzy
msgid ""
"Convert a Python integer to a C :c:type:`unsigned short int`, without "
"Convert a Python integer to a C :c:expr:`unsigned short int`, without "
"overflow checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned short int` C, sans "
@ -615,7 +619,8 @@ msgid "``i`` (:class:`int`) [int]"
msgstr "``i`` (:class:`int`) [``int``]"
#: c-api/arg.rst:269
msgid "Convert a Python integer to a plain C :c:type:`int`."
#, fuzzy
msgid "Convert a Python integer to a plain C :c:expr:`int`."
msgstr "Convertit un entier Python en un :c:type:`int` C."
#: c-api/arg.rst:605
@ -623,8 +628,9 @@ msgid "``I`` (:class:`int`) [unsigned int]"
msgstr "``I`` (:class:`int`) [``unsigned int``]"
#: c-api/arg.rst:272
#, fuzzy
msgid ""
"Convert a Python integer to a C :c:type:`unsigned int`, without overflow "
"Convert a Python integer to a C :c:expr:`unsigned int`, without overflow "
"checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned int` C, sans contrôle de "
@ -635,7 +641,8 @@ msgid "``l`` (:class:`int`) [long int]"
msgstr "``l`` (:class:`int`) [``long int``]"
#: c-api/arg.rst:276
msgid "Convert a Python integer to a C :c:type:`long int`."
#, fuzzy
msgid "Convert a Python integer to a C :c:expr:`long int`."
msgstr "Convertit un entier Python en un :c:type:`long int`."
#: c-api/arg.rst:608
@ -643,8 +650,9 @@ msgid "``k`` (:class:`int`) [unsigned long]"
msgstr "``k`` (:class:`int`) [``unsigned long``]"
#: c-api/arg.rst:279
#, fuzzy
msgid ""
"Convert a Python integer to a C :c:type:`unsigned long` without overflow "
"Convert a Python integer to a C :c:expr:`unsigned long` without overflow "
"checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier "
@ -656,7 +664,7 @@ msgstr "``L`` (:class:`int`) [``long long``]"
#: c-api/arg.rst:283
#, fuzzy
msgid "Convert a Python integer to a C :c:type:`long long`."
msgid "Convert a Python integer to a C :c:expr:`long long`."
msgstr "Convertit un entier Python en un :c:type:`long int`."
#: c-api/arg.rst:614
@ -666,14 +674,15 @@ msgstr "``K`` (:class:`int`) [``unsigned long long``]"
#: c-api/arg.rst:286
#, fuzzy
msgid ""
"Convert a Python integer to a C :c:type:`unsigned long long` without "
"Convert a Python integer to a C :c:expr:`unsigned long long` without "
"overflow checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier "
"le débordement."
#: c-api/arg.rst:617
msgid "``n`` (:class:`int`) [Py_ssize_t]"
#, fuzzy
msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]"
msgstr "``n`` (:class:`int`) [``Py_ssize_t``]"
#: c-api/arg.rst:290
@ -685,9 +694,10 @@ msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]"
msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]"
#: c-api/arg.rst:293
#, fuzzy
msgid ""
"Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` "
"object of length 1, to a C :c:type:`char`."
"object of length 1, to a C :c:expr:`char`."
msgstr ""
"Convertit un *byte* Python, représenté comme un objet :class:`bytes` ou :"
"class:`bytearray` de longueur 1, en un :c:type:`char` C."
@ -701,9 +711,10 @@ msgid "``C`` (:class:`str` of length 1) [int]"
msgstr "``C`` (:class:`str` de longueur 1) [``int``]"
#: c-api/arg.rst:300
#, fuzzy
msgid ""
"Convert a Python character, represented as a :class:`str` object of length "
"1, to a C :c:type:`int`."
"1, to a C :c:expr:`int`."
msgstr ""
"Convertit un caractère Python, représenté comme un objet :class:`str` de "
"longueur 1, en un :c:type:`int` C."
@ -713,7 +724,8 @@ msgid "``f`` (:class:`float`) [float]"
msgstr "``f`` (:class:`float`) [``float``]"
#: c-api/arg.rst:304
msgid "Convert a Python floating point number to a C :c:type:`float`."
#, fuzzy
msgid "Convert a Python floating point number to a C :c:expr:`float`."
msgstr "Convertit un nombre flottant Python vers un :c:type:`float`."
#: c-api/arg.rst:628
@ -721,7 +733,8 @@ msgid "``d`` (:class:`float`) [double]"
msgstr "``d`` (:class:`float`) [``double``]"
#: c-api/arg.rst:307
msgid "Convert a Python floating point number to a C :c:type:`double`."
#, fuzzy
msgid "Convert a Python floating point number to a C :c:expr:`double`."
msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C."
#: c-api/arg.rst:310
@ -762,7 +775,7 @@ msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]"
msgid ""
"Store a Python object in a C object pointer. This is similar to ``O``, but "
"takes two C arguments: the first is the address of a Python type object, the "
"second is the address of the C variable (of type :c:type:`PyObject*`) into "
"second is the address of the C variable (of type :c:expr:`PyObject*`) into "
"which the object pointer is stored. If the Python object does not have the "
"required type, :exc:`TypeError` is raised."
msgstr ""
@ -775,18 +788,18 @@ msgstr "``O&`` (objet) [*converter*, *anything*]"
msgid ""
"Convert a Python object to a C variable through a *converter* function. "
"This takes two arguments: the first is a function, the second is the address "
"of a C variable (of arbitrary type), converted to :c:type:`void *`. The "
"of a C variable (of arbitrary type), converted to :c:expr:`void *`. The "
"*converter* function in turn is called as follows::"
msgstr ""
#: c-api/arg.rst:337
msgid ""
"where *object* is the Python object to be converted and *address* is the :c:"
"type:`void*` argument that was passed to the :c:func:`PyArg_Parse\\*` "
"function. The returned *status* should be ``1`` for a successful conversion "
"and ``0`` if the conversion has failed. When the conversion fails, the "
"*converter* function should raise an exception and leave the content of "
"*address* unmodified."
"expr:`void*` argument that was passed to the ``PyArg_Parse*`` function. The "
"returned *status* should be ``1`` for a successful conversion and ``0`` if "
"the conversion has failed. When the conversion fails, the *converter* "
"function should raise an exception and leave the content of *address* "
"unmodified."
msgstr ""
#: c-api/arg.rst:343
@ -926,12 +939,11 @@ msgstr ""
#: c-api/arg.rst:410
msgid ""
"For the conversion to succeed, the *arg* object must match the format and "
"the format must be exhausted. On success, the :c:func:`PyArg_Parse\\*` "
"functions return true, otherwise they return false and raise an appropriate "
"exception. When the :c:func:`PyArg_Parse\\*` functions fail due to "
"conversion failure in one of the format units, the variables at the "
"addresses corresponding to that and the following format units are left "
"untouched."
"the format must be exhausted. On success, the ``PyArg_Parse*`` functions "
"return true, otherwise they return false and raise an appropriate exception. "
"When the ``PyArg_Parse*`` functions fail due to conversion failure in one of "
"the format units, the variables at the addresses corresponding to that and "
"the following format units are left untouched."
msgstr ""
#: c-api/arg.rst:419
@ -999,7 +1011,7 @@ msgid ""
"should be passed as *args*; it must actually be a tuple. The length of the "
"tuple must be at least *min* and no more than *max*; *min* and *max* may be "
"equal. Additional arguments must be passed to the function, each of which "
"should be a pointer to a :c:type:`PyObject*` variable; these will be filled "
"should be a pointer to a :c:expr:`PyObject*` variable; these will be filled "
"in with the values from *args*; they will contain :term:`borrowed references "
"<borrowed reference>`. The variables which correspond to optional parameters "
"not given by *args* will not be filled in; these should be initialized by "
@ -1026,10 +1038,10 @@ msgstr "Construction des valeurs"
#: c-api/arg.rst:520
msgid ""
"Create a new value based on a format string similar to those accepted by "
"the :c:func:`PyArg_Parse\\*` family of functions and a sequence of values. "
"Returns the value or ``NULL`` in the case of an error; an exception will be "
"raised if ``NULL`` is returned."
"Create a new value based on a format string similar to those accepted by the "
"``PyArg_Parse*`` family of functions and a sequence of values. Returns the "
"value or ``NULL`` in the case of an error; an exception will be raised if "
"``NULL`` is returned."
msgstr ""
#: c-api/arg.rst:525
@ -1131,7 +1143,7 @@ msgstr "``u`` (:class:`str`) [``const wchar_t *``]"
#: c-api/arg.rst:571
msgid ""
"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or "
"Convert a null-terminated :c:expr:`wchar_t` buffer of Unicode (UTF-16 or "
"UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is "
"``NULL``, ``None`` is returned."
msgstr ""
@ -1160,7 +1172,7 @@ msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]"
#: c-api/arg.rst:587
#, fuzzy
msgid "Convert a plain C :c:type:`int` to a Python integer object."
msgid "Convert a plain C :c:expr:`int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:590
@ -1168,42 +1180,49 @@ msgid "``b`` (:class:`int`) [char]"
msgstr "``b`` (:class:`int`) [``char``]"
#: c-api/arg.rst:590
msgid "Convert a plain C :c:type:`char` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a plain C :c:expr:`char` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:593
msgid "Convert a plain C :c:type:`short int` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a plain C :c:expr:`short int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:596
msgid "Convert a C :c:type:`long int` to a Python integer object."
#, fuzzy
msgid "Convert a C :c:expr:`long int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:599
msgid "Convert a C :c:type:`unsigned char` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`unsigned char` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:602
msgid "Convert a C :c:type:`unsigned short int` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:605
#, fuzzy
msgid "Convert a C :c:type:`unsigned int` to a Python integer object."
msgid "Convert a C :c:expr:`unsigned int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:608
msgid "Convert a C :c:type:`unsigned long` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`unsigned long` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:611
#, fuzzy
msgid "Convert a C :c:type:`long long` to a Python integer object."
msgid "Convert a C :c:expr:`long long` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:614
msgid "Convert a C :c:type:`unsigned long long` to a Python integer object."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:617
msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer."
@ -1214,24 +1233,32 @@ msgid "``c`` (:class:`bytes` of length 1) [char]"
msgstr "``c`` (:class:`bytes` de taille 1) [``char``]"
#: c-api/arg.rst:620
#, fuzzy
msgid ""
"Convert a C :c:type:`int` representing a byte to a Python :class:`bytes` "
"Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` "
"object of length 1."
msgstr ""
"Convertit un caractère Python, représenté comme un objet :class:`str` de "
"longueur 1, en un :c:type:`int` C."
#: c-api/arg.rst:624
#, fuzzy
msgid ""
"Convert a C :c:type:`int` representing a character to Python :class:`str` "
"Convert a C :c:expr:`int` representing a character to Python :class:`str` "
"object of length 1."
msgstr ""
"Convertit un caractère Python, représenté comme un objet :class:`str` de "
"longueur 1, en un :c:type:`int` C."
#: c-api/arg.rst:628
msgid "Convert a C :c:type:`double` to a Python floating point number."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`double` to a Python floating point number."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:631
msgid "Convert a C :c:type:`float` to a Python floating point number."
msgstr ""
#, fuzzy
msgid "Convert a C :c:expr:`float` to a Python floating point number."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
#: c-api/arg.rst:634
msgid "``D`` (:class:`complex`) [Py_complex \\*]"
@ -1273,7 +1300,7 @@ msgstr ""
#: c-api/arg.rst:653
msgid ""
"Convert *anything* to a Python object through a *converter* function. The "
"function is called with *anything* (which should be compatible with :c:type:"
"function is called with *anything* (which should be compatible with :c:expr:"
"`void*`) as its argument and should return a \"new\" Python object, or "
"``NULL`` if an error occurred."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-10-27 21:13+0200\n"
"Last-Translator: David GIRAUD <davidgiraud@protonmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-05-05 14:32+0200\n"
"Last-Translator: Mindiell <mindiell@mindiell.net>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -65,7 +65,7 @@ msgstr ""
"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui "
"implémente le :ref:`protocole buffer <bufferobjects>`."
#: c-api/bytearray.rst:50
#: c-api/bytearray.rst:48
msgid ""
"Create a new bytearray object from *string* and its length, *len*. On "
"failure, ``NULL`` is returned."
@ -73,20 +73,20 @@ msgstr ""
"Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa "
"longueur, *len*. En cas d'échec, ``NULL`` est renvoyé."
#: c-api/bytearray.rst:56
#: c-api/bytearray.rst:54
msgid ""
"Concat bytearrays *a* and *b* and return a new bytearray with the result."
msgstr ""
"Concatène les ``bytearrays`` *a* et *b* et renvoie un nouveau ``bytearray`` "
"avec le résultat."
#: c-api/bytearray.rst:61
#: c-api/bytearray.rst:59
msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer."
msgstr ""
"Renvoie la taille de *bytearray* après vérification de la présence d'un "
"pointeur ``NULL``."
#: c-api/bytearray.rst:66
#: c-api/bytearray.rst:64
msgid ""
"Return the contents of *bytearray* as a char array after checking for a "
"``NULL`` pointer. The returned array always has an extra null byte appended."
@ -95,24 +95,24 @@ msgstr ""
"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a "
"toujours un caractère *null* rajouté."
#: c-api/bytearray.rst:73
#: c-api/bytearray.rst:71
msgid "Resize the internal buffer of *bytearray* to *len*."
msgstr "Redimensionne le tampon interne de *bytearray* à la taille *len*."
#: c-api/bytearray.rst:76
#: c-api/bytearray.rst:74
msgid "Macros"
msgstr "Macros"
#: c-api/bytearray.rst:78
#: c-api/bytearray.rst:76
msgid "These macros trade safety for speed and they don't check pointers."
msgstr ""
"Ces macros sont taillées pour la vitesse d'exécution et ne vérifient pas les "
"pointeurs."
#: c-api/bytearray.rst:82
#: c-api/bytearray.rst:80
msgid "Macro version of :c:func:`PyByteArray_AsString`."
msgstr "Version macro de :c:func:`PyByteArray_AsString`."
#: c-api/bytearray.rst:87
#: c-api/bytearray.rst:85
msgid "Macro version of :c:func:`PyByteArray_Size`."
msgstr "Version macro de :c:func:`PyByteArray_Size`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2018-07-03 11:50+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -21,7 +21,7 @@ msgstr "Objets *bytes*"
#: c-api/bytes.rst:8
msgid ""
"These functions raise :exc:`TypeError` when expecting a bytes parameter and "
"are called with a non-bytes parameter."
"called with a non-bytes parameter."
msgstr ""
#: c-api/bytes.rst:16
@ -96,7 +96,7 @@ msgstr "Commentaires"
#: c-api/bytes.rst:70
msgid ":attr:`%%`"
msgstr ""
msgstr ":attr:`%%`"
#: c-api/bytes.rst:70
msgid "*n/a*"
@ -108,7 +108,7 @@ msgstr ""
#: c-api/bytes.rst:72
msgid ":attr:`%c`"
msgstr ""
msgstr ":attr:`%c`"
#: c-api/bytes.rst:75 c-api/bytes.rst:96
msgid "int"
@ -120,7 +120,7 @@ msgstr ""
#: c-api/bytes.rst:75
msgid ":attr:`%d`"
msgstr ""
msgstr ":attr:`%d`"
#: c-api/bytes.rst:75
msgid "Equivalent to ``printf(\"%d\")``. [1]_"
@ -128,7 +128,7 @@ msgstr ""
#: c-api/bytes.rst:78
msgid ":attr:`%u`"
msgstr ""
msgstr ":attr:`%u`"
#: c-api/bytes.rst:78
msgid "unsigned int"
@ -140,7 +140,7 @@ msgstr ""
#: c-api/bytes.rst:81
msgid ":attr:`%ld`"
msgstr ""
msgstr ":attr:`%ld`"
#: c-api/bytes.rst:81
msgid "long"
@ -152,7 +152,7 @@ msgstr ""
#: c-api/bytes.rst:84
msgid ":attr:`%lu`"
msgstr ""
msgstr ":attr:`%lu`"
#: c-api/bytes.rst:84
msgid "unsigned long"
@ -164,10 +164,10 @@ msgstr ""
#: c-api/bytes.rst:87
msgid ":attr:`%zd`"
msgstr ""
msgstr ":attr:`%zd`"
#: c-api/bytes.rst:87
msgid "Py_ssize_t"
msgid ":c:type:`\\ Py_ssize_t`"
msgstr ""
#: c-api/bytes.rst:87
@ -176,7 +176,7 @@ msgstr ""
#: c-api/bytes.rst:90
msgid ":attr:`%zu`"
msgstr ""
msgstr ":attr:`%zu`"
#: c-api/bytes.rst:90
msgid "size_t"
@ -188,7 +188,7 @@ msgstr ""
#: c-api/bytes.rst:93
msgid ":attr:`%i`"
msgstr ""
msgstr ":attr:`%i`"
#: c-api/bytes.rst:93
msgid "Equivalent to ``printf(\"%i\")``. [1]_"
@ -196,7 +196,7 @@ msgstr ""
#: c-api/bytes.rst:96
msgid ":attr:`%x`"
msgstr ""
msgstr ":attr:`%x`"
#: c-api/bytes.rst:96
msgid "Equivalent to ``printf(\"%x\")``. [1]_"
@ -204,7 +204,7 @@ msgstr ""
#: c-api/bytes.rst:99
msgid ":attr:`%s`"
msgstr ""
msgstr ":attr:`%s`"
#: c-api/bytes.rst:99
msgid "const char\\*"
@ -216,7 +216,7 @@ msgstr ""
#: c-api/bytes.rst:102
msgid ":attr:`%p`"
msgstr ""
msgstr ":attr:`%p`"
#: c-api/bytes.rst:102
msgid "const void\\*"
@ -224,9 +224,9 @@ msgstr ""
#: c-api/bytes.rst:102
msgid ""
"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p"
"\")`` except that it is guaranteed to start with the literal ``0x`` "
"regardless of what the platform's ``printf`` yields."
"The hex representation of a C pointer. Mostly equivalent to "
"``printf(\"%p\")`` except that it is guaranteed to start with the literal "
"``0x`` regardless of what the platform's ``printf`` yields."
msgstr ""
#: c-api/bytes.rst:111
@ -330,7 +330,7 @@ msgid ""
"address of an existing bytes object as an lvalue (it may be written into), "
"and the new size desired. On success, *\\*bytes* holds the resized bytes "
"object and ``0`` is returned; the address in *\\*bytes* may differ from its "
"input value. If the reallocation fails, the original bytes object at *"
"\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` "
"input value. If the reallocation fails, the original bytes object at "
"*\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` "
"is set, and ``-1`` is returned."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2020-07-20 15:07+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -49,8 +49,8 @@ msgstr ""
#: c-api/call.rst:29
msgid ""
"To call an object, use :c:func:`PyObject_Call` or other :ref:`call API <capi-"
"call>`."
"To call an object, use :c:func:`PyObject_Call` or another :ref:`call API "
"<capi-call>`."
msgstr ""
#: c-api/call.rst:36
@ -209,12 +209,7 @@ msgid ""
"future extensions."
msgstr ""
#: c-api/call.rst:161 c-api/call.rst:259 c-api/call.rst:360 c-api/call.rst:391
#: c-api/call.rst:413
msgid "This function is not part of the :ref:`limited API <stable>`."
msgstr ""
#: c-api/call.rst:153
#: c-api/call.rst:151
msgid ""
"If *op* does not support the vectorcall protocol (either because the type "
"does not or because the specific instance does not), return *NULL*. "
@ -222,19 +217,19 @@ msgid ""
"function never raises an exception."
msgstr ""
#: c-api/call.rst:158
#: c-api/call.rst:156
msgid ""
"This is mostly useful to check whether or not *op* supports vectorcall, "
"which can be done by checking ``PyVectorcall_Function(op) != NULL``."
msgstr ""
#: c-api/call.rst:167
#: c-api/call.rst:163
msgid ""
"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword "
"arguments given in a tuple and dict, respectively."
msgstr ""
#: c-api/call.rst:170
#: c-api/call.rst:166
msgid ""
"This is a specialized function, intended to be put in the :c:member:"
"`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. "
@ -242,11 +237,11 @@ msgid ""
"not fall back to ``tp_call``."
msgstr ""
#: c-api/call.rst:183
#: c-api/call.rst:177
msgid "Object Calling API"
msgstr ""
#: c-api/call.rst:185
#: c-api/call.rst:179
msgid ""
"Various functions are available for calling a Python object. Each converts "
"its arguments to a convention supported by the called object either "
@ -254,130 +249,130 @@ msgid ""
"pick one that best fits the format of data you have available."
msgstr ""
#: c-api/call.rst:191
#: c-api/call.rst:185
msgid ""
"The following table summarizes the available functions; please see "
"individual documentation for details."
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "Function"
msgstr "Fonction"
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "callable"
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "args"
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "kwargs"
msgstr ""
#: c-api/call.rst:197
#: c-api/call.rst:191
msgid ":c:func:`PyObject_Call`"
msgstr ""
#: c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:209 c-api/call.rst:219
#: c-api/call.rst:193 c-api/call.rst:197 c-api/call.rst:203 c-api/call.rst:213
msgid "``PyObject *``"
msgstr ""
#: c-api/call.rst:197
#: c-api/call.rst:191
msgid "tuple"
msgstr ""
#: c-api/call.rst:219
#: c-api/call.rst:213
msgid "dict/``NULL``"
msgstr ""
#: c-api/call.rst:199
#: c-api/call.rst:193
msgid ":c:func:`PyObject_CallNoArgs`"
msgstr ""
#: c-api/call.rst:201 c-api/call.rst:205 c-api/call.rst:209 c-api/call.rst:213
#: c-api/call.rst:215
#: c-api/call.rst:195 c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:207
#: c-api/call.rst:209
msgid "---"
msgstr ""
#: c-api/call.rst:201
#: c-api/call.rst:195
msgid ":c:func:`PyObject_CallOneArg`"
msgstr ""
#: c-api/call.rst:215
#: c-api/call.rst:209
msgid "1 object"
msgstr ""
#: c-api/call.rst:203
#: c-api/call.rst:197
msgid ":c:func:`PyObject_CallObject`"
msgstr ""
#: c-api/call.rst:203
#: c-api/call.rst:197
msgid "tuple/``NULL``"
msgstr ""
#: c-api/call.rst:205
#: c-api/call.rst:199
msgid ":c:func:`PyObject_CallFunction`"
msgstr ""
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid "format"
msgstr "format"
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid ":c:func:`PyObject_CallMethod`"
msgstr ""
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid "obj + ``char*``"
msgstr ""
#: c-api/call.rst:209
#: c-api/call.rst:203
msgid ":c:func:`PyObject_CallFunctionObjArgs`"
msgstr ""
#: c-api/call.rst:211
#: c-api/call.rst:205
msgid "variadic"
msgstr ""
#: c-api/call.rst:211
#: c-api/call.rst:205
msgid ":c:func:`PyObject_CallMethodObjArgs`"
msgstr ""
#: c-api/call.rst:213 c-api/call.rst:215
#: c-api/call.rst:207 c-api/call.rst:209
msgid "obj + name"
msgstr ""
#: c-api/call.rst:213
#: c-api/call.rst:207
msgid ":c:func:`PyObject_CallMethodNoArgs`"
msgstr ""
#: c-api/call.rst:215
#: c-api/call.rst:209
msgid ":c:func:`PyObject_CallMethodOneArg`"
msgstr ""
#: c-api/call.rst:217
#: c-api/call.rst:211
msgid ":c:func:`PyObject_Vectorcall`"
msgstr ""
#: c-api/call.rst:219 c-api/call.rst:221
#: c-api/call.rst:213 c-api/call.rst:215
msgid "vectorcall"
msgstr ""
#: c-api/call.rst:219
#: c-api/call.rst:213
msgid ":c:func:`PyObject_VectorcallDict`"
msgstr ""
#: c-api/call.rst:221
#: c-api/call.rst:215
msgid ":c:func:`PyObject_VectorcallMethod`"
msgstr ""
#: c-api/call.rst:221
#: c-api/call.rst:215
msgid "arg + name"
msgstr ""
#: c-api/call.rst:227
#: c-api/call.rst:221
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*, and named arguments given by the dictionary *kwargs*."
@ -386,49 +381,49 @@ msgstr ""
"le *n*-uplet *args*, et des arguments nommés donnés par le dictionnaire "
"*kwargs*."
#: c-api/call.rst:230
#: c-api/call.rst:224
msgid ""
"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If "
"no named arguments are needed, *kwargs* can be *NULL*."
msgstr ""
#: c-api/call.rst:245 c-api/call.rst:269 c-api/call.rst:301 c-api/call.rst:334
#: c-api/call.rst:357 c-api/call.rst:410
#: c-api/call.rst:239 c-api/call.rst:261 c-api/call.rst:293 c-api/call.rst:326
#: c-api/call.rst:347 c-api/call.rst:394
msgid ""
"Return the result of the call on success, or raise an exception and return "
"*NULL* on failure."
msgstr ""
#: c-api/call.rst:236
#: c-api/call.rst:230
msgid ""
"This is the equivalent of the Python expression: ``callable(*args, "
"**kwargs)``."
msgstr ""
"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``."
#: c-api/call.rst:242
#: c-api/call.rst:236
msgid ""
"Call a callable Python object *callable* without any arguments. It is the "
"most efficient way to call a callable Python object without any argument."
msgstr ""
#: c-api/call.rst:253
#: c-api/call.rst:247
msgid ""
"Call a callable Python object *callable* with exactly 1 positional argument "
"*arg* and no keyword arguments."
msgstr ""
#: c-api/call.rst:266
#: c-api/call.rst:258
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*. If no arguments are needed, then *args* can be *NULL*."
msgstr ""
#: c-api/call.rst:284
#: c-api/call.rst:276
msgid "This is the equivalent of the Python expression: ``callable(*args)``."
msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
#: c-api/call.rst:277
#: c-api/call.rst:269
msgid ""
"Call a callable Python object *callable*, with a variable number of C "
"arguments. The C arguments are described using a :c:func:`Py_BuildValue` "
@ -436,92 +431,92 @@ msgid ""
"are provided."
msgstr ""
#: c-api/call.rst:286
#: c-api/call.rst:278
msgid ""
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:289
#: c-api/call.rst:281
msgid "The type of *format* was changed from ``char *``."
msgstr ""
#: c-api/call.rst:295
#: c-api/call.rst:287
msgid ""
"Call the method named *name* of object *obj* with a variable number of C "
"arguments. The C arguments are described by a :c:func:`Py_BuildValue` "
"format string that should produce a tuple."
msgstr ""
#: c-api/call.rst:299
#: c-api/call.rst:291
msgid "The format can be *NULL*, indicating that no arguments are provided."
msgstr ""
#: c-api/call.rst:304
#: c-api/call.rst:296
msgid ""
"This is the equivalent of the Python expression: ``obj.name(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:307
#: c-api/call.rst:299
msgid ""
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:310
#: c-api/call.rst:302
msgid "The types of *name* and *format* were changed from ``char *``."
msgstr ""
#: c-api/call.rst:316
#: c-api/call.rst:308
msgid ""
"Call a callable Python object *callable*, with a variable number of :c:type:"
"Call a callable Python object *callable*, with a variable number of :c:expr:"
"`PyObject *` arguments. The arguments are provided as a variable number of "
"parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:323
#: c-api/call.rst:315
msgid ""
"This is the equivalent of the Python expression: ``callable(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:329
#: c-api/call.rst:321
msgid ""
"Call a method of the Python object *obj*, where the name of the method is "
"given as a Python string object in *name*. It is called with a variable "
"number of :c:type:`PyObject *` arguments. The arguments are provided as a "
"number of :c:expr:`PyObject *` arguments. The arguments are provided as a "
"variable number of parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:340
#: c-api/call.rst:332
msgid ""
"Call a method of the Python object *obj* without arguments, where the name "
"of the method is given as a Python string object in *name*."
msgstr ""
#: c-api/call.rst:353
#: c-api/call.rst:343
msgid ""
"Call a method of the Python object *obj* with a single positional argument "
"*arg*, where the name of the method is given as a Python string object in "
"*name*."
msgstr ""
#: c-api/call.rst:367
#: c-api/call.rst:355
msgid ""
"Call a callable Python object *callable*. The arguments are the same as for :"
"c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly "
"calls the vectorcall function stored in *callable*."
msgstr ""
#: c-api/call.rst:381
#: c-api/call.rst:367
msgid ""
"Call *callable* with positional arguments passed exactly as in the "
"vectorcall_ protocol, but with keyword arguments passed as a dictionary "
"*kwdict*. The *args* array contains only the positional arguments."
msgstr ""
#: c-api/call.rst:385
#: c-api/call.rst:371
msgid ""
"Regardless of which protocol is used internally, a conversion of arguments "
"needs to be done. Therefore, this function should only be used if the caller "
@ -529,7 +524,7 @@ msgid ""
"tuple for the positional arguments."
msgstr ""
#: c-api/call.rst:397
#: c-api/call.rst:381
msgid ""
"Call a method using the vectorcall calling convention. The name of the "
"method is given as a Python string *name*. The object whose method is called "
@ -541,17 +536,17 @@ msgid ""
"`PyObject_Vectorcall`."
msgstr ""
#: c-api/call.rst:406
#: c-api/call.rst:390
msgid ""
"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"will call the unbound method object with the full *args* vector as arguments."
msgstr ""
#: c-api/call.rst:419
#: c-api/call.rst:401
msgid "Call Support API"
msgstr ""
#: c-api/call.rst:423
#: c-api/call.rst:405
msgid ""
"Determine if the object *o* is callable. Return ``1`` if the object is "
"callable and ``0`` otherwise. This function always succeeds."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -28,7 +28,7 @@ msgstr ""
#: c-api/capsule.rst:17
msgid ""
"This subtype of :c:type:`PyObject` represents an opaque value, useful for C "
"extension modules who need to pass an opaque value (as a :c:type:`void*` "
"extension modules who need to pass an opaque value (as a :c:expr:`void*` "
"pointer) through Python code to other C code. It is often used to make a C "
"function pointer defined in one module available to other modules, so the "
"regular import mechanism can be used to access C APIs defined in dynamically "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-06-22 09:58+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-01-14 20:31+0100\n"
"Last-Translator: ANTOINE FOURES <afoures@student.42.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -174,13 +174,15 @@ msgstr ""
"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*."
#: c-api/complex.rst:118
msgid "Return the real part of *op* as a C :c:type:`double`."
#, fuzzy
msgid "Return the real part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:"
"`double` en C."
#: c-api/complex.rst:123
msgid "Return the imaginary part of *op* as a C :c:type:`double`."
#, fuzzy
msgid "Return the imaginary part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:"
"type:`double` en C."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -51,58 +51,60 @@ msgid ""
"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. "
"They never write more than *size* bytes (including the trailing ``'\\0'``) "
"into str. Both functions require that ``str != NULL``, ``size > 0``, "
"``format != NULL`` and ``size < INT_MAX``."
"``format != NULL`` and ``size < INT_MAX``. Note that this means there is no "
"equivalent to the C99 ``n = snprintf(NULL, 0, ...)`` which would determine "
"the necessary buffer size."
msgstr ""
#: c-api/conversion.rst:33
#: c-api/conversion.rst:34
msgid ""
"The return value (*rv*) for these functions should be interpreted as follows:"
msgstr ""
#: c-api/conversion.rst:35
#: c-api/conversion.rst:36
msgid ""
"When ``0 <= rv < size``, the output conversion was successful and *rv* "
"characters were written to *str* (excluding the trailing ``'\\0'`` byte at "
"``str[rv]``)."
msgstr ""
#: c-api/conversion.rst:39
#: c-api/conversion.rst:40
msgid ""
"When ``rv >= size``, the output conversion was truncated and a buffer with "
"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is "
"``'\\0'`` in this case."
msgstr ""
#: c-api/conversion.rst:43
#: c-api/conversion.rst:44
msgid ""
"When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in "
"this case too, but the rest of *str* is undefined. The exact cause of the "
"error depends on the underlying platform."
msgstr ""
#: c-api/conversion.rst:48
#: c-api/conversion.rst:49
msgid ""
"The following functions provide locale-independent string to number "
"conversions."
msgstr ""
#: c-api/conversion.rst:52
#: c-api/conversion.rst:53
msgid ""
"Convert a string ``s`` to a :c:type:`double`, raising a Python exception on "
"Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on "
"failure. The set of accepted strings corresponds to the set of strings "
"accepted by Python's :func:`float` constructor, except that ``s`` must not "
"have leading or trailing whitespace. The conversion is independent of the "
"current locale."
msgstr ""
#: c-api/conversion.rst:58
#: c-api/conversion.rst:59
msgid ""
"If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:"
"`ValueError` and return ``-1.0`` if the string is not a valid representation "
"of a floating-point number."
msgstr ""
#: c-api/conversion.rst:62
#: c-api/conversion.rst:63
msgid ""
"If endptr is not ``NULL``, convert as much of the string as possible and set "
"``*endptr`` to point to the first unconverted character. If no initial "
@ -111,7 +113,7 @@ msgid ""
"ValueError, and return ``-1.0``."
msgstr ""
#: c-api/conversion.rst:69
#: c-api/conversion.rst:70
msgid ""
"If ``s`` represents a value that is too large to store in a float (for "
"example, ``\"1e500\"`` is such a string on many platforms) then if "
@ -122,50 +124,50 @@ msgid ""
"the first character after the converted value."
msgstr ""
#: c-api/conversion.rst:77
#: c-api/conversion.rst:78
msgid ""
"If any other error occurs during the conversion (for example an out-of-"
"memory error), set the appropriate Python exception and return ``-1.0``."
msgstr ""
#: c-api/conversion.rst:86
#: c-api/conversion.rst:87
msgid ""
"Convert a :c:type:`double` *val* to a string using supplied *format_code*, "
"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, "
"*precision*, and *flags*."
msgstr ""
#: c-api/conversion.rst:89
#: c-api/conversion.rst:90
msgid ""
"*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, "
"``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is "
"ignored. The ``'r'`` format code specifies the standard :func:`repr` format."
msgstr ""
#: c-api/conversion.rst:94
#: c-api/conversion.rst:95
msgid ""
"*flags* can be zero or more of the values ``Py_DTSF_SIGN``, "
"``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:"
msgstr ""
#: c-api/conversion.rst:97
#: c-api/conversion.rst:98
msgid ""
"``Py_DTSF_SIGN`` means to always precede the returned string with a sign "
"character, even if *val* is non-negative."
msgstr ""
#: c-api/conversion.rst:100
#: c-api/conversion.rst:101
msgid ""
"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look "
"like an integer."
msgstr ""
#: c-api/conversion.rst:103
#: c-api/conversion.rst:104
msgid ""
"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the "
"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details."
msgstr ""
#: c-api/conversion.rst:107
#: c-api/conversion.rst:108
msgid ""
"If *ptype* is non-``NULL``, then the value it points to will be set to one "
"of ``Py_DTST_FINITE``, ``Py_DTST_INFINITE``, or ``Py_DTST_NAN``, signifying "
@ -173,20 +175,20 @@ msgid ""
"respectively."
msgstr ""
#: c-api/conversion.rst:111
#: c-api/conversion.rst:112
msgid ""
"The return value is a pointer to *buffer* with the converted string or "
"``NULL`` if the conversion failed. The caller is responsible for freeing the "
"returned string by calling :c:func:`PyMem_Free`."
msgstr ""
#: c-api/conversion.rst:120
#: c-api/conversion.rst:121
msgid ""
"Case insensitive comparison of strings. The function works almost "
"identically to :c:func:`strcmp` except that it ignores the case."
msgstr ""
#: c-api/conversion.rst:126
#: c-api/conversion.rst:127
msgid ""
"Case insensitive comparison of strings. The function works almost "
"identically to :c:func:`strncmp` except that it ignores the case."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 11:57+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -207,7 +207,7 @@ msgstr ""
"normalisé pour que le nombre de microsecondes et de secondes tombe dans la "
"plage documentée pour les objets :class:`datetime.timedelta`."
#: c-api/datetime.rst:137
#: c-api/datetime.rst:138
msgid ""
"Return a :class:`datetime.timezone` object with an unnamed fixed offset "
"represented by the *offset* argument."
@ -215,7 +215,7 @@ msgstr ""
"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe "
"représenté par l'argument *offset*."
#: c-api/datetime.rst:144
#: c-api/datetime.rst:146
msgid ""
"Return a :class:`datetime.timezone` object with a fixed offset represented "
"by the *offset* argument and with tzname *name*."
@ -223,7 +223,7 @@ msgstr ""
"Renvoie un objet :class:`datetime.timezone` avec un décalage fixe représenté "
"par l'argument *offset* et avec le nom de fuseau horaire *name*."
#: c-api/datetime.rst:150
#: c-api/datetime.rst:152
#, fuzzy
msgid ""
"Macros to extract fields from date objects. The argument must be an "
@ -236,19 +236,19 @@ msgstr ""
"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est "
"pas vérifié :"
#: c-api/datetime.rst:157
#: c-api/datetime.rst:159
msgid "Return the year, as a positive int."
msgstr "Renvoie l'année, sous forme d'entier positif."
#: c-api/datetime.rst:162
#: c-api/datetime.rst:164
msgid "Return the month, as an int from 1 through 12."
msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12."
#: c-api/datetime.rst:167
#: c-api/datetime.rst:169
msgid "Return the day, as an int from 1 through 31."
msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31."
#: c-api/datetime.rst:170
#: c-api/datetime.rst:172
#, fuzzy
msgid ""
"Macros to extract fields from datetime objects. The argument must be an "
@ -259,27 +259,32 @@ msgstr ""
"une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-"
"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:205
#: c-api/datetime.rst:216
msgid "Return the hour, as an int from 0 through 23."
msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23."
#: c-api/datetime.rst:210
#: c-api/datetime.rst:221
msgid "Return the minute, as an int from 0 through 59."
msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59."
#: c-api/datetime.rst:215
#: c-api/datetime.rst:226
msgid "Return the second, as an int from 0 through 59."
msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59."
#: c-api/datetime.rst:220
#: c-api/datetime.rst:231
msgid "Return the microsecond, as an int from 0 through 999999."
msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999."
#: c-api/datetime.rst:224
#: c-api/datetime.rst:236
#, fuzzy
msgid "Return the fold, as an int from 0 through 1."
msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31."
#: c-api/datetime.rst:243
msgid "Return the tzinfo (which may be ``None``)."
msgstr ""
#: c-api/datetime.rst:199
#: c-api/datetime.rst:210
#, fuzzy
msgid ""
"Macros to extract fields from time objects. The argument must be an "
@ -290,7 +295,7 @@ msgstr ""
"instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. "
"L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:229
#: c-api/datetime.rst:248
#, fuzzy
msgid ""
"Macros to extract fields from time delta objects. The argument must be an "
@ -301,26 +306,26 @@ msgstr ""
"être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-"
"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:235
#: c-api/datetime.rst:254
msgid "Return the number of days, as an int from -999999999 to 999999999."
msgstr ""
"Renvoie le nombre de jours, sous forme d'entier allant de ``-999999999`` à "
"``999999999``."
#: c-api/datetime.rst:242
#: c-api/datetime.rst:261
msgid "Return the number of seconds, as an int from 0 through 86399."
msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399."
#: c-api/datetime.rst:249
#: c-api/datetime.rst:268
msgid "Return the number of microseconds, as an int from 0 through 999999."
msgstr ""
"Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999."
#: c-api/datetime.rst:254
#: c-api/datetime.rst:273
msgid "Macros for the convenience of modules implementing the DB API:"
msgstr "Macros de confort pour les modules implémentant l'API DB :"
#: c-api/datetime.rst:258
#: c-api/datetime.rst:277
msgid ""
"Create and return a new :class:`datetime.datetime` object given an argument "
"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`."
@ -328,7 +333,7 @@ msgstr ""
"Crée et renvoie un nouvel objet :class:`datetime.datetime` à partir d'un n-"
"uplet qui peut être passé à :meth:`datetime.datetime.fromtimestamp()`."
#: c-api/datetime.rst:264
#: c-api/datetime.rst:283
msgid ""
"Create and return a new :class:`datetime.date` object given an argument "
"tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-07-03 11:36+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -84,7 +84,7 @@ msgstr ""
#: c-api/dict.rst:75
msgid ""
"Insert *val* into the dictionary *p* using *key* as a key. *key* should be "
"a :c:type:`const char*`. The key object is created using "
"a :c:expr:`const char*`. The key object is created using "
"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on "
"failure. This function *does not* steal a reference to *val*."
msgstr ""
@ -132,7 +132,7 @@ msgstr ""
#: c-api/dict.rst:120
msgid ""
"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:"
"type:`const char*`, rather than a :c:type:`PyObject*`."
"expr:`const char*`, rather than a :c:expr:`PyObject*`."
msgstr ""
#: c-api/dict.rst:123
@ -180,7 +180,7 @@ msgid ""
"`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the "
"first call to this function to start the iteration; the function returns "
"true for each pair in the dictionary, and false once all pairs have been "
"reported. The parameters *pkey* and *pvalue* should either point to :c:type:"
"reported. The parameters *pkey* and *pvalue* should either point to :c:expr:"
"`PyObject*` variables that will be filled in with each key and value, "
"respectively, or may be ``NULL``. Any references returned through them are "
"borrowed. *ppos* should not be altered during iteration. Its value "

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-19 16:59+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:00+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -23,7 +23,7 @@ msgstr "Objets fichiers"
#, fuzzy
msgid ""
"These APIs are a minimal emulation of the Python 2 C API for built-in file "
"objects, which used to rely on the buffered I/O (:c:type:`FILE*`) support "
"objects, which used to rely on the buffered I/O (:c:expr:`FILE*`) support "
"from the C standard library. In Python 3, files and streams use the new :"
"mod:`io` module, which defines several layers over the low-level unbuffered "
"I/O of the operating system. The functions described below are convenience "
@ -76,8 +76,9 @@ msgid "Ignore *name* attribute."
msgstr "ignore l'attribut *name*"
#: c-api/file.rst:41
#, fuzzy
msgid ""
"Return the file descriptor associated with *p* as an :c:type:`int`. If the "
"Return the file descriptor associated with *p* as an :c:expr:`int`. If the "
"object is an integer, its value is returned. If not, the object's :meth:"
"`~io.IOBase.fileno` method is called if it exists; the method must return an "
"integer, which is returned as the file descriptor value. Sets an exception "
@ -120,7 +121,7 @@ msgstr ""
#: c-api/file.rst:68
msgid ""
"The handler is a function of type :c:type:`PyObject *(\\*)(PyObject *path, "
"The handler is a function of type :c:expr:`PyObject *(\\*)(PyObject *path, "
"void *userData)`, where *path* is guaranteed to be :c:type:`PyUnicodeObject`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-01-14 15:30+0100\n"
"Last-Translator: ANTOINE FOURES <afoures@student.42.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -72,7 +72,7 @@ msgstr ""
#: c-api/float.rst:47
#, fuzzy
msgid ""
"Return a C :c:type:`double` representation of the contents of *pyfloat*. If "
"Return a C :c:expr:`double` representation of the contents of *pyfloat*. If "
"*pyfloat* is not a Python floating point object but has a :meth:`__float__` "
"method, this method will first be called to convert *pyfloat* into a float. "
"If ``__float__()`` is not defined then it falls back to :meth:`__index__`. "
@ -91,8 +91,9 @@ msgid "Use :meth:`__index__` if available."
msgstr ""
#: c-api/float.rst:60
#, fuzzy
msgid ""
"Return a C :c:type:`double` representation of the contents of *pyfloat*, but "
"Return a C :c:expr:`double` representation of the contents of *pyfloat*, but "
"without error checking."
msgstr ""
"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:"
@ -109,16 +110,18 @@ msgstr ""
"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`."
#: c-api/float.rst:73
#, fuzzy
msgid ""
"Return the maximum representable finite float *DBL_MAX* as C :c:type:"
"Return the maximum representable finite float *DBL_MAX* as C :c:expr:"
"`double`."
msgstr ""
"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme "
"d'un :c:type:`double` en C."
#: c-api/float.rst:78
#, fuzzy
msgid ""
"Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`."
"Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`."
msgstr ""
"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la "
"forme :c:type:`double` en C."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-04 18:14+0100\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -21,11 +21,11 @@ msgstr ""
#: c-api/gcsupport.rst:8
msgid ""
"Python's support for detecting and collecting garbage which involves "
"circular references requires support from object types which are \"containers"
"\" for other objects which may also be containers. Types which do not store "
"references to other objects, or which only store references to atomic types "
"(such as numbers or strings), do not need to provide any explicit support "
"for garbage collection."
"circular references requires support from object types which are "
"\"containers\" for other objects which may also be containers. Types which "
"do not store references to other objects, or which only store references to "
"atomic types (such as numbers or strings), do not need to provide any "
"explicit support for garbage collection."
msgstr ""
#: c-api/gcsupport.rst:15

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -271,8 +271,9 @@ msgid ""
msgstr ""
#: c-api/import.rst:264
#, fuzzy
msgid ""
"This pointer is initialized to point to an array of :c:type:`struct _frozen` "
"This pointer is initialized to point to an array of :c:struct:`_frozen` "
"records, terminated by one whose members are all ``NULL`` or zero. When a "
"frozen module is imported, it is searched in this table. Third-party code "
"could play tricks with this to provide a dynamically created collection of "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-11-29 18:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -542,7 +542,7 @@ msgstr ""
#: c-api/init.rst:511 c-api/init.rst:644 c-api/init.rst:661
msgid ""
"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:"
"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:"
"`wchar_*` string."
msgstr ""
@ -684,10 +684,10 @@ msgstr ""
#: c-api/init.rst:531
msgid ""
"The first word (up to the first space character) is the current Python "
"version; the first three characters are the major and minor version "
"separated by a period. The returned string points into static storage; the "
"caller should not modify its value. The value is available to Python code "
"as :data:`sys.version`."
"version; the first characters are the major and minor version separated by a "
"period. The returned string points into static storage; the caller should "
"not modify its value. The value is available to Python code as :data:`sys."
"version`."
msgstr ""
#: c-api/init.rst:541
@ -930,11 +930,11 @@ msgstr ""
#: c-api/init.rst:803
msgid ""
"Note that the :c:func:`PyGILState_\\*` functions assume there is only one "
"global interpreter (created automatically by :c:func:`Py_Initialize`). "
"Python supports the creation of additional interpreters (using :c:func:"
"`Py_NewInterpreter`), but mixing multiple interpreters and the :c:func:"
"`PyGILState_\\*` API is unsupported."
"Note that the ``PyGILState_*`` functions assume there is only one global "
"interpreter (created automatically by :c:func:`Py_Initialize`). Python "
"supports the creation of additional interpreters (using :c:func:"
"`Py_NewInterpreter`), but mixing multiple interpreters and the "
"``PyGILState_*`` API is unsupported."
msgstr ""
#: c-api/init.rst:813
@ -1010,7 +1010,7 @@ msgstr ""
#: c-api/init.rst:869
msgid ""
"This data structure represents the state of a single thread. The only "
"public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which "
"public data member is :attr:`interp` (:c:expr:`PyInterpreterState *`), which "
"points to this thread's interpreter state."
msgstr ""
@ -1380,7 +1380,7 @@ msgstr ""
#: c-api/init.rst:1223
msgid ""
"The type of the *id* parameter changed from :c:type:`long` to :c:type:"
"The type of the *id* parameter changed from :c:expr:`long` to :c:expr:"
"`unsigned long`."
msgstr ""
@ -1574,10 +1574,10 @@ msgstr ""
#: c-api/init.rst:1411
msgid ""
"Also note that combining this functionality with :c:func:`PyGILState_\\*` "
"APIs is delicate, because these APIs assume a bijection between Python "
"thread states and OS-level threads, an assumption broken by the presence of "
"sub-interpreters. It is highly recommended that you don't switch sub-"
"Also note that combining this functionality with ``PyGILState_*`` APIs is "
"delicate, because these APIs assume a bijection between Python thread states "
"and OS-level threads, an assumption broken by the presence of sub-"
"interpreters. It is highly recommended that you don't switch sub-"
"interpreters between a pair of matching :c:func:`PyGILState_Ensure` and :c:"
"func:`PyGILState_Release` calls. Furthermore, extensions (such as :mod:"
"`ctypes`) using these APIs to allow calling of Python code from non-Python "
@ -1701,7 +1701,7 @@ msgstr ""
#: c-api/init.rst:1507
msgid ":const:`PyTrace_CALL`"
msgstr ""
msgstr ":const:`PyTrace_CALL`"
#: c-api/init.rst:1512 c-api/init.rst:1523
msgid "Always :c:data:`Py_None`."
@ -1709,7 +1709,7 @@ msgstr ""
#: c-api/init.rst:1509
msgid ":const:`PyTrace_EXCEPTION`"
msgstr ""
msgstr ":const:`PyTrace_EXCEPTION`"
#: c-api/init.rst:1509
msgid "Exception information as returned by :func:`sys.exc_info`."
@ -1717,11 +1717,11 @@ msgstr ""
#: c-api/init.rst:1512
msgid ":const:`PyTrace_LINE`"
msgstr ""
msgstr ":const:`PyTrace_LINE`"
#: c-api/init.rst:1514
msgid ":const:`PyTrace_RETURN`"
msgstr ""
msgstr ":const:`PyTrace_RETURN`"
#: c-api/init.rst:1514
msgid ""
@ -1730,7 +1730,7 @@ msgstr ""
#: c-api/init.rst:1517
msgid ":const:`PyTrace_C_CALL`"
msgstr ""
msgstr ":const:`PyTrace_C_CALL`"
#: c-api/init.rst:1519 c-api/init.rst:1521
msgid "Function object being called."
@ -1738,15 +1738,15 @@ msgstr ""
#: c-api/init.rst:1519
msgid ":const:`PyTrace_C_EXCEPTION`"
msgstr ""
msgstr ":const:`PyTrace_C_EXCEPTION`"
#: c-api/init.rst:1521
msgid ":const:`PyTrace_C_RETURN`"
msgstr ""
msgstr ":const:`PyTrace_C_RETURN`"
#: c-api/init.rst:1523
msgid ":const:`PyTrace_OPCODE`"
msgstr ""
msgstr ":const:`PyTrace_OPCODE`"
#: c-api/init.rst:1528
msgid ""
@ -1881,7 +1881,7 @@ msgid ""
"(TLS) which wraps the underlying native TLS implementation to support the "
"Python-level thread local storage API (:class:`threading.local`). The "
"CPython C level APIs are similar to those offered by pthreads and Windows: "
"use a thread key and functions to associate a :c:type:`void*` value per "
"use a thread key and functions to associate a :c:expr:`void*` value per "
"thread."
msgstr ""
@ -1900,8 +1900,8 @@ msgstr ""
#: c-api/init.rst:1669
msgid ""
"None of these API functions handle memory management on behalf of the :c:"
"type:`void*` values. You need to allocate and deallocate them yourself. If "
"the :c:type:`void*` values happen to be :c:type:`PyObject*`, these functions "
"expr:`void*` values. You need to allocate and deallocate them yourself. If "
"the :c:expr:`void*` values happen to be :c:expr:`PyObject*`, these functions "
"don't do refcount operations on them either."
msgstr ""
@ -1913,7 +1913,7 @@ msgstr ""
msgid ""
"TSS API is introduced to supersede the use of the existing TLS API within "
"the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` "
"instead of :c:type:`int` to represent thread keys."
"instead of :c:expr:`int` to represent thread keys."
msgstr ""
#: c-api/init.rst:1685
@ -1961,12 +1961,12 @@ msgstr ""
msgid ""
"Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first "
"calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals "
"have been unassigned. This is a no-op if the *key* argument is `NULL`."
"have been unassigned. This is a no-op if the *key* argument is ``NULL``."
msgstr ""
#: c-api/init.rst:1728
msgid ""
"A freed key becomes a dangling pointer, you should reset the key to `NULL`."
"A freed key becomes a dangling pointer. You should reset the key to `NULL`."
msgstr ""
#: c-api/init.rst:1733
@ -2007,14 +2007,14 @@ msgstr ""
#: c-api/init.rst:1767
msgid ""
"Return a zero value to indicate successfully associating a :c:type:`void*` "
"Return a zero value to indicate successfully associating a :c:expr:`void*` "
"value with a TSS key in the current thread. Each thread has a distinct "
"mapping of the key to a :c:type:`void*` value."
"mapping of the key to a :c:expr:`void*` value."
msgstr ""
#: c-api/init.rst:1774
msgid ""
"Return the :c:type:`void*` value associated with a TSS key in the current "
"Return the :c:expr:`void*` value associated with a TSS key in the current "
"thread. This returns ``NULL`` if no value is associated with the key in the "
"current thread."
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -272,13 +272,13 @@ msgstr ""
#: c-api/intro.rst:231
msgid ""
"Most Python/C API functions have one or more arguments as well as a return "
"value of type :c:type:`PyObject*`. This type is a pointer to an opaque data "
"value of type :c:expr:`PyObject*`. This type is a pointer to an opaque data "
"type representing an arbitrary Python object. Since all Python object types "
"are treated the same way by the Python language in most situations (e.g., "
"assignments, scope rules, and argument passing), it is only fitting that "
"they should be represented by a single C type. Almost all Python objects "
"live on the heap: you never declare an automatic or static variable of type :"
"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject*` can "
"c:type:`PyObject`, only pointer variables of type :c:expr:`PyObject*` can "
"be declared. The sole exception are the type objects; since these must "
"never be deallocated, they are typically static :c:type:`PyTypeObject` "
"objects."
@ -491,19 +491,27 @@ msgstr ""
#: c-api/intro.rst:497
msgid ""
"There are few other data types that play a significant role in the Python/C "
"API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:"
"`double` and :c:type:`char*`. A few structure types are used to describe "
"API; most are simple C types such as :c:expr:`int`, :c:expr:`long`, :c:expr:"
"`double` and :c:expr:`char*`. A few structure types are used to describe "
"static tables used to list the functions exported by a module or the data "
"attributes of a new object type, and another is used to describe the value "
"of a complex number. These will be discussed together with the functions "
"that use them."
msgstr ""
#: c-api/intro.rst:509
#: c-api/intro.rst:507
msgid ""
"A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. "
"C99 doesn't define such a thing directly (size_t is an unsigned integral "
"type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest "
"positive value of type :c:type:`Py_ssize_t`."
msgstr ""
#: c-api/intro.rst:516
msgid "Exceptions"
msgstr "Exceptions"
#: c-api/intro.rst:511
#: c-api/intro.rst:518
msgid ""
"The Python programmer only needs to deal with exceptions if specific error "
"handling is required; unhandled exceptions are automatically propagated to "
@ -512,7 +520,7 @@ msgid ""
"stack traceback."
msgstr ""
#: c-api/intro.rst:519
#: c-api/intro.rst:526
msgid ""
"For C programmers, however, error checking always has to be explicit. All "
"functions in the Python/C API can raise exceptions, unless an explicit claim "
@ -527,7 +535,7 @@ msgid ""
"explicitly documented."
msgstr ""
#: c-api/intro.rst:534
#: c-api/intro.rst:541
msgid ""
"Exception state is maintained in per-thread storage (this is equivalent to "
"using global storage in an unthreaded application). A thread can be in one "
@ -540,7 +548,7 @@ msgid ""
"clears the exception state."
msgstr ""
#: c-api/intro.rst:544
#: c-api/intro.rst:551
msgid ""
"The full exception state consists of three objects (all of which can be "
"``NULL``): the exception type, the corresponding exception value, and the "
@ -553,7 +561,7 @@ msgid ""
"``sys.exc_info()`` and friends."
msgstr ""
#: c-api/intro.rst:556
#: c-api/intro.rst:563
msgid ""
"Note that starting with Python 1.5, the preferred, thread-safe way to access "
"the exception state from Python code is to call the function :func:`sys."
@ -567,7 +575,7 @@ msgid ""
"referenced by the stack frames in the traceback."
msgstr ""
#: c-api/intro.rst:567
#: c-api/intro.rst:574
msgid ""
"As a general principle, a function that calls another function to perform "
"some task should check whether the called function raised an exception, and "
@ -578,7 +586,7 @@ msgid ""
"of the error."
msgstr ""
#: c-api/intro.rst:576
#: c-api/intro.rst:583
msgid ""
"A simple example of detecting exceptions and passing them on is shown in "
"the :c:func:`sum_sequence` example above. It so happens that this example "
@ -587,11 +595,11 @@ msgid ""
"why you like Python, we show the equivalent Python code::"
msgstr ""
#: c-api/intro.rst:591
#: c-api/intro.rst:598
msgid "Here is the corresponding C code, in all its glory::"
msgstr ""
#: c-api/intro.rst:643
#: c-api/intro.rst:650
msgid ""
"This example represents an endorsed use of the ``goto`` statement in C! It "
"illustrates the use of :c:func:`PyErr_ExceptionMatches` and :c:func:"
@ -604,11 +612,11 @@ msgid ""
"success after the final call made is successful."
msgstr ""
#: c-api/intro.rst:657
#: c-api/intro.rst:664
msgid "Embedding Python"
msgstr "Embarquer Python"
#: c-api/intro.rst:659
#: c-api/intro.rst:666
msgid ""
"The one important task that only embedders (as opposed to extension writers) "
"of the Python interpreter have to worry about is the initialization, and "
@ -616,7 +624,7 @@ msgid ""
"the interpreter can only be used after the interpreter has been initialized."
msgstr ""
#: c-api/intro.rst:672
#: c-api/intro.rst:679
msgid ""
"The basic initialization function is :c:func:`Py_Initialize`. This "
"initializes the table of loaded modules, and creates the fundamental "
@ -624,7 +632,7 @@ msgid ""
"initializes the module search path (``sys.path``)."
msgstr ""
#: c-api/intro.rst:679
#: c-api/intro.rst:686
msgid ""
":c:func:`Py_Initialize` does not set the \"script argument list\" (``sys."
"argv``). If this variable is needed by Python code that will be executed "
@ -632,7 +640,7 @@ msgid ""
"argv, updatepath)`` after the call to :c:func:`Py_Initialize`."
msgstr ""
#: c-api/intro.rst:684
#: c-api/intro.rst:691
msgid ""
"On most systems (in particular, on Unix and Windows, although the details "
"are slightly different), :c:func:`Py_Initialize` calculates the module "
@ -644,7 +652,7 @@ msgid ""
"on the shell command search path (the environment variable :envvar:`PATH`)."
msgstr ""
#: c-api/intro.rst:693
#: c-api/intro.rst:700
msgid ""
"For instance, if the Python executable is found in :file:`/usr/local/bin/"
"python`, it will assume that the libraries are in :file:`/usr/local/lib/"
@ -655,7 +663,7 @@ msgid ""
"in front of the standard path by setting :envvar:`PYTHONPATH`."
msgstr ""
#: c-api/intro.rst:708
#: c-api/intro.rst:715
msgid ""
"The embedding application can steer the search by calling "
"``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note "
@ -666,7 +674,7 @@ msgid ""
"func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)."
msgstr ""
#: c-api/intro.rst:718
#: c-api/intro.rst:725
msgid ""
"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the "
"application may want to start over (make another call to :c:func:"
@ -680,28 +688,28 @@ msgid ""
"released."
msgstr ""
#: c-api/intro.rst:732
#: c-api/intro.rst:739
msgid "Debugging Builds"
msgstr ""
#: c-api/intro.rst:734
#: c-api/intro.rst:741
msgid ""
"Python can be built with several macros to enable extra checks of the "
"interpreter and extension modules. These checks tend to add a large amount "
"of overhead to the runtime so they are not enabled by default."
msgstr ""
#: c-api/intro.rst:738
#: c-api/intro.rst:745
msgid ""
"A full list of the various types of debugging builds is in the file :file:"
"`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are "
"available that support tracing of reference counts, debugging the memory "
"allocator, or low-level profiling of the main interpreter loop. Only the "
"most frequently-used builds will be described in the remainder of this "
"most frequently used builds will be described in the remainder of this "
"section."
msgstr ""
#: c-api/intro.rst:744
#: c-api/intro.rst:751
msgid ""
"Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined "
"produces what is generally meant by :ref:`a debug build of Python <debug-"
@ -712,13 +720,13 @@ msgid ""
"disabled."
msgstr ""
#: c-api/intro.rst:752
#: c-api/intro.rst:759
msgid ""
"In addition to the reference count debugging described below, extra checks "
"are performed, see :ref:`Python Debug Build <debug-build>`."
msgstr ""
#: c-api/intro.rst:755
#: c-api/intro.rst:762
msgid ""
"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:"
"`configure --with-trace-refs option <--with-trace-refs>`). When defined, a "
@ -728,7 +736,7 @@ msgid ""
"this happens after every statement run by the interpreter.)"
msgstr ""
#: c-api/intro.rst:762
#: c-api/intro.rst:769
msgid ""
"Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source "
"distribution for more detailed information."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -32,8 +32,8 @@ msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
#: c-api/iter.rst:17
#, fuzzy
msgid ""
"Returns non-zero if the object 'obj' provides :class:`AsyncIterator` "
"protocols, and ``0`` otherwise. This function always succeeds."
"Return non-zero if the object *o* provides the :class:`AsyncIterator` "
"protocol, and ``0`` otherwise. This function always succeeds."
msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
#: c-api/iter.rst:24

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -72,13 +72,13 @@ msgstr ""
#: c-api/long.rst:43
msgid ""
"The current implementation keeps an array of integer objects for all "
"integers between ``-5`` and ``256``, when you create an int in that range "
"integers between ``-5`` and ``256``. When you create an int in that range "
"you actually just get back a reference to the existing object."
msgstr ""
#: c-api/long.rst:50
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, "
"or ``NULL`` on failure."
msgstr ""
@ -96,13 +96,13 @@ msgstr ""
#: c-api/long.rst:68
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or "
"``NULL`` on failure."
msgstr ""
#: c-api/long.rst:74
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long "
"long`, or ``NULL`` on failure."
msgstr ""
@ -139,7 +139,7 @@ msgstr ""
#: c-api/long.rst:136
msgid ""
"Return a C :c:type:`long` representation of *obj*. If *obj* is not an "
"Return a C :c:expr:`long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
@ -147,7 +147,7 @@ msgstr ""
#: c-api/long.rst:122
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"type:`long`."
"expr:`long`."
msgstr ""
#: c-api/long.rst:145 c-api/long.rst:186 c-api/long.rst:209
@ -172,7 +172,7 @@ msgstr ""
#: c-api/long.rst:177
msgid ""
"Return a C :c:type:`long long` representation of *obj*. If *obj* is not an "
"Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
@ -180,7 +180,7 @@ msgstr ""
#: c-api/long.rst:163
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"type:`long long`."
"expr:`long long`."
msgstr ""
#: c-api/long.rst:181
@ -205,14 +205,14 @@ msgstr ""
#: c-api/long.rst:218
msgid ""
"Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* "
"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* "
"must be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:221
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`unsigned long`."
"expr:`unsigned long`."
msgstr ""
#: c-api/long.rst:224
@ -241,14 +241,14 @@ msgstr ""
#: c-api/long.rst:249
msgid ""
"Return a C :c:type:`unsigned long long` representation of *pylong*. "
"Return a C :c:expr:`unsigned long long` representation of *pylong*. "
"*pylong* must be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:252
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :"
"c:type:`unsigned long long`."
"c:expr:`unsigned long long`."
msgstr ""
#: c-api/long.rst:255
@ -264,14 +264,14 @@ msgstr ""
#: c-api/long.rst:264
msgid ""
"Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not "
"Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not "
"an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` "
"method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:268
msgid ""
"If the value of *obj* is out of range for an :c:type:`unsigned long`, return "
"If the value of *obj* is out of range for an :c:expr:`unsigned long`, return "
"the reduction of that value modulo ``ULONG_MAX + 1``."
msgstr ""
@ -283,14 +283,14 @@ msgstr ""
#: c-api/long.rst:283
msgid ""
"Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* "
"Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* "
"is not an instance of :c:type:`PyLongObject`, first call its :meth:"
"`__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:288
msgid ""
"If the value of *obj* is out of range for an :c:type:`unsigned long long`, "
"If the value of *obj* is out of range for an :c:expr:`unsigned long long`, "
"return the reduction of that value modulo ``ULLONG_MAX + 1``."
msgstr ""
@ -302,14 +302,14 @@ msgstr ""
#: c-api/long.rst:303
msgid ""
"Return a C :c:type:`double` representation of *pylong*. *pylong* must be an "
"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:306
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`double`."
"expr:`double`."
msgstr ""
#: c-api/long.rst:309
@ -319,9 +319,9 @@ msgstr ""
#: c-api/long.rst:314
msgid ""
"Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* "
"Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* "
"cannot be converted, an :exc:`OverflowError` will be raised. This is only "
"assured to produce a usable :c:type:`void` pointer for values created with :"
"assured to produce a usable :c:expr:`void` pointer for values created with :"
"c:func:`PyLong_FromVoidPtr`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-01-28 14:58+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -32,11 +32,13 @@ msgstr ""
# → pas correct en VO !
# - "This function always succeeds." équivaut-il à "jamais d'erreur" ?
#: c-api/mapping.rst:14
#, fuzzy
msgid ""
"Return ``1`` if the object provides mapping protocol or supports slicing, "
"and ``0`` otherwise. Note that it returns ``1`` for Python classes with a :"
"meth:`__getitem__` method since in general case it is impossible to "
"determine what type of keys it supports. This function always succeeds."
"Return ``1`` if the object provides the mapping protocol or supports "
"slicing, and ``0`` otherwise. Note that it returns ``1`` for Python classes "
"with a :meth:`__getitem__` method, since in general it is impossible to "
"determine what type of keys the class supports. This function always "
"succeeds."
msgstr ""
"Renvoie ``1`` si l'objet prend en charge le protocole de correspondance ou "
"le découpage en tranches et ``0`` sinon. Notez qu'elle renvoie ``1`` pour "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -41,9 +41,9 @@ msgstr ""
#: c-api/marshal.rst:24
msgid ""
"Marshal a :c:type:`long` integer, *value*, to *file*. This will only write "
"Marshal a :c:expr:`long` integer, *value*, to *file*. This will only write "
"the least-significant 32 bits of *value*; regardless of the size of the "
"native :c:type:`long` type. *version* indicates the file format."
"native :c:expr:`long` type. *version* indicates the file format."
msgstr ""
#: c-api/marshal.rst:31
@ -64,9 +64,9 @@ msgstr ""
#: c-api/marshal.rst:46
msgid ""
"Return a C :c:type:`long` from the data stream in a :c:type:`FILE*` opened "
"Return a C :c:expr:`long` from the data stream in a :c:expr:`FILE*` opened "
"for reading. Only a 32-bit value can be read in using this function, "
"regardless of the native size of :c:type:`long`."
"regardless of the native size of :c:expr:`long`."
msgstr ""
#: c-api/marshal.rst:60
@ -77,14 +77,14 @@ msgstr ""
#: c-api/marshal.rst:56
msgid ""
"Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened "
"Return a C :c:expr:`short` from the data stream in a :c:expr:`FILE*` opened "
"for reading. Only a 16-bit value can be read in using this function, "
"regardless of the native size of :c:type:`short`."
"regardless of the native size of :c:expr:`short`."
msgstr ""
#: c-api/marshal.rst:66
msgid ""
"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading."
msgstr ""
@ -96,7 +96,7 @@ msgstr ""
#: c-api/marshal.rst:75
msgid ""
"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function "
"assumes that no further objects will be read from the file, allowing it to "
"aggressively load file data into memory so that the de-serialization can "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -82,7 +82,7 @@ msgid ""
"extended with new object types written in C. Another reason for using the "
"Python heap is the desire to *inform* the Python memory manager about the "
"memory needs of the extension module. Even when the requested memory is used "
"exclusively for internal, highly-specific purposes, delegating all memory "
"exclusively for internal, highly specific purposes, delegating all memory "
"requests to the Python memory manager causes the interpreter to have a more "
"accurate image of its memory footprint as a whole. Consequently, under "
"certain circumstances, the Python memory manager may or may not trigger "
@ -179,7 +179,7 @@ msgstr ""
#: c-api/memory.rst:215 c-api/memory.rst:323
msgid ""
"Allocates *n* bytes and returns a pointer of type :c:type:`void*` to the "
"Allocates *n* bytes and returns a pointer of type :c:expr:`void*` to the "
"allocated memory, or ``NULL`` if the request fails."
msgstr ""
@ -193,7 +193,7 @@ msgstr ""
#: c-api/memory.rst:225 c-api/memory.rst:333
msgid ""
"Allocates *nelem* elements each whose size in bytes is *elsize* and returns "
"a pointer of type :c:type:`void*` to the allocated memory, or ``NULL`` if "
"a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if "
"the request fails. The memory is initialized to zeros."
msgstr ""
@ -320,14 +320,14 @@ msgstr ""
#: c-api/memory.rst:267
msgid ""
"Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes "
"of memory. Returns a pointer cast to :c:type:`TYPE*`. The memory will not "
"of memory. Returns a pointer cast to :c:expr:`TYPE*`. The memory will not "
"have been initialized in any way."
msgstr ""
#: c-api/memory.rst:274
msgid ""
"Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * "
"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE*`. On "
"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:expr:`TYPE*`. On "
"return, *p* will be a pointer to the new memory area, or ``NULL`` in the "
"event of failure."
msgstr ""
@ -381,7 +381,7 @@ msgstr ""
#: c-api/memory.rst:308
msgid ""
"There is no guarantee that the memory returned by these allocators can be "
"successfully casted to a Python object when intercepting the allocating "
"successfully cast to a Python object when intercepting the allocating "
"functions in this domain by the methods described in the :ref:`Customize "
"Memory Allocators <customize-memory-allocators>` section."
msgstr ""
@ -544,8 +544,8 @@ msgstr ""
#: c-api/memory.rst:405
msgid ""
"Structure used to describe a memory block allocator. The structure has four "
"fields:"
"Structure used to describe a memory block allocator. The structure has the "
"following fields:"
msgstr ""
#: c-api/memory.rst:626
@ -771,9 +771,9 @@ msgid ""
"Let *S* = ``sizeof(size_t)``. ``2*S`` bytes are added at each end of each "
"block of *N* bytes requested. The memory layout is like so, where p "
"represents the address returned by a malloc-like or realloc-like function "
"(``p[i:j]`` means the slice of bytes from ``*(p+i)`` inclusive up to ``*(p"
"+j)`` exclusive; note that the treatment of negative indices differs from a "
"Python slice):"
"(``p[i:j]`` means the slice of bytes from ``*(p+i)`` inclusive up to "
"``*(p+j)`` exclusive; note that the treatment of negative indices differs "
"from a Python slice):"
msgstr ""
#: c-api/memory.rst:532

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -40,7 +40,7 @@ msgstr ""
#: c-api/method.rst:30
msgid ""
"Return a new instance method object, with *func* being any callable object "
"Return a new instance method object, with *func* being any callable object. "
"*func* is the function that will be called when the instance method is "
"called."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -65,9 +65,9 @@ msgstr ""
#: c-api/module.rst:67
msgid ""
"It is recommended extensions use other :c:func:`PyModule_\\*` and :c:func:"
"`PyObject_\\*` functions rather than directly manipulate a module's :attr:"
"`~object.__dict__`."
"It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` "
"functions rather than directly manipulate a module's :attr:`~object."
"__dict__`."
msgstr ""
#: c-api/module.rst:78
@ -510,7 +510,7 @@ msgstr ""
#: c-api/module.rst:506
msgid "Example usage::"
msgstr ""
msgstr "Exemple d'utilisation ::"
#: c-api/module.rst:524
msgid ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -55,7 +55,7 @@ msgstr ""
#: c-api/number.rst:46
msgid ""
"Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is "
"equivalent to the \"classic\" division of integers."
"the equivalent of the Python expression ``o1 // o2``."
msgstr ""
#: c-api/number.rst:52
@ -64,7 +64,8 @@ msgid ""
"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" "
"because binary floating point numbers are approximate; it is not possible to "
"represent all real numbers in base two. This function can return a floating "
"point value when passed two integers."
"point value when passed two integers. This is the equivalent of the Python "
"expression ``o1 / o2``."
msgstr ""
#: c-api/number.rst:61
@ -183,17 +184,18 @@ msgid ""
"because binary floating point numbers are approximate; it is not possible to "
"represent all real numbers in base two. This function can return a floating "
"point value when passed two integers. The operation is done *in-place* when "
"*o1* supports it."
"*o1* supports it. This is the equivalent of the Python statement ``o1 /= "
"o2``."
msgstr ""
#: c-api/number.rst:187
#: c-api/number.rst:188
msgid ""
"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. The "
"operation is done *in-place* when *o1* supports it. This is the equivalent "
"of the Python statement ``o1 %= o2``."
msgstr ""
#: c-api/number.rst:196
#: c-api/number.rst:197
msgid ""
"See the built-in function :func:`pow`. Returns ``NULL`` on failure. The "
"operation is done *in-place* when *o1* supports it. This is the equivalent "
@ -203,66 +205,66 @@ msgid ""
"an illegal memory access)."
msgstr ""
#: c-api/number.rst:205
#: c-api/number.rst:206
msgid ""
"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 <<= o2``."
msgstr ""
#: c-api/number.rst:212
#: c-api/number.rst:213
msgid ""
"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 >>= o2``."
msgstr ""
#: c-api/number.rst:219
#: c-api/number.rst:220
msgid ""
"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 &= o2``."
msgstr ""
#: c-api/number.rst:226
#: c-api/number.rst:227
msgid ""
"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` "
"on failure. The operation is done *in-place* when *o1* supports it. This "
"is the equivalent of the Python statement ``o1 ^= o2``."
msgstr ""
#: c-api/number.rst:233
#: c-api/number.rst:234
msgid ""
"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 |= o2``."
msgstr ""
#: c-api/number.rst:242
#: c-api/number.rst:243
msgid ""
"Returns the *o* converted to an integer object on success, or ``NULL`` on "
"failure. This is the equivalent of the Python expression ``int(o)``."
msgstr ""
#: c-api/number.rst:250
#: c-api/number.rst:251
msgid ""
"Returns the *o* converted to a float object on success, or ``NULL`` on "
"failure. This is the equivalent of the Python expression ``float(o)``."
msgstr ""
#: c-api/number.rst:256
#: c-api/number.rst:257
msgid ""
"Returns the *o* converted to a Python int on success or ``NULL`` with a :exc:"
"`TypeError` exception raised on failure."
msgstr ""
#: c-api/number.rst:259
#: c-api/number.rst:260
msgid ""
"The result always has exact type :class:`int`. Previously, the result could "
"have been an instance of a subclass of ``int``."
msgstr ""
#: c-api/number.rst:266
#: c-api/number.rst:267
msgid ""
"Returns the integer *n* converted to base *base* as a string. The *base* "
"argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned "
@ -271,25 +273,26 @@ msgid ""
"`PyNumber_Index` first."
msgstr ""
#: c-api/number.rst:275
#: c-api/number.rst:276
msgid ""
"Returns *o* converted to a Py_ssize_t value if *o* can be interpreted as an "
"integer. If the call fails, an exception is raised and ``-1`` is returned."
"Returns *o* converted to a :c:type:`Py_ssize_t` value if *o* can be "
"interpreted as an integer. If the call fails, an exception is raised and "
"``-1`` is returned."
msgstr ""
#: c-api/number.rst:278
#: c-api/number.rst:279
msgid ""
"If *o* can be converted to a Python int but the attempt to convert to a "
"Py_ssize_t value would raise an :exc:`OverflowError`, then the *exc* "
"If *o* can be converted to a Python int but the attempt to convert to a :c:"
"type:`Py_ssize_t` value would raise an :exc:`OverflowError`, then the *exc* "
"argument is the type of exception that will be raised (usually :exc:"
"`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, then the "
"exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` for a "
"negative integer or ``PY_SSIZE_T_MAX`` for a positive integer."
msgstr ""
#: c-api/number.rst:288
#: c-api/number.rst:289
msgid ""
"Returns ``1`` if *o* is an index integer (has the nb_index slot of the "
"tp_as_number structure filled in), and ``0`` otherwise. This function always "
"succeeds."
"Returns ``1`` if *o* is an index integer (has the ``nb_index`` slot of the "
"``tp_as_number`` structure filled in), and ``0`` otherwise. This function "
"always succeeds."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-08-16 22:56+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -118,7 +118,7 @@ msgstr ""
"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:"
"`AttributeError` est levée."
#: c-api/object.rst:90
#: c-api/object.rst:91
msgid ""
"Set the value of the attribute named *attr_name*, for object *o*, to the "
"value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on "
@ -132,22 +132,23 @@ msgstr ""
#: c-api/object.rst:84
#, fuzzy
msgid ""
"If *v* is ``NULL``, the attribute is deleted, however this feature is "
"deprecated in favour of using :c:func:`PyObject_DelAttr`."
"If *v* is ``NULL``, the attribute is deleted. This behaviour is deprecated "
"in favour of using :c:func:`PyObject_DelAttr`, but there are currently no "
"plans to remove it."
msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
#: c-api/object.rst:95
#: c-api/object.rst:96
#, fuzzy
msgid ""
"If *v* is ``NULL``, the attribute is deleted, however this feature is "
"deprecated in favour of using :c:func:`PyObject_DelAttrString`."
"If *v* is ``NULL``, the attribute is deleted, but this feature is deprecated "
"in favour of using :c:func:`PyObject_DelAttrString`."
msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
#: c-api/object.rst:101
#: c-api/object.rst:102
msgid ""
"Generic attribute setter and deleter function that is meant to be put into a "
"type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a "
@ -167,7 +168,7 @@ msgstr ""
"attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est "
"renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé."
#: c-api/object.rst:119
#: c-api/object.rst:120
msgid ""
"Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on "
"failure. This is the equivalent of the Python statement ``del o.attr_name``."
@ -176,7 +177,7 @@ msgstr ""
"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o."
"attr_name``."
#: c-api/object.rst:125
#: c-api/object.rst:126
msgid ""
"A generic implementation for the getter of a ``__dict__`` descriptor. It "
"creates the dictionary if necessary."
@ -184,7 +185,7 @@ msgstr ""
"Une implémentation générique de l'accesseur d'un descripteur d'un "
"``__dict__``. Crée le dictionnaire si nécessaire."
#: c-api/object.rst:133
#: c-api/object.rst:134
msgid ""
"A generic implementation for the setter of a ``__dict__`` descriptor. This "
"implementation does not allow the dictionary to be deleted."
@ -192,7 +193,7 @@ msgstr ""
"Une implémentation générique du mutateur d'un descripteur de ``__dict__``. "
"Cette implémentation n'autorise pas la suppression du dictionnaire."
#: c-api/object.rst:141
#: c-api/object.rst:142
#, fuzzy
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
@ -211,7 +212,7 @@ msgstr ""
"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en "
"cas d'échec."
#: c-api/object.rst:151
#: c-api/object.rst:152
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:"
@ -229,7 +230,7 @@ msgstr ""
"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur "
"correspondant à *opid*."
#: c-api/object.rst:160
#: c-api/object.rst:161
msgid ""
"If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` "
"will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`."
@ -237,7 +238,7 @@ msgstr ""
"Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` "
"renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`."
#: c-api/object.rst:167
#: c-api/object.rst:168
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -250,7 +251,7 @@ msgstr ""
"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé "
"par la fonction native :func:`repr`."
#: c-api/object.rst:195
#: c-api/object.rst:196
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -258,7 +259,7 @@ msgstr ""
"Cette fonction inclut maintenant une assertion de débogage afin d'assurer "
"qu'elle ne passe pas sous silence une exception active."
#: c-api/object.rst:179
#: c-api/object.rst:180
msgid ""
"As :c:func:`PyObject_Repr`, compute a string representation of object *o*, "
"but escape the non-ASCII characters in the string returned by :c:func:"
@ -268,12 +269,12 @@ msgid ""
msgstr ""
"Comme :c:Func:`PyObject_Repr`, calcule une représentation en chaîne de "
"caractères de l'objet *o*, mais échappe les caractères non ASCII dans la "
"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, ``"
"\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle "
"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, "
"``\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle "
"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction "
"native :func:`ascii`."
#: c-api/object.rst:190
#: c-api/object.rst:191
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -287,7 +288,7 @@ msgstr ""
"par la fonction native :func:`str`, et, par conséquent, par la fonction :"
"func:`print`."
#: c-api/object.rst:204
#: c-api/object.rst:205
#, fuzzy
msgid ""
"Compute a bytes representation of object *o*. ``NULL`` is returned on "
@ -302,7 +303,7 @@ msgstr ""
"entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée "
"lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros."
#: c-api/object.rst:213
#: c-api/object.rst:214
msgid ""
"Return ``1`` if the class *derived* is identical to or derived from the "
"class *cls*, otherwise return ``0``. In case of an error, return ``-1``."
@ -310,7 +311,7 @@ msgstr ""
"Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe "
"*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``."
#: c-api/object.rst:235
#: c-api/object.rst:236
msgid ""
"If *cls* is a tuple, the check will be done against every entry in *cls*. "
"The result will be ``1`` when at least one of the checks returns ``1``, "
@ -320,7 +321,7 @@ msgstr ""
"*cls*. Le résultat sera ``1`` quand au moins une des vérifications renvoie "
"``1``, sinon ce sera ``0``."
#: c-api/object.rst:220
#: c-api/object.rst:221
msgid ""
"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -332,7 +333,7 @@ msgstr ""
"Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe "
"directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``."
#: c-api/object.rst:225
#: c-api/object.rst:226
msgid ""
"Normally only class objects, i.e. instances of :class:`type` or a derived "
"class, are considered classes. However, objects can override this by having "
@ -343,7 +344,7 @@ msgstr ""
"les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` "
"(qui doit être un *n*-uplet de classes de bases)."
#: c-api/object.rst:232
#: c-api/object.rst:233
msgid ""
"Return ``1`` if *inst* is an instance of the class *cls* or a subclass of "
"*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception."
@ -352,7 +353,7 @@ msgstr ""
"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et "
"initialise une exception."
#: c-api/object.rst:239
#: c-api/object.rst:240
msgid ""
"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -363,7 +364,7 @@ msgstr ""
"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de "
"*cls*."
#: c-api/object.rst:243
#: c-api/object.rst:244
msgid ""
"An instance *inst* can override what is considered its class by having a :"
"attr:`__class__` attribute."
@ -371,7 +372,7 @@ msgstr ""
"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en "
"ayant un attribut :attr:`__class__`."
#: c-api/object.rst:246
#: c-api/object.rst:247
msgid ""
"An object *cls* can override if it is considered a class, and what its base "
"classes are, by having a :attr:`__bases__` attribute (which must be a tuple "
@ -381,19 +382,19 @@ msgstr ""
"que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui "
"doit être un *n*-uplet des classes de base)."
#: c-api/object.rst:255
#: c-api/object.rst:256
msgid ""
"Compute and return the hash value of an object *o*. On failure, return "
"``-1``. This is the equivalent of the Python expression ``hash(o)``."
msgstr ""
#: c-api/object.rst:258
#: c-api/object.rst:259
msgid ""
"The return type is now Py_hash_t. This is a signed integer the same size as "
"Py_ssize_t."
"The return type is now Py_hash_t. This is a signed integer the same size "
"as :c:type:`Py_ssize_t`."
msgstr ""
#: c-api/object.rst:265
#: c-api/object.rst:266
msgid ""
"Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and "
"return ``-1``. This function receives special treatment when stored in a "
@ -401,38 +402,38 @@ msgid ""
"that it is not hashable."
msgstr ""
#: c-api/object.rst:273
#: c-api/object.rst:274
msgid ""
"Returns ``1`` if the object *o* is considered to be true, and ``0`` "
"otherwise. This is equivalent to the Python expression ``not not o``. On "
"failure, return ``-1``."
msgstr ""
#: c-api/object.rst:280
#: c-api/object.rst:281
msgid ""
"Returns ``0`` if the object *o* is considered to be true, and ``1`` "
"otherwise. This is equivalent to the Python expression ``not o``. On "
"failure, return ``-1``."
msgstr ""
#: c-api/object.rst:289
#: c-api/object.rst:290
msgid ""
"When *o* is non-``NULL``, returns a type object corresponding to the object "
"type of object *o*. On failure, raises :exc:`SystemError` and returns "
"``NULL``. This is equivalent to the Python expression ``type(o)``. This "
"function increments the reference count of the return value. There's really "
"no reason to use this function instead of the common expression ``o-"
">ob_type``, which returns a pointer of type :c:type:`PyTypeObject*`, except "
"when the incremented reference count is needed."
"no reason to use this function instead of the :c:func:`Py_TYPE()` function, "
"which returns a pointer of type :c:expr:`PyTypeObject*`, except when the "
"incremented reference count is needed."
msgstr ""
#: c-api/object.rst:300
#: c-api/object.rst:301
msgid ""
"Return non-zero if the object *o* is of type *type* or a subtype of *type*, "
"and ``0`` otherwise. Both parameters must be non-``NULL``."
msgstr ""
#: c-api/object.rst:309
#: c-api/object.rst:310
msgid ""
"Return the length of object *o*. If the object *o* provides either the "
"sequence and mapping protocols, the sequence length is returned. On error, "
@ -440,7 +441,7 @@ msgid ""
"``len(o)``."
msgstr ""
#: c-api/object.rst:316
#: c-api/object.rst:317
msgid ""
"Return an estimated length for the object *o*. First try to return its "
"actual length, then an estimate using :meth:`~object.__length_hint__`, and "
@ -449,7 +450,7 @@ msgid ""
"defaultvalue)``."
msgstr ""
#: c-api/object.rst:326
#: c-api/object.rst:327
#, fuzzy
msgid ""
"Return element of *o* corresponding to the object *key* or ``NULL`` on "
@ -459,7 +460,7 @@ msgstr ""
"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à "
"l'expression Python ``o.attr_name``."
#: c-api/object.rst:332
#: c-api/object.rst:333
#, fuzzy
msgid ""
"Map the object *key* to the value *v*. Raise an exception and return ``-1`` "
@ -471,7 +472,7 @@ msgstr ""
"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o."
"attr_name = v``."
#: c-api/object.rst:340
#: c-api/object.rst:341
#, fuzzy
msgid ""
"Remove the mapping for the object *key* from the object *o*. Return ``-1`` "
@ -481,7 +482,7 @@ msgstr ""
"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python "
"``del o[key]``."
#: c-api/object.rst:346
#: c-api/object.rst:347
msgid ""
"This is equivalent to the Python expression ``dir(o)``, returning a "
"(possibly empty) list of strings appropriate for the object argument, or "
@ -491,7 +492,7 @@ msgid ""
"`PyErr_Occurred` will return false."
msgstr ""
#: c-api/object.rst:355
#: c-api/object.rst:356
msgid ""
"This is equivalent to the Python expression ``iter(o)``. It returns a new "
"iterator for the object argument, or the object itself if the object is "
@ -499,7 +500,7 @@ msgid ""
"object cannot be iterated."
msgstr ""
#: c-api/object.rst:363
#: c-api/object.rst:364
msgid ""
"This is the equivalent to the Python expression ``aiter(o)``. Takes an :"
"class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -71,7 +71,7 @@ msgstr ""
#: c-api/refcounting.rst:45
msgid "For example::"
msgstr ""
msgstr "Par exemple ::"
#: c-api/refcounting.rst:50
msgid "can be written as::"
@ -147,15 +147,19 @@ msgid ""
"count of an object that might be traversed during garbage collection."
msgstr ""
#: c-api/refcounting.rst:113
#: c-api/refcounting.rst:114
msgid ""
"The following functions are for runtime dynamic embedding of Python: "
"``Py_IncRef(PyObject *o)``, ``Py_DecRef(PyObject *o)``. They are simply "
"exported function versions of :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF`, "
"respectively."
"Increment the reference count for object *o*. A function version of :c:func:"
"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python."
msgstr ""
#: c-api/refcounting.rst:118
#: c-api/refcounting.rst:120
msgid ""
"Decrement the reference count for object *o*. A function version of :c:func:"
"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
msgstr ""
#: c-api/refcounting.rst:124
msgid ""
"The following functions or macros are only for use within the interpreter "
"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2019-02-26 12:01+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -105,6 +105,6 @@ msgid ""
msgstr ""
"Renvoie une description en chaîne de caractères, en fonction du type de "
"*func*. Les valeurs renvoyées peuvent être ``\"()\"`` pour les fonction et "
"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" object"
"\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le "
"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" "
"object\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le "
"résultat sera une description de *func*"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -20,11 +20,11 @@ msgstr ""
#: c-api/sequence.rst:11
msgid ""
"Return ``1`` if the object provides sequence protocol, and ``0`` otherwise. "
"Note that it returns ``1`` for Python classes with a :meth:`__getitem__` "
"method unless they are :class:`dict` subclasses since in general case it is "
"impossible to determine what the type of keys it supports. This function "
"always succeeds."
"Return ``1`` if the object provides the sequence protocol, and ``0`` "
"otherwise. Note that it returns ``1`` for Python classes with a :meth:"
"`__getitem__` method, unless they are :class:`dict` subclasses, since in "
"general it is impossible to determine what type of keys the class supports. "
"This function always succeeds."
msgstr ""
#: c-api/sequence.rst:23
@ -85,8 +85,8 @@ msgstr ""
#: c-api/sequence.rst:72
msgid ""
"If *v* is ``NULL``, the element is deleted, however this feature is "
"deprecated in favour of using :c:func:`PySequence_DelItem`."
"If *v* is ``NULL``, the element is deleted, but this feature is deprecated "
"in favour of using :c:func:`PySequence_DelItem`."
msgstr ""
#: c-api/sequence.rst:78
@ -166,8 +166,8 @@ msgstr ""
#: c-api/sequence.rst:148
msgid ""
"Returns the length of *o*, assuming that *o* was returned by :c:func:"
"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be gotten "
"by calling :c:func:`PySequence_Size` on *o*, but :c:func:"
"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be "
"retrieved by calling :c:func:`PySequence_Size` on *o*, but :c:func:"
"`PySequence_Fast_GET_SIZE` is faster because it can assume *o* is a list or "
"tuple."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -21,14 +21,14 @@ msgstr ""
#: c-api/set.rst:15
msgid ""
"This section details the public API for :class:`set` and :class:`frozenset` "
"objects. Any functionality not listed below is best accessed using the "
"either the abstract object protocol (including :c:func:"
"`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:"
"`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:"
"`PyObject_Print`, and :c:func:`PyObject_GetIter`) or the abstract number "
"protocol (including :c:func:`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:"
"func:`PyNumber_Or`, :c:func:`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :"
"c:func:`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, and :c:func:"
"objects. Any functionality not listed below is best accessed using either "
"the abstract object protocol (including :c:func:`PyObject_CallMethod`, :c:"
"func:`PyObject_RichCompareBool`, :c:func:`PyObject_Hash`, :c:func:"
"`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:`PyObject_Print`, and :c:"
"func:`PyObject_GetIter`) or the abstract number protocol (including :c:func:"
"`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:func:`PyNumber_Or`, :c:func:"
"`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :c:func:"
"`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, and :c:func:"
"`PyNumber_InPlaceXor`)."
msgstr ""
@ -39,9 +39,9 @@ msgid ""
"`PyDictObject` in that it is a fixed size for small sets (much like tuple "
"storage) and will point to a separate, variable sized block of memory for "
"medium and large sized sets (much like list storage). None of the fields of "
"this structure should be considered public and are subject to change. All "
"access should be done through the documented API rather than by manipulating "
"the values in the structure."
"this structure should be considered public and all are subject to change. "
"All access should be done through the documented API rather than by "
"manipulating the values in the structure."
msgstr ""
#: c-api/set.rst:40
@ -151,7 +151,7 @@ msgstr ""
#: c-api/set.rst:133
msgid ""
"Add *key* to a :class:`set` instance. Also works with :class:`frozenset` "
"instances (like :c:func:`PyTuple_SetItem` it can be used to fill-in the "
"instances (like :c:func:`PyTuple_SetItem` it can be used to fill in the "
"values of brand new frozensets before they are exposed to other code). "
"Return ``0`` on success or ``-1`` on failure. Raise a :exc:`TypeError` if "
"the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -45,7 +45,7 @@ msgid ""
"In a normal \"release\" build, it contains only the object's reference count "
"and a pointer to the corresponding type object. Nothing is actually declared "
"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast "
"to a :c:type:`PyObject*`. Access to the members must be done by using the "
"to a :c:expr:`PyObject*`. Access to the members must be done by using the "
"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`."
msgstr ""
@ -111,7 +111,7 @@ msgid "Return a :term:`borrowed reference`."
msgstr ""
#: c-api/structures.rst:102
msgid "The :c:func:`Py_SET_TYPE` function must be used to set an object type."
msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type."
msgstr ""
#: c-api/structures.rst:107
@ -143,7 +143,7 @@ msgid "Get the size of the Python object *o*."
msgstr ""
#: c-api/structures.rst:140
msgid "The :c:func:`Py_SET_SIZE` function must be used to set an object size."
msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size."
msgstr ""
#: c-api/structures.rst:145
@ -170,7 +170,7 @@ msgstr ""
#: c-api/structures.rst:174
msgid ""
"Type of the functions used to implement most Python callables in C. "
"Functions of this type take two :c:type:`PyObject*` parameters and return "
"Functions of this type take two :c:expr:`PyObject*` parameters and return "
"one such value. If the return value is ``NULL``, an exception shall have "
"been set. If not ``NULL``, the return value is interpreted as the return "
"value of the function as exposed in Python. The function must return a new "
@ -212,24 +212,24 @@ msgid ""
"has four fields:"
msgstr ""
#: c-api/structures.rst:397 c-api/structures.rst:493
#: c-api/structures.rst:395 c-api/structures.rst:491
msgid "Field"
msgstr "Champ"
#: c-api/structures.rst:397 c-api/structures.rst:493
#: c-api/structures.rst:395 c-api/structures.rst:491
msgid "C Type"
msgstr "Type C"
#: c-api/structures.rst:397 c-api/structures.rst:493
#: c-api/structures.rst:395 c-api/structures.rst:491
msgid "Meaning"
msgstr "Signification"
#: c-api/structures.rst:241
msgid ":attr:`ml_name`"
msgstr ""
msgstr ":attr:`ml_name`"
#: c-api/structures.rst:249 c-api/structures.rst:412 c-api/structures.rst:495
#: c-api/structures.rst:503
#: c-api/structures.rst:249 c-api/structures.rst:410 c-api/structures.rst:493
#: c-api/structures.rst:501
msgid "const char \\*"
msgstr ""
@ -239,7 +239,7 @@ msgstr ""
#: c-api/structures.rst:243
msgid ":attr:`ml_meth`"
msgstr ""
msgstr ":attr:`ml_meth`"
#: c-api/structures.rst:243
msgid "PyCFunction"
@ -251,9 +251,9 @@ msgstr ""
#: c-api/structures.rst:246
msgid ":attr:`ml_flags`"
msgstr ""
msgstr ":attr:`ml_flags`"
#: c-api/structures.rst:401 c-api/structures.rst:424
#: c-api/structures.rst:399 c-api/structures.rst:422
msgid "int"
msgstr "*int*"
@ -263,19 +263,19 @@ msgstr ""
#: c-api/structures.rst:249
msgid ":attr:`ml_doc`"
msgstr ""
msgstr ":attr:`ml_doc`"
#: c-api/structures.rst:412
#: c-api/structures.rst:410
msgid "points to the contents of the docstring"
msgstr ""
#: c-api/structures.rst:253
msgid ""
"The :attr:`ml_meth` is a C function pointer. The functions may be of "
"different types, but they always return :c:type:`PyObject*`. If the "
"different types, but they always return :c:expr:`PyObject*`. If the "
"function is not of the :c:type:`PyCFunction`, the compiler will require a "
"cast in the method table. Even though :c:type:`PyCFunction` defines the "
"first parameter as :c:type:`PyObject*`, it is common that the method "
"first parameter as :c:expr:`PyObject*`, it is common that the method "
"implementation uses the specific C type of the *self* object."
msgstr ""
@ -293,7 +293,7 @@ msgstr ""
#: c-api/structures.rst:268
msgid ""
"This is the typical calling convention, where the methods have the type :c:"
"type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The "
"type:`PyCFunction`. The function expects two :c:expr:`PyObject*` values. The "
"first one is the *self* object for methods; for module functions, it is the "
"module object. The second parameter (often called *args*) is a tuple object "
"representing all arguments. This parameter is typically processed using :c:"
@ -313,7 +313,7 @@ msgstr ""
msgid ""
"Fast calling convention supporting only positional arguments. The methods "
"have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the "
"second parameter is a C array of :c:type:`PyObject*` values indicating the "
"second parameter is a C array of :c:expr:`PyObject*` values indicating the "
"arguments and the third parameter is the number of arguments (the length of "
"the array)."
msgstr ""
@ -327,32 +327,28 @@ msgid ""
"Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with "
"methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments "
"are passed the same way as in the :ref:`vectorcall protocol <vectorcall>`: "
"there is an additional fourth :c:type:`PyObject*` parameter which is a tuple "
"there is an additional fourth :c:expr:`PyObject*` parameter which is a tuple "
"representing the names of the keyword arguments (which are guaranteed to be "
"strings) or possibly ``NULL`` if there are no keywords. The values of the "
"keyword arguments are stored in the *args* array, after the positional "
"arguments."
msgstr ""
#: c-api/structures.rst:312
msgid "This is not part of the :ref:`limited API <stable>`."
msgstr ""
#: c-api/structures.rst:319
#: c-api/structures.rst:317
msgid ""
"Extension of :const:`METH_FASTCALL | METH_KEYWORDS` supporting the *defining "
"class*, that is, the class that contains the method in question. The "
"defining class might be a superclass of ``Py_TYPE(self)``."
msgstr ""
#: c-api/structures.rst:323
#: c-api/structures.rst:321
msgid ""
"The method needs to be of type :c:type:`PyCMethod`, the same as for "
"``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added "
"after ``self``."
msgstr ""
#: c-api/structures.rst:332
#: c-api/structures.rst:330
msgid ""
"Methods without parameters don't need to check whether arguments are given "
"if they are listed with the :const:`METH_NOARGS` flag. They need to be of "
@ -361,16 +357,16 @@ msgid ""
"the second parameter will be ``NULL``."
msgstr ""
#: c-api/structures.rst:341
#: c-api/structures.rst:339
msgid ""
"Methods with a single object argument can be listed with the :const:`METH_O` "
"flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` "
"argument. They have the type :c:type:`PyCFunction`, with the *self* "
"parameter, and a :c:type:`PyObject*` parameter representing the single "
"parameter, and a :c:expr:`PyObject*` parameter representing the single "
"argument."
msgstr ""
#: c-api/structures.rst:347
#: c-api/structures.rst:345
msgid ""
"These two constants are not used to indicate the calling convention but the "
"binding when use with methods of classes. These may not be used for "
@ -378,27 +374,27 @@ msgid ""
"any given method."
msgstr ""
#: c-api/structures.rst:357
#: c-api/structures.rst:355
msgid ""
"The method will be passed the type object as the first parameter rather than "
"an instance of the type. This is used to create *class methods*, similar to "
"what is created when using the :func:`classmethod` built-in function."
msgstr ""
#: c-api/structures.rst:367
#: c-api/structures.rst:365
msgid ""
"The method will be passed ``NULL`` as the first parameter rather than an "
"instance of the type. This is used to create *static methods*, similar to "
"what is created when using the :func:`staticmethod` built-in function."
msgstr ""
#: c-api/structures.rst:371
#: c-api/structures.rst:369
msgid ""
"One other constant controls whether a method is loaded in place of another "
"definition with the same method name."
msgstr ""
#: c-api/structures.rst:377
#: c-api/structures.rst:375
msgid ""
"The method will be loaded in place of existing definitions. Without "
"*METH_COEXIST*, the default is to skip repeated definitions. Since slot "
@ -411,193 +407,193 @@ msgid ""
"calls."
msgstr ""
#: c-api/structures.rst:389
#: c-api/structures.rst:387
msgid "Accessing attributes of extension types"
msgstr ""
#: c-api/structures.rst:393
#: c-api/structures.rst:391
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member. Its fields are:"
msgstr ""
#: c-api/structures.rst:399
#: c-api/structures.rst:397
msgid ":attr:`name`"
msgstr ""
msgstr ":attr:`name`"
#: c-api/structures.rst:399
#: c-api/structures.rst:397
msgid "name of the member"
msgstr ""
#: c-api/structures.rst:401
#: c-api/structures.rst:399
msgid ":attr:`!type`"
msgstr ""
msgstr ":attr:`!type`"
#: c-api/structures.rst:401
#: c-api/structures.rst:399
msgid "the type of the member in the C struct"
msgstr ""
#: c-api/structures.rst:404
#: c-api/structures.rst:402
msgid ":attr:`offset`"
msgstr ""
msgstr ":attr:`offset`"
#: c-api/structures.rst:440
#: c-api/structures.rst:438
msgid "Py_ssize_t"
msgstr ""
#: c-api/structures.rst:404
#: c-api/structures.rst:402
msgid ""
"the offset in bytes that the member is located on the type's object struct"
msgstr ""
#: c-api/structures.rst:408
#: c-api/structures.rst:406
msgid ":attr:`flags`"
msgstr ""
msgstr ":attr:`flags`"
#: c-api/structures.rst:408
#: c-api/structures.rst:406
msgid "flag bits indicating if the field should be read-only or writable"
msgstr ""
#: c-api/structures.rst:412
#: c-api/structures.rst:410
msgid ":attr:`doc`"
msgstr ""
msgstr ":attr:`doc`"
#: c-api/structures.rst:416
#: c-api/structures.rst:414
msgid ""
":attr:`!type` can be one of many ``T_`` macros corresponding to various C "
"types. When the member is accessed in Python, it will be converted to the "
"equivalent Python type."
msgstr ""
#: c-api/structures.rst:421
#: c-api/structures.rst:419
msgid "Macro name"
msgstr ""
#: c-api/structures.rst:421
#: c-api/structures.rst:419
msgid "C type"
msgstr "Type C"
#: c-api/structures.rst:423
#: c-api/structures.rst:421
msgid "T_SHORT"
msgstr ""
#: c-api/structures.rst:423
#: c-api/structures.rst:421
msgid "short"
msgstr ""
#: c-api/structures.rst:424
#: c-api/structures.rst:422
msgid "T_INT"
msgstr ""
#: c-api/structures.rst:425
#: c-api/structures.rst:423
msgid "T_LONG"
msgstr ""
#: c-api/structures.rst:425
#: c-api/structures.rst:423
msgid "long"
msgstr ""
#: c-api/structures.rst:426
#: c-api/structures.rst:424
msgid "T_FLOAT"
msgstr ""
#: c-api/structures.rst:426
#: c-api/structures.rst:424
msgid "float"
msgstr "*float*"
#: c-api/structures.rst:427
#: c-api/structures.rst:425
msgid "T_DOUBLE"
msgstr ""
#: c-api/structures.rst:427
#: c-api/structures.rst:425
msgid "double"
msgstr "double"
#: c-api/structures.rst:428
#: c-api/structures.rst:426
msgid "T_STRING"
msgstr ""
#: c-api/structures.rst:429
#: c-api/structures.rst:427
msgid "T_OBJECT"
msgstr ""
#: c-api/structures.rst:430
#: c-api/structures.rst:428
msgid "PyObject \\*"
msgstr "PyObject \\*"
#: c-api/structures.rst:430
#: c-api/structures.rst:428
msgid "T_OBJECT_EX"
msgstr ""
#: c-api/structures.rst:431
#: c-api/structures.rst:429
msgid "T_CHAR"
msgstr ""
#: c-api/structures.rst:432 c-api/structures.rst:437
#: c-api/structures.rst:430 c-api/structures.rst:435
msgid "char"
msgstr "char"
#: c-api/structures.rst:432
#: c-api/structures.rst:430
msgid "T_BYTE"
msgstr ""
#: c-api/structures.rst:433
#: c-api/structures.rst:431
msgid "T_UBYTE"
msgstr ""
#: c-api/structures.rst:433
#: c-api/structures.rst:431
msgid "unsigned char"
msgstr "``unsigned char``"
#: c-api/structures.rst:434
#: c-api/structures.rst:432
msgid "T_UINT"
msgstr ""
#: c-api/structures.rst:434
#: c-api/structures.rst:432
msgid "unsigned int"
msgstr "``unsigned int``"
#: c-api/structures.rst:435
#: c-api/structures.rst:433
msgid "T_USHORT"
msgstr ""
#: c-api/structures.rst:435
#: c-api/structures.rst:433
msgid "unsigned short"
msgstr "``unsigned short``"
#: c-api/structures.rst:436
#: c-api/structures.rst:434
msgid "T_ULONG"
msgstr ""
#: c-api/structures.rst:436
#: c-api/structures.rst:434
msgid "unsigned long"
msgstr "``unsigned long``"
#: c-api/structures.rst:437
#: c-api/structures.rst:435
msgid "T_BOOL"
msgstr ""
#: c-api/structures.rst:438
#: c-api/structures.rst:436
msgid "T_LONGLONG"
msgstr ""
#: c-api/structures.rst:438
#: c-api/structures.rst:436
msgid "long long"
msgstr ""
#: c-api/structures.rst:439
#: c-api/structures.rst:437
msgid "T_ULONGLONG"
msgstr ""
#: c-api/structures.rst:439
#: c-api/structures.rst:437
msgid "unsigned long long"
msgstr "``unsigned long long``"
#: c-api/structures.rst:440
#: c-api/structures.rst:438
msgid "T_PYSSIZET"
msgstr ""
#: c-api/structures.rst:443
#: c-api/structures.rst:441
msgid ""
":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:"
"`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:"
@ -607,7 +603,7 @@ msgid ""
"than :c:macro:`T_OBJECT`."
msgstr ""
#: c-api/structures.rst:450
#: c-api/structures.rst:448
msgid ""
":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` "
"for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:"
@ -616,7 +612,7 @@ msgid ""
"are set to ``NULL``)."
msgstr ""
#: c-api/structures.rst:458
#: c-api/structures.rst:456
msgid ""
"Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), "
"``PyMemberDef`` may contain definitions for the special members "
@ -627,99 +623,99 @@ msgid ""
"``T_PYSSIZET`` and ``READONLY``, for example::"
msgstr ""
#: c-api/structures.rst:475
#: c-api/structures.rst:473
msgid ""
"Get an attribute belonging to the object at address *obj_addr*. The "
"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error."
msgstr ""
#: c-api/structures.rst:482
#: c-api/structures.rst:480
msgid ""
"Set an attribute belonging to the object at address *obj_addr* to object "
"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns "
"``0`` if successful and a negative value on failure."
msgstr ""
#: c-api/structures.rst:489
#: c-api/structures.rst:487
msgid ""
"Structure to define property-like access for a type. See also description of "
"the :c:member:`PyTypeObject.tp_getset` slot."
msgstr ""
#: c-api/structures.rst:495
#: c-api/structures.rst:493
msgid "name"
msgstr ""
#: c-api/structures.rst:495
#: c-api/structures.rst:493
msgid "attribute name"
msgstr ""
#: c-api/structures.rst:497
#: c-api/structures.rst:495
msgid "get"
msgstr ""
#: c-api/structures.rst:497
#: c-api/structures.rst:495
msgid "getter"
msgstr ""
#: c-api/structures.rst:497
msgid "C Function to get the attribute"
#: c-api/structures.rst:495
msgid "C function to get the attribute"
msgstr ""
#: c-api/structures.rst:499
#: c-api/structures.rst:497
msgid "set"
msgstr ""
#: c-api/structures.rst:499
#: c-api/structures.rst:497
msgid "setter"
msgstr ""
#: c-api/structures.rst:499
#: c-api/structures.rst:497
msgid ""
"optional C function to set or delete the attribute, if omitted the attribute "
"is readonly"
msgstr ""
#: c-api/structures.rst:503
#: c-api/structures.rst:501
msgid "doc"
msgstr ""
#: c-api/structures.rst:503
#: c-api/structures.rst:501
msgid "optional docstring"
msgstr ""
#: c-api/structures.rst:505
#: c-api/structures.rst:503
msgid "closure"
msgstr ""
#: c-api/structures.rst:505
#: c-api/structures.rst:503
msgid "void \\*"
msgstr ""
#: c-api/structures.rst:505
#: c-api/structures.rst:503
msgid ""
"optional function pointer, providing additional data for getter and setter"
msgstr ""
#: c-api/structures.rst:510
#: c-api/structures.rst:508
msgid ""
"The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) "
"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) "
"and a function pointer (the associated ``closure``)::"
msgstr ""
#: c-api/structures.rst:515
#: c-api/structures.rst:513
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""
#: c-api/structures.rst:518
#: c-api/structures.rst:516
msgid ""
"``set`` functions take two :c:type:`PyObject*` parameters (the instance and "
"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and "
"the value to be set) and a function pointer (the associated ``closure``)::"
msgstr ""
#: c-api/structures.rst:523
#: c-api/structures.rst:521
msgid ""
"In case the attribute should be deleted the second parameter is ``NULL``. "
"Should return ``0`` on success or ``-1`` with a set exception on failure."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -118,7 +118,7 @@ msgid ""
"Return the current signal handler for signal *i*. This is a thin wrapper "
"around either :c:func:`sigaction` or :c:func:`signal`. Do not call those "
"functions directly! :c:type:`PyOS_sighandler_t` is a typedef alias for :c:"
"type:`void (\\*)(int)`."
"expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:114
@ -126,7 +126,7 @@ msgid ""
"Set the signal handler for signal *i* to be *h*; return the old signal "
"handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:"
"`signal`. Do not call those functions directly! :c:type:"
"`PyOS_sighandler_t` is a typedef alias for :c:type:`void (\\*)(int)`."
"`PyOS_sighandler_t` is a typedef alias for :c:expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:122
@ -147,8 +147,8 @@ msgstr ""
msgid ""
"Decode a byte string from the :term:`filesystem encoding and error handler`. "
"If the error handler is :ref:`surrogateescape error handler "
"<surrogateescape>`, undecodable bytes are decoded as characters in range U"
"+DC80..U+DCFF; and if a byte sequence can be decoded as a surrogate "
"<surrogateescape>`, undecodable bytes are decoded as characters in range "
"U+DC80..U+DCFF; and if a byte sequence can be decoded as a surrogate "
"character, the bytes are escaped using the surrogateescape error handler "
"instead of decoding them."
msgstr ""
@ -197,7 +197,7 @@ msgid ""
"<utf8-mode>`."
msgstr ""
#: c-api/sys.rst:208
#: c-api/sys.rst:166
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero;"
@ -215,7 +215,7 @@ msgstr ""
msgid ""
"Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` "
"to free the memory. Return ``NULL`` on encoding error or memory allocation "
"error"
"error."
msgstr ""
#: c-api/sys.rst:182
@ -236,6 +236,12 @@ msgid ""
"functions."
msgstr ""
#: c-api/sys.rst:208
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero."
msgstr ""
#: c-api/sys.rst:216
msgid "System Functions"
msgstr ""
@ -367,8 +373,8 @@ msgstr ""
#: c-api/sys.rst:325
msgid ""
"Note that ``#`` format characters should always be treated as "
"``Py_ssize_t``, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined."
"Note that ``#`` format characters should always be treated as :c:type:"
"`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined."
msgstr ""
#: c-api/sys.rst:328
@ -377,14 +383,14 @@ msgstr ""
#: c-api/sys.rst:334
msgid ""
"Require ``Py_ssize_t`` for ``#`` format characters. Previously, an "
"Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an "
"unavoidable deprecation warning was raised."
msgstr ""
#: c-api/sys.rst:340
msgid ""
"Append the callable *hook* to the list of active auditing hooks. Return zero "
"for success and non-zero on failure. If the runtime has been initialized, "
"on success and non-zero on failure. If the runtime has been initialized, "
"also set an error on failure. Hooks added through this API are called for "
"all interpreters created by the runtime."
msgstr ""
@ -406,7 +412,7 @@ msgstr ""
#: c-api/sys.rst:355
msgid ""
"The hook function is of type :c:type:`int (*)(const char *event, PyObject "
"The hook function is of type :c:expr:`int (*)(const char *event, PyObject "
"*args, void *userData)`, where *args* is guaranteed to be a :c:type:"
"`PyTupleObject`. The hook function is always called with the GIL held by the "
"Python interpreter that raised the event."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -218,7 +218,7 @@ msgstr ""
#: c-api/tuple.rst:163
msgid ""
"Describes a field of a struct sequence. As a struct sequence is modeled as a "
"tuple, all fields are typed as :c:type:`PyObject*`. The index in the :attr:"
"tuple, all fields are typed as :c:expr:`PyObject*`. The index in the :attr:"
"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field "
"of the struct sequence is described."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -49,7 +49,7 @@ msgstr ""
#: c-api/type.rst:42
msgid ""
"Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This "
"function is primarily meant for use with `Py_LIMITED_API`; the individual "
"function is primarily meant for use with ``Py_LIMITED_API``; the individual "
"flag bits are guaranteed to be stable across Python releases, but access to :"
"c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API."
msgstr ""
@ -356,7 +356,7 @@ msgid ""
msgstr ""
#: c-api/type.rst:275
msgid "Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API."
msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API."
msgstr ""
#: c-api/type.rst:279

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -30,8 +30,8 @@ msgid ""
"Create a :ref:`GenericAlias <types-genericalias>` object. Equivalent to "
"calling the Python class :class:`types.GenericAlias`. The *origin* and "
"*args* arguments set the ``GenericAlias``\\ 's ``__origin__`` and "
"``__args__`` attributes respectively. *origin* should be a :c:type:"
"`PyTypeObject*`, and *args* can be a :c:type:`PyTupleObject*` or any "
"``__args__`` attributes respectively. *origin* should be a :c:expr:"
"`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or any "
"``PyObject*``. If *args* passed is not a tuple, a 1-tuple is automatically "
"constructed and ``__args__`` is set to ``(args,)``. Minimal checking is done "
"for the arguments, so the function will succeed even if *origin* is not a "

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -35,12 +35,12 @@ msgstr ""
#: c-api/veryhigh.rst:19
msgid ""
"Note also that several of these functions take :c:type:`FILE*` parameters. "
"One particular issue which needs to be handled carefully is that the :c:type:"
"Note also that several of these functions take :c:expr:`FILE*` parameters. "
"One particular issue which needs to be handled carefully is that the :c:expr:"
"`FILE` structure for different C libraries can be different and "
"incompatible. Under Windows (at least), it is possible for dynamically "
"linked extensions to actually use different libraries, so care should be "
"taken that :c:type:`FILE*` parameters are only passed to these functions if "
"taken that :c:expr:`FILE*` parameters are only passed to these functions if "
"it is certain that they were created by the same library that the Python "
"runtime is using."
msgstr ""
@ -94,16 +94,17 @@ msgid ""
"`PyRun_InteractiveLoop`, otherwise return the result of :c:func:"
"`PyRun_SimpleFile`. *filename* is decoded from the filesystem encoding (:"
"func:`sys.getfilesystemencoding`). If *filename* is ``NULL``, this function "
"uses ``\"???\"`` as the filename."
"uses ``\"???\"`` as the filename. If *closeit* is true, the file is closed "
"before ``PyRun_SimpleFileExFlags()`` returns."
msgstr ""
#: c-api/veryhigh.rst:82
#: c-api/veryhigh.rst:84
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, "
"leaving the :c:type:`PyCompilerFlags`\\* argument set to ``NULL``."
"leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:88
#: c-api/veryhigh.rst:90
msgid ""
"Executes the Python source code from *command* in the :mod:`__main__` module "
"according to the *flags* argument. If :mod:`__main__` does not already "
@ -112,26 +113,26 @@ msgid ""
"information. For the meaning of *flags*, see below."
msgstr ""
#: c-api/veryhigh.rst:94
#: c-api/veryhigh.rst:96
msgid ""
"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this "
"function will not return ``-1``, but exit the process, as long as "
"``Py_InspectFlag`` is not set."
msgstr ""
#: c-api/veryhigh.rst:101
#: c-api/veryhigh.rst:103
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, "
"leaving *closeit* set to ``0`` and *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:107
#: c-api/veryhigh.rst:109
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:113
#: c-api/veryhigh.rst:115
msgid ""
"Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is "
"read from *fp* instead of an in-memory string. *filename* should be the name "
@ -140,20 +141,20 @@ msgid ""
"``PyRun_SimpleFileExFlags()`` returns."
msgstr ""
#: c-api/veryhigh.rst:120
#: c-api/veryhigh.rst:122
msgid ""
"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, \"rb"
"\")``). Otherwise, Python may not handle script file with LF line ending "
"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, "
"\"rb\")``). Otherwise, Python may not handle script file with LF line ending "
"correctly."
msgstr ""
#: c-api/veryhigh.rst:126
#: c-api/veryhigh.rst:128
msgid ""
"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:132
#: c-api/veryhigh.rst:134
msgid ""
"Read and execute a single statement from a file associated with an "
"interactive device according to the *flags* argument. The user will be "
@ -161,7 +162,7 @@ msgid ""
"term:`filesystem encoding and error handler`."
msgstr ""
#: c-api/veryhigh.rst:137
#: c-api/veryhigh.rst:139
msgid ""
"Returns ``0`` when the input was executed successfully, ``-1`` if there was "
"an exception, or an error code from the :file:`errcode.h` include file "
@ -170,13 +171,13 @@ msgid ""
"specifically if needed.)"
msgstr ""
#: c-api/veryhigh.rst:146
#: c-api/veryhigh.rst:148
msgid ""
"This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` "
"below, leaving *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:152
#: c-api/veryhigh.rst:154
msgid ""
"Read and execute statements from a file associated with an interactive "
"device until EOF is reached. The user will be prompted using ``sys.ps1`` "
@ -184,7 +185,7 @@ msgid ""
"and error handler`. Returns ``0`` at EOF or a negative number upon failure."
msgstr ""
#: c-api/veryhigh.rst:160
#: c-api/veryhigh.rst:162
msgid ""
"Can be set to point to a function with the prototype ``int func(void)``. "
"The function will be called when Python's interpreter prompt is about to "
@ -194,7 +195,7 @@ msgid ""
"the Python source code."
msgstr ""
#: c-api/veryhigh.rst:171
#: c-api/veryhigh.rst:173
msgid ""
"Can be set to point to a function with the prototype ``char *func(FILE "
"*stdin, FILE *stdout, char *prompt)``, overriding the default function used "
@ -205,26 +206,26 @@ msgid ""
"line-editing and tab-completion features."
msgstr ""
#: c-api/veryhigh.rst:180
#: c-api/veryhigh.rst:182
msgid ""
"The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:"
"func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred."
msgstr ""
#: c-api/veryhigh.rst:183
#: c-api/veryhigh.rst:185
msgid ""
"The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:"
"`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :"
"c:func:`PyMem_Realloc`."
msgstr ""
#: c-api/veryhigh.rst:190
#: c-api/veryhigh.rst:192
msgid ""
"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving "
"*flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:196
#: c-api/veryhigh.rst:198
msgid ""
"Execute Python source code from *str* in the context specified by the "
"objects *globals* and *locals* with the compiler flags specified by "
@ -233,31 +234,31 @@ msgid ""
"token that should be used to parse the source code."
msgstr ""
#: c-api/veryhigh.rst:202
#: c-api/veryhigh.rst:204
msgid ""
"Returns the result of executing the code as a Python object, or ``NULL`` if "
"an exception was raised."
msgstr ""
#: c-api/veryhigh.rst:208
#: c-api/veryhigh.rst:210
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*closeit* set to ``0`` and *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:214
#: c-api/veryhigh.rst:216
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:220
#: c-api/veryhigh.rst:222
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*closeit* set to ``0``."
msgstr ""
#: c-api/veryhigh.rst:226
#: c-api/veryhigh.rst:228
msgid ""
"Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read "
"from *fp* instead of an in-memory string. *filename* should be the name of "
@ -266,19 +267,19 @@ msgid ""
"`PyRun_FileExFlags` returns."
msgstr ""
#: c-api/veryhigh.rst:235
#: c-api/veryhigh.rst:237
msgid ""
"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:241
#: c-api/veryhigh.rst:243
msgid ""
"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, "
"with *optimize* set to ``-1``."
msgstr ""
#: c-api/veryhigh.rst:247
#: c-api/veryhigh.rst:249
msgid ""
"Parse and compile the Python source code in *str*, returning the resulting "
"code object. The start token is given by *start*; this can be used to "
@ -289,7 +290,7 @@ msgid ""
"returns ``NULL`` if the code cannot be parsed or compiled."
msgstr ""
#: c-api/veryhigh.rst:255
#: c-api/veryhigh.rst:257
msgid ""
"The integer *optimize* specifies the optimization level of the compiler; a "
"value of ``-1`` selects the optimization level of the interpreter as given "
@ -298,20 +299,20 @@ msgid ""
"or ``2`` (docstrings are removed too)."
msgstr ""
#: c-api/veryhigh.rst:266
#: c-api/veryhigh.rst:268
msgid ""
"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string "
"decoded from the :term:`filesystem encoding and error handler`."
msgstr ""
#: c-api/veryhigh.rst:273
#: c-api/veryhigh.rst:275
msgid ""
"This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the "
"code object, and global and local variables. The other arguments are set to "
"``NULL``."
msgstr ""
#: c-api/veryhigh.rst:280
#: c-api/veryhigh.rst:282
msgid ""
"Evaluate a precompiled code object, given a particular environment for its "
"evaluation. This environment consists of a dictionary of global variables, "
@ -320,7 +321,7 @@ msgid ""
"only_parameter>` arguments and a closure tuple of cells."
msgstr ""
#: c-api/veryhigh.rst:289
#: c-api/veryhigh.rst:291
#, fuzzy
msgid ""
"The C structure of the objects used to describe frame objects. The fields of "
@ -329,13 +330,13 @@ msgstr ""
"La structure C utilisée pour décrire les objets *Code*. Les attributs de "
"cette structure sont sujets à changer à tout moment."
#: c-api/veryhigh.rst:295
#: c-api/veryhigh.rst:297
msgid ""
"Evaluate an execution frame. This is a simplified interface to :c:func:"
"`PyEval_EvalFrameEx`, for backward compatibility."
msgstr ""
#: c-api/veryhigh.rst:301
#: c-api/veryhigh.rst:303
msgid ""
"This is the main, unvarnished function of Python interpretation. The code "
"object associated with the execution frame *f* is executed, interpreting "
@ -345,7 +346,7 @@ msgid ""
"of generator objects."
msgstr ""
#: c-api/veryhigh.rst:308
#: c-api/veryhigh.rst:310
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -353,33 +354,33 @@ msgstr ""
"Cette fonction inclut maintenant une assertion de débogage afin d'assurer "
"qu'elle ne passe pas sous silence une exception active."
#: c-api/veryhigh.rst:315
#: c-api/veryhigh.rst:317
msgid ""
"This function changes the flags of the current evaluation frame, and returns "
"true on success, false on failure."
msgstr ""
#: c-api/veryhigh.rst:323
#: c-api/veryhigh.rst:325
msgid ""
"The start symbol from the Python grammar for isolated expressions; for use "
"with :c:func:`Py_CompileString`."
msgstr ""
#: c-api/veryhigh.rst:331
#: c-api/veryhigh.rst:333
msgid ""
"The start symbol from the Python grammar for sequences of statements as read "
"from a file or other source; for use with :c:func:`Py_CompileString`. This "
"is the symbol to use when compiling arbitrarily long Python source code."
msgstr ""
#: c-api/veryhigh.rst:340
#: c-api/veryhigh.rst:342
msgid ""
"The start symbol from the Python grammar for a single statement; for use "
"with :c:func:`Py_CompileString`. This is the symbol used for the interactive "
"interpreter loop."
msgstr ""
#: c-api/veryhigh.rst:347
#: c-api/veryhigh.rst:349
msgid ""
"This is the structure used to hold compiler flags. In cases where code is "
"only being compiled, it is passed as ``int flags``, and in cases where code "
@ -387,34 +388,34 @@ msgid ""
"case, ``from __future__ import`` can modify *flags*."
msgstr ""
#: c-api/veryhigh.rst:352
#: c-api/veryhigh.rst:354
msgid ""
"Whenever ``PyCompilerFlags *flags`` is ``NULL``, :attr:`cf_flags` is treated "
"as equal to ``0``, and any modification due to ``from __future__ import`` is "
"discarded."
msgstr ""
#: c-api/veryhigh.rst:358
#: c-api/veryhigh.rst:360
msgid "Compiler flags."
msgstr ""
#: c-api/veryhigh.rst:362
#: c-api/veryhigh.rst:364
msgid ""
"*cf_feature_version* is the minor Python version. It should be initialized "
"to ``PY_MINOR_VERSION``."
msgstr ""
#: c-api/veryhigh.rst:365
#: c-api/veryhigh.rst:367
msgid ""
"The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` "
"flag is set in *cf_flags*."
msgstr ""
#: c-api/veryhigh.rst:368
#: c-api/veryhigh.rst:370
msgid "Added *cf_feature_version* field."
msgstr ""
#: c-api/veryhigh.rst:374
#: c-api/veryhigh.rst:376
msgid ""
"This bit can be set in *flags* to cause division operator ``/`` to be "
"interpreted as \"true division\" according to :pep:`238`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-16 17:25+0100\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -58,7 +58,7 @@ msgid ""
"a callable object that receives notification when *ob* is garbage collected; "
"it should accept a single parameter, which will be the weak reference object "
"itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a "
"weakly-referencable object, or if *callback* is not callable, ``None``, or "
"weakly referencable object, or if *callback* is not callable, ``None``, or "
"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie "
@ -81,7 +81,7 @@ msgid ""
"can be a callable object that receives notification when *ob* is garbage "
"collected; it should accept a single parameter, which will be the weak "
"reference object itself. *callback* may also be ``None`` or ``NULL``. If "
"*ob* is not a weakly-referencable object, or if *callback* is not callable, "
"*ob* is not a weakly referencable object, or if *callback* is not callable, "
"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci "

View File

@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"PO-Revision-Date: 2021-01-28 14:22+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2022-04-07 14:48-0400\n"
"Last-Translator: Jean-Michel Laprise <jmichel.dev@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.0.1\n"
#: copyright.rst:3
msgid "Copyright"
@ -24,9 +24,9 @@ msgid "Python and this documentation is:"
msgstr "Python et cette documentation sont :"
#: copyright.rst:7
msgid "Copyright © 2001-2021 Python Software Foundation. All rights reserved."
msgid "Copyright © 2001-2022 Python Software Foundation. All rights reserved."
msgstr ""
"Copyright © 2001-2021 Python Software Foundation. Tous droits réservés."
"Copyright © 2001-2022 Python Software Foundation. Tous droits réservés."
#: copyright.rst:9
msgid "Copyright © 2000 BeOpen.com. All rights reserved."

3
dict
View File

@ -25,6 +25,7 @@ c99
chacha20
cadriciel
cadriciels
capturants
catucci
cobjects
composabilité
@ -36,6 +37,7 @@ contribués
coroutine
coroutines
cpython
CSV
curryfication
cython
d'allocateurs
@ -66,6 +68,7 @@ désérialisées
Distutils
encodable
ethnomathématiques
Excel
farrugia
finaliseur
frederik

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-12-11 12:30+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 12:23+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -1369,8 +1369,8 @@ msgid ""
"component). These are on top of the system default and those supplied to :"
"meth:`add_library_dir` and/or :meth:`set_library_dirs`. "
"*runtime_library_dirs* is a list of directories that will be embedded into "
"the shared library and used to search for other shared libraries that \\*it"
"\\* depends on at run-time. (This may only be relevant on Unix.)"
"the shared library and used to search for other shared libraries that "
"\\*it\\* depends on at run-time. (This may only be relevant on Unix.)"
msgstr ""
"*library_dirs*, s'il est fourni, doit être une liste de répertoires à "
"rechercher pour les bibliothèques qui ont été spécifiées comme des "
@ -2253,8 +2253,9 @@ msgstr ""
"environ``."
#: distutils/apiref.rst:1201
#, fuzzy
msgid ""
"Note that this is not a fully-fledged string interpolation function. A valid "
"Note that this is not a full-fledged string interpolation function. A valid "
"``$variable`` can consist only of upper and lower case letters, numbers and "
"an underscore. No { } or ( ) style quoting is available."
msgstr ""
@ -2555,7 +2556,7 @@ msgid ""
"a corresponding *short_option*. All option tuples must have long options."
msgstr ""
"Si une option prend un argument, sa *long_option* doit se terminer par "
"``'='``. *short_option* doit être un seul caractère, jamais ``':'`'. "
"``'='``. *short_option* doit être un seul caractère, jamais ``':'``. "
"*short_option* doit être ``None`` si l'option n'a pas de forme courte "
"correspondante. Tous les triplets d'options doivent avoir des options "
"longues."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-12-11 12:33+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -39,12 +39,12 @@ msgid ""
"word is already spoken for in Python. (And \"installer\" is a term specific "
"to the world of mainstream desktop systems.)"
msgstr ""
"Une \"distribution compilée\" vous fait sûrement penser à un \"paquet binaire"
"\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est "
"cependant pas forcément un binaire, il peut ne contenir que des sources "
"Python et / ou du *byte-code*; et nous n'appelons pas ça un *package* parce "
"que ce mot est déjà utilisé dans Python (et \"installateur\" est un terme "
"spécifique au monde des systèmes de bureau)."
"Une \"distribution compilée\" vous fait sûrement penser à un \"paquet "
"binaire\" ou à un \"installateur\" (tout dépend de votre environnement). Ce "
"n'est cependant pas forcément un binaire, il peut ne contenir que des "
"sources Python et / ou du *byte-code*; et nous n'appelons pas ça un "
"*package* parce que ce mot est déjà utilisé dans Python (et \"installateur\" "
"est un terme spécifique au monde des systèmes de bureau)."
#: distutils/builtdist.rst:16
msgid ""
@ -324,12 +324,12 @@ msgstr ""
msgid ""
"You don't have to use the :command:`bdist` command with the :option:`!--"
"formats` option; you can also use the command that directly implements the "
"format you're interested in. Some of these :command:`bdist` \"sub-commands"
"\" actually generate several similar formats; for instance, the :command:"
"`bdist_dumb` command generates all the \"dumb\" archive formats (``tar``, "
"``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :command:"
"`bdist_rpm` generates both binary and source RPMs. The :command:`bdist` sub-"
"commands, and the formats generated by each, are:"
"format you're interested in. Some of these :command:`bdist` \"sub-"
"commands\" actually generate several similar formats; for instance, the :"
"command:`bdist_dumb` command generates all the \"dumb\" archive formats "
"(``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :"
"command:`bdist_rpm` generates both binary and source RPMs. The :command:"
"`bdist` sub-commands, and the formats generated by each, are:"
msgstr ""
"Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :"
"option:`!--formats`; Vous pouvez également utiliser la commande qui "

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-12-11 12:42+0100\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2022-10-18 12:31+0200\n"
"Last-Translator: Eric Régnier <utopman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -119,7 +119,7 @@ msgstr ""
"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations "
"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le "
"script d'installation peut être amené à être exécuté plusieurs fois au cours "
"de la compilation et de l'installation du module. "
"de la compilation et de l'installation du module."
#: distutils/introduction.rst:58
msgid ""
@ -150,7 +150,7 @@ msgid ""
msgstr ""
"ces arguments nommés tombent dans deux catégories : métadonnées du paquet "
"(nom, numéro de version) et des informations sur le contenu du paquet paquet "
"(une liste de purs modules Python, dans ce cas) ; "
"(une liste de purs modules Python, dans ce cas) ;"
#: distutils/introduction.rst:76
msgid ""
@ -325,13 +325,13 @@ msgid ""
"(Note that currently, the Distutils only handles C/C++ extensions for "
"Python.)"
msgstr ""
"un module écrit dans un langage de bas niveau de l'implémentation Python: C/C"
"++ pour Python, Java pour Jython. Typiquement contenu dans un unique fichier "
"pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`.so`) pour "
"des extensions Python sous Unix, un fichier DLL (étant donné l'extension :"
"file:`.pyd`) pour les extensions Python sous Windows, ou un fichier de "
"classe Java pour les extensions Jython (notez qu'actuellement, Distutils "
"gère seulement les extensions Python C/C++)."
"un module écrit dans un langage de bas niveau de l'implémentation Python: C/"
"C++ pour Python, Java pour Jython. Typiquement contenu dans un unique "
"fichier pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`."
"so`) pour des extensions Python sous Unix, un fichier DLL (étant donné "
"l'extension :file:`.pyd`) pour les extensions Python sous Windows, ou un "
"fichier de classe Java pour les extensions Jython (notez qu'actuellement, "
"Distutils gère seulement les extensions Python C/C++)."
#: distutils/introduction.rst:164
msgid "package"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"PO-Revision-Date: 2021-12-11 12:42+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2022-10-18 16:06+0200\n"
"Last-Translator: Philippe GALVAN\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -894,7 +894,7 @@ msgstr ""
"au répertoire contenant le paquet (l'information du mappage ``package_dir`` "
"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers "
"fassent partie du répertoire source du paquet. Ils peuvent également "
"contenir des motifs `glob`."
"contenir des motifs ``glob``."
#: distutils/setupscript.rst:484
msgid ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-31 11:33+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2020-02-04 21:21+0100\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -112,7 +112,7 @@ msgstr "Fichier *tar* compressé par *bzip2* (:file:`.tar.bz2`)"
#: distutils/sourcedist.rst:37 distutils/sourcedist.rst:43
msgid "\\(5)"
msgstr ""
msgstr "\\(5)"
#: distutils/sourcedist.rst:37
msgid "``xztar``"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:46+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -44,8 +44,9 @@ msgid "The initialization function has the signature:"
msgstr "La fonction d'initialisation doit avoir le prototype :"
#: extending/building.rst:20
#, fuzzy
msgid ""
"It returns either a fully-initialized module, or a :c:type:`PyModuleDef` "
"It returns either a fully initialized module, or a :c:type:`PyModuleDef` "
"instance. See :ref:`initializing-modules` for details."
msgstr ""
"Elle doit donner soit un module entièrement initialisé, soit une instance "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:50+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -143,19 +143,19 @@ msgstr ""
msgid ""
"All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` "
"or ``PY``, except those defined in standard header files. For convenience, "
"and since they are used extensively by the Python interpreter, ``\"Python.h"
"\"`` includes a few standard header files: ``<stdio.h>``, ``<string.h>``, "
"and since they are used extensively by the Python interpreter, ``\"Python."
"h\"`` includes a few standard header files: ``<stdio.h>``, ``<string.h>``, "
"``<errno.h>``, and ``<stdlib.h>``. If the latter header file does not exist "
"on your system, it declares the functions :c:func:`malloc`, :c:func:`free` "
"and :c:func:`realloc` directly."
msgstr ""
"Tous les symboles exposés par :file:`Python.h` sont préfixés de ``Py`` ou "
"``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le "
"confort, et comme ils sont largement utilisés par l'interpréteur Python, ``"
"\"Python.h\"`` inclut lui-même quelques d'en-têtes standard : ``<stdio.h>``, "
"``<string.h>``, ``<errno.h>`` et ``<stdlib.h>``. Si ce dernier n'existe pas "
"sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` "
"et :c:func:`realloc` directement."
"confort, et comme ils sont largement utilisés par l'interpréteur Python, "
"``\"Python.h\"`` inclut lui-même quelques d'en-têtes standard : ``<stdio."
"h>``, ``<string.h>``, ``<errno.h>`` et ``<stdlib.h>``. Si ce dernier "
"n'existe pas sur votre système, il déclare les fonctions :c:func:`malloc`, :"
"c:func:`free` et :c:func:`realloc` directement."
#: extending/extending.rst:83
msgid ""
@ -311,14 +311,13 @@ msgstr ""
msgid ""
"When a function *f* that calls another function *g* detects that the latter "
"fails, *f* should itself return an error value (usually ``NULL`` or "
"``-1``). It should *not* call one of the :c:func:`PyErr_\\*` functions --- "
"one has already been called by *g*. *f*'s caller is then supposed to also "
"return an error indication to *its* caller, again *without* calling :c:func:"
"`PyErr_\\*`, and so on --- the most detailed cause of the error was already "
"reported by the function that first detected it. Once the error reaches the "
"Python interpreter's main loop, this aborts the currently executing Python "
"code and tries to find an exception handler specified by the Python "
"programmer."
"``-1``). It should *not* call one of the ``PyErr_*`` functions --- one has "
"already been called by *g*. *f*'s caller is then supposed to also return an "
"error indication to *its* caller, again *without* calling ``PyErr_*``, and "
"so on --- the most detailed cause of the error was already reported by the "
"function that first detected it. Once the error reaches the Python "
"interpreter's main loop, this aborts the currently executing Python code and "
"tries to find an exception handler specified by the Python programmer."
msgstr ""
"Lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que "
"cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour "
@ -333,12 +332,13 @@ msgstr ""
"d'exception spécifié par le développeur Python."
#: extending/extending.rst:168
#, fuzzy
msgid ""
"(There are situations where a module can actually give a more detailed error "
"message by calling another :c:func:`PyErr_\\*` function, and in such cases "
"it is fine to do so. As a general rule, however, this is not necessary, and "
"can cause information about the cause of the error to be lost: most "
"operations can fail for a variety of reasons.)"
"message by calling another ``PyErr_*`` function, and in such cases it is "
"fine to do so. As a general rule, however, this is not necessary, and can "
"cause information about the cause of the error to be lost: most operations "
"can fail for a variety of reasons.)"
msgstr ""
"(Il y a des situations où un module peut effectivement donner un message "
"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, "
@ -543,9 +543,10 @@ msgstr ""
"objets dans le tas en Python !)"
#: extending/extending.rst:300
#, fuzzy
msgid ""
"If you have a C function that returns no useful argument (a function "
"returning :c:type:`void`), the corresponding Python function must return "
"returning :c:expr:`void`), the corresponding Python function must return "
"``None``. You need this idiom to do so (which is implemented by the :c:"
"macro:`Py_RETURN_NONE` macro)::"
msgstr ""
@ -1615,7 +1616,7 @@ msgstr ""
msgid ""
"Python provides a special mechanism to pass C-level information (pointers) "
"from one extension module to another one: Capsules. A Capsule is a Python "
"data type which stores a pointer (:c:type:`void \\*`). Capsules can only be "
"data type which stores a pointer (:c:expr:`void \\*`). Capsules can only be "
"created and accessed via their C API, but they can be passed around like any "
"other Python object. In particular, they can be assigned to a name in an "
"extension module's namespace. Other extension modules can then import this "
@ -1644,7 +1645,7 @@ msgstr ""
#, fuzzy
msgid ""
"Whichever method you choose, it's important to name your Capsules properly. "
"The function :c:func:`PyCapsule_New` takes a name parameter (:c:type:`const "
"The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const "
"char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly "
"encourage you to specify a name. Properly named Capsules provide a degree "
"of runtime type-safety; there is no feasible way to tell one unnamed Capsule "
@ -1679,11 +1680,12 @@ msgstr ""
"chargent contient l'API C correcte."
#: extending/extending.rst:1203
#, fuzzy
msgid ""
"The following example demonstrates an approach that puts most of the burden "
"on the writer of the exporting module, which is appropriate for commonly "
"used library modules. It stores all C API pointers (just one in the "
"example!) in an array of :c:type:`void` pointers which becomes the value of "
"example!) in an array of :c:expr:`void` pointers which becomes the value of "
"a Capsule. The header file corresponding to the module provides a macro that "
"takes care of importing the module and retrieving its C API pointers; client "
"modules only have to call this macro before accessing the C API."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-07-04 11:38+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -67,10 +67,11 @@ msgid "Recommended third party tools"
msgstr "Les outils tiers recommandés"
#: extending/index.rst:28
#, fuzzy
msgid ""
"This guide only covers the basic tools for creating extensions provided as "
"part of this version of CPython. Third party tools like `Cython <http://"
"cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, `SWIG <http://www."
"part of this version of CPython. Third party tools like `Cython <https://"
"cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, `SWIG <https://www."
"swig.org>`_ and `Numba <https://numba.pydata.org/>`_ offer both simpler and "
"more sophisticated approaches to creating C and C++ extensions for Python."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-04 18:14+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-02-07 20:03+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -161,7 +161,7 @@ msgstr ""
msgid ""
"If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the "
"interpreter will supply a representation that uses the type's :c:member:"
"`~PyTypeObject.tp_name` and a uniquely-identifying value for the object."
"`~PyTypeObject.tp_name` and a uniquely identifying value for the object."
msgstr ""
#: extending/newtypes.rst:181
@ -197,16 +197,16 @@ msgstr ""
msgid ""
"Python supports two pairs of attribute handlers; a type that supports "
"attributes only needs to implement the functions for one pair. The "
"difference is that one pair takes the name of the attribute as a :c:type:"
"`char\\*`, while the other accepts a :c:type:`PyObject\\*`. Each type can "
"use whichever pair makes more sense for the implementation's convenience. ::"
"difference is that one pair takes the name of the attribute as a :c:expr:"
"`char\\*`, while the other accepts a :c:expr:`PyObject*`. Each type can use "
"whichever pair makes more sense for the implementation's convenience. ::"
msgstr ""
#: extending/newtypes.rst:220
msgid ""
"If accessing attributes of an object is always a simple operation (this will "
"be explained shortly), there are generic implementations which can be used "
"to provide the :c:type:`PyObject\\*` version of the attribute management "
"to provide the :c:expr:`PyObject*` version of the attribute management "
"functions. The actual need for type-specific attribute handlers almost "
"completely disappeared starting with Python 2.2, though there are many "
"examples which have not been updated to use some of the new generic "
@ -364,9 +364,9 @@ msgstr "Gestion des attributs de type spécifiques"
#: extending/newtypes.rst:342
msgid ""
"For simplicity, only the :c:type:`char\\*` version will be demonstrated "
"For simplicity, only the :c:expr:`char\\*` version will be demonstrated "
"here; the type of the name parameter is the only difference between the :c:"
"type:`char\\*` and :c:type:`PyObject\\*` flavors of the interface. This "
"expr:`char\\*` and :c:expr:`PyObject*` flavors of the interface. This "
"example effectively does the same thing as the generic example above, but "
"does not use the generic support added in Python 2.2. It explains how the "
"handler functions are called, so that if you do need to extend their "
@ -593,8 +593,9 @@ msgstr ""
"faire deux choses :"
#: extending/newtypes.rst:575
#, fuzzy
msgid ""
"Include a :c:type:`PyObject\\*` field in the C object structure dedicated to "
"Include a :c:expr:`PyObject*` field in the C object structure dedicated to "
"the weak reference mechanism. The object's constructor should leave it "
"``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject."
"tp_alloc`)."
@ -624,7 +625,8 @@ msgstr ""
"par le champ requis ::"
#: extending/newtypes.rst:592
msgid "And the corresponding member in the statically-declared type object::"
#, fuzzy
msgid "And the corresponding member in the statically declared type object::"
msgstr ""
"Et le membre correspondant dans l'objet de type déclaré statiquement ::"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-09-25 11:25+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 12:22+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -37,9 +37,10 @@ msgid "The Basics"
msgstr "Les bases"
#: extending/newtypes_tutorial.rst:26
#, fuzzy
msgid ""
"The :term:`CPython` runtime sees all Python objects as variables of type :c:"
"type:`PyObject\\*`, which serves as a \"base type\" for all Python objects. "
"expr:`PyObject*`, which serves as a \"base type\" for all Python objects. "
"The :c:type:`PyObject` structure itself only contains the object's :term:"
"`reference count` and a pointer to the object's \"type object\". This is "
"where the action is; the type object determines which (C) functions get "
@ -73,7 +74,7 @@ msgid ""
msgstr ""
"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici "
"donc un module minimaliste mais suffisant qui définit un nouveau type nommé :"
"class:`Custom` dans le module d'extension :mod:`custom` : "
"class:`Custom` dans le module d'extension :mod:`custom` :"
#: extending/newtypes_tutorial.rst:43
msgid ""
@ -127,12 +128,13 @@ msgid "The first bit is::"
msgstr "Commençons par ::"
#: extending/newtypes_tutorial.rst:67
#, fuzzy
msgid ""
"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory "
"at the start of each object struct and defines a field called ``ob_base`` of "
"type :c:type:`PyObject`, containing a pointer to a type object and a "
"reference count (these can be accessed using the macros :c:macro:`Py_REFCNT` "
"and :c:macro:`Py_TYPE` respectively). The reason for the macro is to "
"reference count (these can be accessed using the macros :c:macro:`Py_TYPE` "
"and :c:macro:`Py_REFCNT` respectively). The reason for the macro is to "
"abstract away the layout and to enable additional fields in :ref:`debug "
"builds <debug-build>`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2020-06-28 15:18+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -215,16 +215,16 @@ msgid "Using DLLs in Practice"
msgstr "Utiliser les DLL en pratique"
#: extending/windows.rst:108
#, fuzzy
msgid ""
"Windows Python is built in Microsoft Visual C++; using other compilers may "
"or may not work (though Borland seems to). The rest of this section is MSVC+"
"+ specific."
"or may not work. The rest of this section is MSVC++ specific."
msgstr ""
"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser "
"d'autres compilateurs pourrait fonctionner, ou pas (cependant Borland a "
"l'air de fonctionner). Le reste de cette section est spécifique à MSVC++."
#: extending/windows.rst:112
#: extending/windows.rst:111
msgid ""
"When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the "
"linker. To build two DLLs, spam and ni (which uses C functions found in "
@ -234,7 +234,7 @@ msgstr ""
"`pythonXY.lib` au lieur. Pour construire deux DLL, spam et ni (qui utilisent "
"des fonctions C trouvées dans spam), vous pouvez utiliser ces commandes ::"
#: extending/windows.rst:119
#: extending/windows.rst:118
msgid ""
"The first command created three files: :file:`spam.obj`, :file:`spam.dll` "
"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python "
@ -246,7 +246,7 @@ msgstr ""
"Python (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver "
"le code Python grâce à :file:`pythonXY.lib`."
#: extending/windows.rst:124
#: extending/windows.rst:123
msgid ""
"The second command created :file:`ni.dll` (and :file:`.obj` and :file:`."
"lib`), which knows how to find the necessary functions from spam, and also "
@ -256,7 +256,7 @@ msgstr ""
"qui sait comment trouver les fonctions nécessaires dans spam, ainsi qu'à "
"partir de l'exécutable Python."
#: extending/windows.rst:128
#: extending/windows.rst:127
msgid ""
"Not every identifier is exported to the lookup table. If you want any other "
"modules (including Python) to be able to see your identifiers, you have to "
@ -269,7 +269,7 @@ msgstr ""
"``void _declspec(dllexport) initspam(void)`` ou ``PyObject "
"_declspec(dllexport) *NiGetSpamData(void)``."
#: extending/windows.rst:133
#: extending/windows.rst:132
msgid ""
"Developer Studio will throw in a lot of import libraries that you do not "
"really need, adding about 100K to your executable. To get rid of them, use "

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"PO-Revision-Date: 2021-11-06 13:18+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 16:08+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -315,12 +315,13 @@ msgid "Starting in Python 3.8, you can!"
msgstr "Depuis Python 3.8, c'est possible !"
#: faq/design.rst:158
#, fuzzy
msgid ""
"Assignment expressions using the walrus operator `:=` assign a variable in "
"Assignment expressions using the walrus operator ``:=`` assign a variable in "
"an expression::"
msgstr ""
"Les expressions d'affectation qui utilisent l'opérateur morse `:=` affectent "
"une variable dans une expression ::"
"Les expressions d'affectation qui utilisent l'opérateur morse ``:=`` "
"affectent une variable dans une expression ::"
#: faq/design.rst:164
msgid "See :pep:`572` for more information."
@ -374,7 +375,7 @@ msgstr ""
"``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode "
"``write()``."
#: faq/design.rst:207
#: faq/design.rst:189
msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html"
msgstr ""
"https://mail.python.org/pipermail/python-3000/2006-November/004643.html"
@ -520,7 +521,7 @@ msgstr ""
"possibilités, vous pouvez créer un dictionnaire faisant correspondre des "
"valeurs à des fonctions à appeler. Par exemple ::"
#: faq/design.rst:279
#: faq/design.rst:276
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::"
@ -529,7 +530,7 @@ msgstr ""
"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes "
"avec un nom donné ::"
#: faq/design.rst:291
#: faq/design.rst:288
msgid ""
"It's suggested that you use a prefix for the method names, such as "
"``visit_`` in this example. Without such a prefix, if values are coming "
@ -541,7 +542,7 @@ msgstr ""
"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler "
"n'importe quelle méthode sur votre objet."
#: faq/design.rst:297
#: faq/design.rst:294
msgid ""
"Can't you emulate threads in the interpreter instead of relying on an OS-"
"specific thread implementation?"
@ -549,7 +550,7 @@ msgstr ""
"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que "
"se baser sur les implémentations spécifiques aux systèmes d'exploitation ?"
#: faq/design.rst:299
#: faq/design.rst:296
msgid ""
"Answer 1: Unfortunately, the interpreter pushes at least one C stack frame "
"for each Python stack frame. Also, extensions can call back into Python at "
@ -562,7 +563,7 @@ msgstr ""
"conséquent, une implémentation complète des fils d'exécution nécessiterait "
"une gestion complète pour le C."
#: faq/design.rst:304
#: faq/design.rst:301
msgid ""
"Answer 2: Fortunately, there is `Stackless Python <https://github.com/"
"stackless-dev/stackless/wiki>`_, which has a completely redesigned "
@ -572,12 +573,12 @@ msgstr ""
"stackless-dev/stackless/wiki>`_, qui a complètement ré-architecturé la "
"boucle principale de l'interpréteur afin de ne pas utiliser la pile C."
#: faq/design.rst:309
#: faq/design.rst:306
msgid "Why can't lambda expressions contain statements?"
msgstr ""
"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?"
#: faq/design.rst:311
#: faq/design.rst:308
msgid ""
"Python lambda expressions cannot contain statements because Python's "
"syntactic framework can't handle statements nested inside expressions. "
@ -593,11 +594,12 @@ msgstr ""
"Python sont seulement une notation concise si vous êtes trop paresseux pour "
"définir une fonction."
#: faq/design.rst:317
#: faq/design.rst:314
#, fuzzy
msgid ""
"Functions are already first class objects in Python, and can be declared in "
"a local scope. Therefore the only advantage of using a lambda instead of a "
"locally-defined function is that you don't need to invent a name for the "
"locally defined function is that you don't need to invent a name for the "
"function -- but that's just a local variable to which the function object "
"(which is exactly the same type of object that a lambda expression yields) "
"is assigned!"
@ -609,18 +611,18 @@ msgstr ""
"variable locale à laquelle est affecté l'objet fonction (qui est exactement "
"le même type d'objet que celui renvoyé par une expression lambda) !"
#: faq/design.rst:325
#: faq/design.rst:322
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:327
#: faq/design.rst:324
#, fuzzy
msgid ""
"`Cython <http://cython.org/>`_ compiles a modified version of Python with "
"optional annotations into C extensions. `Nuitka <http://www.nuitka.net/>`_ "
"`Cython <https://cython.org/>`_ compiles a modified version of Python with "
"optional annotations into C extensions. `Nuitka <https://www.nuitka.net/>`_ "
"is an up-and-coming compiler of Python into C++ code, aiming to support the "
"full Python language. For compiling to Java you can consider `VOC <https://"
"voc.readthedocs.io>`_."
"full Python language."
msgstr ""
"`Cython <http://cython.org/>`_ compile une version modifiée de Python avec "
"des annotations optionnelles en extensions C. `Nuitka <http://www.nuitka.net/"
@ -628,11 +630,11 @@ msgstr ""
"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC "
"<https://voc.readthedocs.io>`_."
#: faq/design.rst:335
#: faq/design.rst:331
msgid "How does Python manage memory?"
msgstr "Comment Python gère la mémoire ?"
#: faq/design.rst:337
#: faq/design.rst:333
msgid ""
"The details of Python memory management depend on the implementation. The "
"standard implementation of Python, :term:`CPython`, uses reference counting "
@ -651,11 +653,12 @@ msgstr ""
"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:345
#: faq/design.rst:341
#, fuzzy
msgid ""
"Other implementations (such as `Jython <http://www.jython.org>`_ or `PyPy "
"<http://www.pypy.org>`_), however, can rely on a different mechanism such as "
"a full-blown garbage collector. This difference can cause some subtle "
"Other implementations (such as `Jython <https://www.jython.org>`_ or `PyPy "
"<https://www.pypy.org>`_), however, can rely on a different mechanism such "
"as a full-blown garbage collector. This difference can cause some subtle "
"porting problems if your Python code depends on the behavior of the "
"reference counting implementation."
msgstr ""
@ -665,7 +668,7 @@ msgstr ""
"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:351
#: faq/design.rst:347
msgid ""
"In some Python implementations, the following code (which is fine in "
"CPython) will probably run out of file descriptors::"
@ -674,7 +677,7 @@ msgstr ""
"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de "
"fichiers ::"
#: faq/design.rst:358
#: faq/design.rst:354
msgid ""
"Indeed, using CPython's reference counting and destructor scheme, each new "
"assignment to *f* closes the previous file. With a traditional GC, however, "
@ -686,7 +689,7 @@ msgstr ""
"Cependant, avec un ramasse-miettes classique, ces objets sont collectés (et "
"fermés) à intervalles irréguliers, et potentiellement longs."
#: faq/design.rst:363
#: faq/design.rst:359
msgid ""
"If you want to write code that will work with any Python implementation, you "
"should explicitly close the file or use the :keyword:`with` statement; this "
@ -697,13 +700,13 @@ msgstr ""
"utiliser l'instruction :keyword:`with` ; ceci fonctionne indépendamment du "
"système de gestion de la mémoire ::"
#: faq/design.rst:373
#: faq/design.rst:369
msgid "Why doesn't CPython use a more traditional garbage collection scheme?"
msgstr ""
"Pourquoi CPython n'utilise-t-il pas un modèle de ramasse-miettes plus "
"traditionnel ?"
#: faq/design.rst:375
#: faq/design.rst:371
msgid ""
"For one thing, this is not a C standard feature and hence it's not portable. "
"(Yes, we know about the Boehm GC library. It has bits of assembler code for "
@ -718,7 +721,7 @@ msgstr ""
"transparente, elle ne l'est pas complètement ; des correctifs sont "
"nécessaires afin que Python fonctionne correctement avec.)"
#: faq/design.rst:381
#: faq/design.rst:377
msgid ""
"Traditional GC also becomes a problem when Python is embedded into other "
"applications. While in a standalone Python it's fine to replace the "
@ -736,12 +739,12 @@ msgstr ""
"de Python. À l'heure actuelle, CPython fonctionne avec n'importe quelle "
"implémentation correcte de ``malloc()`` et ``free()``."
#: faq/design.rst:390
#: faq/design.rst:386
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:392
#: faq/design.rst:388
msgid ""
"Objects referenced from the global namespaces of Python modules are not "
"always deallocated when Python exits. This may happen if there are circular "
@ -758,7 +761,7 @@ msgstr ""
"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à "
"détruire chaque objet."
#: faq/design.rst:399
#: faq/design.rst:395
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."
@ -767,12 +770,12 @@ msgstr ""
"utilisez le module :mod:`atexit` pour exécuter une fonction qui va forcer "
"ces destructions."
#: faq/design.rst:404
#: faq/design.rst:400
msgid "Why are there separate tuple and list data types?"
msgstr ""
"Pourquoi les *n*-uplets et les *list* sont deux types de données séparés ?"
#: faq/design.rst:406
#: faq/design.rst:402
msgid ""
"Lists and tuples, while similar in many respects, are generally used in "
"fundamentally different ways. Tuples can be thought of as being similar to "
@ -789,7 +792,7 @@ msgstr ""
"des coordonnées cartésiennes sont correctement représentées par un *n*-uplet "
"de deux ou trois nombres."
#: faq/design.rst:413
#: faq/design.rst:409
msgid ""
"Lists, on the other hand, are more like arrays in other languages. They "
"tend to hold a varying number of objects all of which have the same type and "
@ -806,7 +809,7 @@ msgstr ""
"problème que vous ajoutiez un ou deux fichiers supplémentaires dans le "
"dossier."
#: faq/design.rst:420
#: faq/design.rst:416
msgid ""
"Tuples are immutable, meaning that once a tuple has been created, you can't "
"replace any of its elements with a new value. Lists are mutable, meaning "
@ -821,11 +824,11 @@ msgstr ""
"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul "
"des *n*-uplets peuvent être utilisés comme clés."
#: faq/design.rst:427
#: faq/design.rst:423
msgid "How are lists implemented in CPython?"
msgstr "Comment les listes sont-elles implémentées dans CPython ?"
#: faq/design.rst:429
#: faq/design.rst:425
msgid ""
"CPython's lists are really variable-length arrays, not Lisp-style linked "
"lists. The implementation uses a contiguous array of references to other "
@ -838,7 +841,7 @@ msgstr ""
"Elle conserve également un pointeur vers ce tableau et la longueur du "
"tableau dans une structure de tête de liste."
#: faq/design.rst:433
#: faq/design.rst:429
msgid ""
"This makes indexing a list ``a[i]`` an operation whose cost is independent "
"of the size of the list or the value of the index."
@ -846,7 +849,7 @@ msgstr ""
"Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est "
"indépendant de la taille de la liste ou de la valeur de l'indice."
#: faq/design.rst:436
#: faq/design.rst:432
msgid ""
"When items are appended or inserted, the array of references is resized. "
"Some cleverness is applied to improve the performance of appending items "
@ -859,11 +862,11 @@ msgstr ""
"être étendu, un certain espace supplémentaire est alloué de sorte que pour "
"la prochaine fois, ceci ne nécessite plus un redimensionnement effectif."
#: faq/design.rst:443
#: faq/design.rst:439
msgid "How are dictionaries implemented in CPython?"
msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?"
#: faq/design.rst:445
#: faq/design.rst:441
msgid ""
"CPython's dictionaries are implemented as resizable hash tables. Compared "
"to B-trees, this gives better performance for lookup (the most common "
@ -875,7 +878,7 @@ msgstr ""
"performances pour la recherche (l'opération la plus courante de loin) dans "
"la plupart des circonstances, et leur implémentation est plus simple."
#: faq/design.rst:449
#: faq/design.rst:445
msgid ""
"Dictionaries work by computing a hash code for each key stored in the "
"dictionary using the :func:`hash` built-in function. The hash code varies "
@ -891,19 +894,19 @@ msgstr ""
"stockée dans le dictionnaire à l'aide de la fonction :func:`hash`. La valeur "
"du condensat varie grandement en fonction de la clé et de la graine utilisée "
"par le processus ; par exemple, la chaîne de caractère \"Python\" pourrait "
"avoir comme condensat la valeur  539 294 296 tandis que la chaîne \"python"
"\",qui diffère de la première par un seul bit, pourrait avoir comme "
"avoir comme condensat la valeur  539 294 296 tandis que la chaîne "
"\"python\",qui diffère de la première par un seul bit, pourrait avoir comme "
"condensat la valeur 1 142 331 976. Le condensat est ensuite utilisé pour "
"déterminer un emplacement dans le tableau interne où la valeur est stockée. "
"Dans l'hypothèse où vous stockez les clés qui ont toutes des condensats "
"différents, cela signifie que le temps pour récupérer une clé est constant — "
"O(1), en notation grand O de Landau."
#: faq/design.rst:460
#: faq/design.rst:456
msgid "Why must dictionary keys be immutable?"
msgstr "Pourquoi les clés du dictionnaire sont immuables ?"
#: faq/design.rst:462
#: faq/design.rst:458
msgid ""
"The hash table implementation of dictionaries uses a hash value calculated "
"from the key value to find the key. If the key were a mutable object, its "
@ -926,7 +929,7 @@ msgstr ""
"chercher l'ancienne valeur, elle serait également introuvable car la valeur "
"de l'objet trouvé dans cet emplacement de hachage serait différente."
#: faq/design.rst:471
#: faq/design.rst:467
msgid ""
"If you want a dictionary indexed with a list, simply convert the list to a "
"tuple first; the function ``tuple(L)`` creates a tuple with the same entries "
@ -938,11 +941,11 @@ msgstr ""
"uplet avec les mêmes entrées que la liste ``L``. Les *n*-uplets sont "
"immuables et peuvent donc être utilisés comme clés du dictionnaire."
#: faq/design.rst:475
#: faq/design.rst:471
msgid "Some unacceptable solutions that have been proposed:"
msgstr "Certaines solutions insatisfaisantes ont été proposées :"
#: faq/design.rst:477
#: faq/design.rst:473
msgid ""
"Hash lists by their address (object ID). This doesn't work because if you "
"construct a new list with the same value it won't be found; e.g.::"
@ -951,7 +954,7 @@ msgstr ""
"parce que si vous créez une nouvelle liste avec la même valeur, elle ne sera "
"pas retrouvée ; par exemple ::"
#: faq/design.rst:483
#: faq/design.rst:479
msgid ""
"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` "
"used in the second line differs from that in the first line. In other "
@ -963,7 +966,7 @@ msgstr ""
"les clés de dictionnaire doivent être comparées à l'aide du comparateur "
"``==`` et non à l'aide du mot clé :keyword:`is`."
#: faq/design.rst:487
#: faq/design.rst:483
msgid ""
"Make a copy when using a list as a key. This doesn't work because the list, "
"being a mutable object, could contain a reference to itself, and then the "
@ -974,7 +977,7 @@ msgstr ""
"une référence à elle-même ou avoir une boucle infinie au niveau du code "
"copié."
#: faq/design.rst:491
#: faq/design.rst:487
msgid ""
"Allow lists as keys but tell the user not to modify them. This would allow "
"a class of hard-to-track bugs in programs when you forgot or modified a list "
@ -987,7 +990,7 @@ msgstr ""
"accident. Cela casse également un impératif important des dictionnaires : "
"chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire."
#: faq/design.rst:496
#: faq/design.rst:492
msgid ""
"Mark lists as read-only once they are used as a dictionary key. The problem "
"is that it's not just the top-level object that could change its value; you "
@ -1005,7 +1008,7 @@ msgstr ""
"encore une fois, les objets se faisant référence pourraient provoquer une "
"boucle infinie."
#: faq/design.rst:502
#: faq/design.rst:498
msgid ""
"There is a trick to get around this if you need to, but use it at your own "
"risk: You can wrap a mutable structure inside a class instance which has "
@ -1022,7 +1025,7 @@ msgstr ""
"(ou une autre structure basée sur le hachage), restent fixes pendant que "
"l'objet est dans le dictionnaire (ou une autre structure). ::"
#: faq/design.rst:526
#: faq/design.rst:522
msgid ""
"Note that the hash computation is complicated by the possibility that some "
"members of the list may be unhashable and also by the possibility of "
@ -1032,7 +1035,7 @@ msgstr ""
"certains membres de la liste soient impossibles à hacher et aussi par la "
"possibilité de débordement arithmétique."
#: faq/design.rst:530
#: faq/design.rst:526
msgid ""
"Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1."
"__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == "
@ -1046,7 +1049,7 @@ msgstr ""
"ne remplissez pas ces conditions, les dictionnaires et autres structures "
"basées sur le hachage se comporteront mal."
#: faq/design.rst:535
#: faq/design.rst:531
msgid ""
"In the case of ListWrapper, whenever the wrapper object is in a dictionary "
"the wrapped list must not change to avoid anomalies. Don't do this unless "
@ -1059,11 +1062,11 @@ msgstr ""
"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été "
"prévenus."
#: faq/design.rst:542
#: faq/design.rst:538
msgid "Why doesn't list.sort() return the sorted list?"
msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?"
#: faq/design.rst:544
#: faq/design.rst:540
msgid ""
"In situations where performance matters, making a copy of the list just to "
"sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in "
@ -1079,7 +1082,7 @@ msgstr ""
"écrasant accidentellement une liste lorsque vous avez besoin dune copie "
"triée tout en gardant sous la main la version non triée."
#: faq/design.rst:550
#: faq/design.rst:546
msgid ""
"If you want to return a new list, use the built-in :func:`sorted` function "
"instead. This function creates a new list from a provided iterable, sorts "
@ -1091,13 +1094,13 @@ msgstr ""
"partir dun itérable fourni, la classe et la renvoie. Par exemple, voici "
"comment itérer dans lordre sur les clés dun dictionnaire ::"
#: faq/design.rst:560
#: faq/design.rst:556
msgid "How do you specify and enforce an interface spec in Python?"
msgstr ""
"Comment spécifier une interface et appliquer une spécification dinterface "
"en Python ?"
#: faq/design.rst:562
#: faq/design.rst:558
msgid ""
"An interface specification for a module as provided by languages such as C++ "
"and Java describes the prototypes for the methods and functions of the "
@ -1109,7 +1112,7 @@ msgstr ""
"module. Beaucoup estiment que la vérification au moment de la compilation "
"des spécifications d'interface facilite la construction de grands programmes."
#: faq/design.rst:567
#: faq/design.rst:563
msgid ""
"Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base "
"Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` "
@ -1126,7 +1129,7 @@ msgstr ""
"class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` et :"
"class:`collections.abc.MutableMapping`."
#: faq/design.rst:574
#: faq/design.rst:570
msgid ""
"For Python, many of the advantages of interface specifications can be "
"obtained by an appropriate test discipline for components."
@ -1134,7 +1137,7 @@ msgstr ""
"Pour Python, la plupart des avantages des spécifications d'interface peuvent "
"être obtenus par une discipline de test appropriée pour les composants."
#: faq/design.rst:577
#: faq/design.rst:573
msgid ""
"A good test suite for a module can both provide a regression test and serve "
"as a module interface specification and a set of examples. Many Python "
@ -1155,7 +1158,7 @@ msgstr ""
"test tiers peuvent être utilisés pour construire des suites de tests "
"exhaustives qui éprouvent chaque ligne de code dans un module."
#: faq/design.rst:585
#: faq/design.rst:581
msgid ""
"An appropriate testing discipline can help build large complex applications "
"in Python as well as having interface specifications would. In fact, it can "
@ -1175,7 +1178,7 @@ msgstr ""
"réellement le faire correctement, mais il est trivial de vérifier cette "
"propriété dans une suite de tests."
#: faq/design.rst:593
#: faq/design.rst:589
msgid ""
"Writing test suites is very helpful, and you might want to design your code "
"to make it easily tested. One increasingly popular technique, test-driven "
@ -1190,11 +1193,11 @@ msgstr ""
"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas "
"écrire de test du tout."
#: faq/design.rst:601
#: faq/design.rst:597
msgid "Why is there no goto?"
msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?"
#: faq/design.rst:603
#: faq/design.rst:599
msgid ""
"In the 1970s people realized that unrestricted goto could lead to messy "
"\"spaghetti\" code that was hard to understand and revise. In a high-level "
@ -1211,7 +1214,7 @@ msgstr ""
"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir "
"des ``continue`` et ``break``)."
#: faq/design.rst:610
#: faq/design.rst:606
msgid ""
"One can also use exceptions to provide a \"structured goto\" that works even "
"across function calls. Many feel that exceptions can conveniently emulate "
@ -1224,7 +1227,7 @@ msgstr ""
"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran "
"ou d'autres langages de programmation. Par exemple ::"
#: faq/design.rst:626
#: faq/design.rst:622
msgid ""
"This doesn't allow you to jump into the middle of a loop, but that's usually "
"considered an abuse of goto anyway. Use sparingly."
@ -1233,13 +1236,13 @@ msgstr ""
"toute façon généralement considéré comme un abus de ``goto``. À Utiliser "
"avec parcimonie."
#: faq/design.rst:631
#: faq/design.rst:627
msgid "Why can't raw strings (r-strings) end with a backslash?"
msgstr ""
"Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas "
"se terminer par un *backslash* ?"
#: faq/design.rst:633
#: faq/design.rst:629
msgid ""
"More precisely, they can't end with an odd number of backslashes: the "
"unpaired backslash at the end escapes the closing quote character, leaving "
@ -1249,7 +1252,7 @@ msgstr ""
"*backslashes* : le *backslash* non appairé à la fin échappe le caractère de "
"guillemet final, laissant la chaîne non terminée."
#: faq/design.rst:637
#: faq/design.rst:633
msgid ""
"Raw strings were designed to ease creating input for processors (chiefly "
"regular expression engines) that want to do their own backslash escape "
@ -1267,7 +1270,7 @@ msgstr ""
"chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien "
"lorsque les chaînes brutes sont utilisées pour leur but premier."
#: faq/design.rst:644
#: faq/design.rst:640
msgid ""
"If you're trying to build Windows pathnames, note that all Windows system "
"calls accept forward slashes too::"
@ -1276,20 +1279,20 @@ msgstr ""
"les appels système Windows acceptent également les *slashes* "
 classiques » ::"
#: faq/design.rst:649
#: faq/design.rst:645
msgid ""
"If you're trying to build a pathname for a DOS command, try e.g. one of ::"
msgstr ""
"Si vous essayez de construire un chemin d'accès pour une commande DOS, "
"essayez par exemple l'un de ceux-ci ::"
#: faq/design.rst:657
#: faq/design.rst:653
msgid "Why doesn't Python have a \"with\" statement for attribute assignments?"
msgstr ""
"Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe "
"pas en Python ?"
#: faq/design.rst:659
#: faq/design.rst:655
msgid ""
"Python has a 'with' statement that wraps the execution of a block, calling "
"code on the entrance and exit from the block. Some languages have a "
@ -1299,11 +1302,11 @@ msgstr ""
"appelant du code à l'entrée et la sortie du bloc. Certains langages "
"possèdent une construction qui ressemble à ceci ::"
#: faq/design.rst:667
#: faq/design.rst:663
msgid "In Python, such a construct would be ambiguous."
msgstr "En Python, une telle construction serait ambiguë."
#: faq/design.rst:669
#: faq/design.rst:665
msgid ""
"Other languages, such as Object Pascal, Delphi, and C++, use static types, "
"so it's possible to know, in an unambiguous way, what member is being "
@ -1316,7 +1319,7 @@ msgstr ""
"le compilateur connaît *toujours* la portée de toutes les variables au "
"moment de la compilation."
#: faq/design.rst:674
#: faq/design.rst:670
msgid ""
"Python uses dynamic types. It is impossible to know in advance which "
"attribute will be referenced at runtime. Member attributes may be added or "
@ -1330,11 +1333,11 @@ msgstr ""
"impossible de savoir, d'une simple lecture, quel attribut est référencé : "
"s'il est local, global ou un attribut membre ?"
#: faq/design.rst:680
#: faq/design.rst:676
msgid "For instance, take the following incomplete snippet::"
msgstr "Prenons par exemple l'extrait incomplet suivant ::"
#: faq/design.rst:686
#: faq/design.rst:682
msgid ""
"The snippet assumes that \"a\" must have a member attribute called \"x\". "
"However, there is nothing in Python that tells the interpreter this. What "
@ -1348,7 +1351,7 @@ msgstr ""
 x » existe, est-elle utilisée dans le bloc ``with`` ? Comme vous voyez, "
"la nature dynamique du Python rend ces choix beaucoup plus difficiles."
#: faq/design.rst:692
#: faq/design.rst:688
msgid ""
"The primary benefit of \"with\" and similar language features (reduction of "
"code volume) can, however, easily be achieved in Python by assignment. "
@ -1358,11 +1361,11 @@ msgstr ""
"similaires (réduction du volume de code) peut, cependant, être facilement "
"réalisé en Python par assignation. Au lieu de ::"
#: faq/design.rst:699
#: faq/design.rst:695
msgid "write this::"
msgstr "écrivez ceci ::"
#: faq/design.rst:706
#: faq/design.rst:702
msgid ""
"This also has the side-effect of increasing execution speed because name "
"bindings are resolved at run-time in Python, and the second version only "
@ -1372,12 +1375,12 @@ msgstr ""
"car les liaisons de noms sont résolues au moment de l'exécution en Python, "
"et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois."
#: faq/design.rst:712
#: faq/design.rst:708
msgid "Why don't generators support the with statement?"
msgstr ""
"Pourquoi l'instruction ``with`` ne prend-elle pas en charge les générateurs ?"
#: faq/design.rst:714
#: faq/design.rst:710
msgid ""
"For technical reasons, a generator used directly as a context manager would "
"not work correctly. When, as is most common, a generator is used as an "
@ -1390,13 +1393,13 @@ msgstr ""
"besoin de le fermer. Sinon, on peut toujours mettre ``contextlib."
"closing(générateur)`` dans la ligne du ``with``."
#: faq/design.rst:721
#: faq/design.rst:717
msgid "Why are colons required for the if/while/def/class statements?"
msgstr ""
"Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/"
"while/def/class`` ?"
#: faq/design.rst:723
#: faq/design.rst:719
msgid ""
"The colon is required primarily to enhance readability (one of the results "
"of the experimental ABC language). Consider this::"
@ -1404,11 +1407,11 @@ msgstr ""
"Le deux-points est principalement nécessaire pour améliorer la lisibilité "
"(l'un des résultats du langage expérimental ABC). Considérez ceci ::"
#: faq/design.rst:729
#: faq/design.rst:725
msgid "versus ::"
msgstr "et cela ::"
#: faq/design.rst:734
#: faq/design.rst:730
msgid ""
"Notice how the second one is slightly easier to read. Notice further how a "
"colon sets off the example in this FAQ answer; it's a standard usage in "
@ -1418,7 +1421,7 @@ msgstr ""
"aussi comment un deux-points introduit l'exemple dans cette réponse à la "
"FAQ ; c'est un usage standard en français (et en anglais)."
#: faq/design.rst:737
#: faq/design.rst:733
msgid ""
"Another minor reason is that the colon makes it easier for editors with "
"syntax highlighting; they can look for colons to decide when indentation "
@ -1430,13 +1433,13 @@ msgstr ""
"pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire "
"une analyse plus élaborée du texte du programme."
#: faq/design.rst:743
#: faq/design.rst:739
msgid "Why does Python allow commas at the end of lists and tuples?"
msgstr ""
"Pourquoi Python permet-il les virgules à la fin des listes et des *n*-"
"uplets ?"
#: faq/design.rst:745
#: faq/design.rst:741
msgid ""
"Python lets you add a trailing comma at the end of lists, tuples, and "
"dictionaries::"
@ -1444,11 +1447,11 @@ msgstr ""
"Python vous permet d'ajouter une virgule à la fin des listes, des *n*-uplets "
"et des dictionnaires ::"
#: faq/design.rst:756
#: faq/design.rst:752
msgid "There are several reasons to allow this."
msgstr "Il y a plusieurs raisons d'accepter cela."
#: faq/design.rst:758
#: faq/design.rst:754
msgid ""
"When you have a literal value for a list, tuple, or dictionary spread across "
"multiple lines, it's easier to add more elements because you don't have to "
@ -1461,7 +1464,7 @@ msgstr ""
"virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées "
"sans créer une erreur de syntaxe."
#: faq/design.rst:763
#: faq/design.rst:759
msgid ""
"Accidentally omitting the comma can lead to errors that are hard to "
"diagnose. For example::"
@ -1469,7 +1472,7 @@ msgstr ""
"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles "
"à diagnostiquer, par exemple ::"
#: faq/design.rst:773
#: faq/design.rst:769
msgid ""
"This list looks like it has four elements, but it actually contains three: "
"\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source "
@ -1479,7 +1482,7 @@ msgstr ""
"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule "
"permet d'éviter cette source d'erreur."
#: faq/design.rst:776
#: faq/design.rst:772
msgid ""
"Allowing the trailing comma may also make programmatic code generation "
"easier."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-10-17 18:37+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -49,10 +49,10 @@ msgstr "Puis-je créer mes propres fonctions en C++ ?"
#: faq/extending.rst:28
msgid ""
"Yes, using the C compatibility features found in C++. Place ``extern \"C"
"\" { ... }`` around the Python include files and put ``extern \"C\"`` before "
"each function that is going to be called by the Python interpreter. Global "
"or static C++ objects with constructors are probably not a good idea."
"Yes, using the C compatibility features found in C++. Place ``extern "
"\"C\" { ... }`` around the Python include files and put ``extern \"C\"`` "
"before each function that is going to be called by the Python interpreter. "
"Global or static C++ objects with constructors are probably not a good idea."
msgstr ""
"Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. "
"Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez "
@ -73,8 +73,9 @@ msgstr ""
"d'écrire vos propres extensions C, selon ce que vous essayez de faire."
#: faq/extending.rst:44
#, fuzzy
msgid ""
"`Cython <http://cython.org>`_ and its relative `Pyrex <https://www.cosc."
"`Cython <https://cython.org>`_ and its relative `Pyrex <https://www.cosc."
"canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers that accept a "
"slightly modified form of Python and generate the corresponding C code. "
"Cython and Pyrex make it possible to write an extension without having to "
@ -87,12 +88,13 @@ msgstr ""
"à connaître l'API C de Python."
#: faq/extending.rst:50
#, fuzzy
msgid ""
"If you need to interface to some C or C++ library for which no Python "
"extension currently exists, you can try wrapping the library's data types "
"and functions with a tool such as `SWIG <http://www.swig.org>`_. `SIP "
"<https://riverbankcomputing.com/software/sip/intro>`__, `CXX <http://cxx."
"sourceforge.net/>`_ `Boost <http://www.boost.org/libs/python/doc/index."
"and functions with a tool such as `SWIG <https://www.swig.org>`_. `SIP "
"<https://riverbankcomputing.com/software/sip/intro>`__, `CXX <https://cxx."
"sourceforge.net/>`_ `Boost <https://www.boost.org/libs/python/doc/index."
"html>`_, or `Weave <https://github.com/scipy/weave>`_ are also alternatives "
"for wrapping C++ libraries."
msgstr ""
@ -337,10 +339,10 @@ msgid ""
"work for C++ objects."
msgstr ""
"Selon vos besoins, de nombreuses approches sont possibles. Pour le faire "
"manuellement, commencez par lire :ref:`le document \"Extension et intégration"
"\" <extending-index>`. Sachez que pour le système d'exécution Python, il n'y "
"a pas beaucoup de différence entre C et C++ — donc la méthode pour "
"construire un nouveau type Python à partir d'une structure C (pointeur) "
"manuellement, commencez par lire :ref:`le document \"Extension et "
"intégration\" <extending-index>`. Sachez que pour le système d'exécution "
"Python, il n'y a pas beaucoup de différence entre C et C++ — donc la méthode "
"pour construire un nouveau type Python à partir d'une structure C (pointeur) "
"fonctionne également avec des objets en C++."
#: faq/extending.rst:212
@ -414,13 +416,13 @@ msgstr ""
msgid "For Debian, run ``apt-get install python-dev``."
msgstr "Pour Debian, exécutez ``apt-get install python-dev``."
#: faq/extending.rst:259
#: faq/extending.rst:258
msgid "How do I tell \"incomplete input\" from \"invalid input\"?"
msgstr ""
"Comment distinguer une « entrée incomplète » (*incomplete input*) d'une "
 entrée invalide » (*invalid input*) ?"
#: faq/extending.rst:261
#: faq/extending.rst:260
msgid ""
"Sometimes you want to emulate the Python interactive interpreter's behavior, "
"where it gives you a continuation prompt when the input is incomplete (e.g. "
@ -434,7 +436,7 @@ msgstr ""
"vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous "
"renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte."
#: faq/extending.rst:267
#: faq/extending.rst:266
msgid ""
"In Python you can use the :mod:`codeop` module, which approximates the "
"parser's behavior sufficiently. IDLE uses this, for example."
@ -442,7 +444,7 @@ msgstr ""
"En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche "
"assez du comportement de l'analyseur. Par exemple, IDLE l'utilise."
#: faq/extending.rst:270
#: faq/extending.rst:269
msgid ""
"The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` "
"(perhaps in a separate thread) and let the Python interpreter handle the "
@ -458,39 +460,12 @@ msgstr ""
"myreadline.c`` pour plus de conseils."
#: faq/extending.rst:276
msgid ""
"However sometimes you have to run the embedded Python interpreter in the "
"same thread as your rest application and you can't allow the :c:func:"
"`PyRun_InteractiveLoop` to stop while waiting for user input. A solution is "
"trying to compile the received string with :c:func:`Py_CompileString`. If it "
"compiles without errors, try to execute the returned code object by calling :"
"c:func:`PyEval_EvalCode`. Otherwise save the input for later. If the "
"compilation fails, find out if it's an error or just more input is required "
"- by extracting the message string from the exception tuple and comparing it "
"to the string \"unexpected EOF while parsing\". Here is a complete example "
"using the GNU readline library (you may want to ignore **SIGINT** while "
"calling readline())::"
msgstr ""
"Cependant, il arrive qu'il soit nécessaire d'exécuter l'interpréteur Python "
"embarqué dans le même fil d'exécution que le reste de l'application, et que :"
"c:func:`PyRun_InteractiveLoop` ne puisse pas être utilisée car elle bloque "
"le fil en attendant l'entrée de l'utilisateur. Une solution est d'essayer de "
"compiler la chaîne reçue avec :c:func:`Py_CompileString`. Si cela se compile "
"sans erreur, essayez d'exécuter l'objet code renvoyé en appelant :c:func:"
"`PyEval_EvalCode`. Sinon, enregistrez l'entrée pour plus tard. Si la "
"compilation échoue, vérifiez s'il s'agit d'une erreur ou s'il faut juste "
"plus de données — en extrayant la chaîne de message du *n*-uplet d'exception "
"et en la comparant à la chaîne *\"unexpected EOF while parsing\"*. Voici un "
"exemple complet d'utilisation de la bibliothèque *readline* de GNU (il peut "
"être préférable d'ignorer **SIGINT** lors de l'appel à ``readline()``) ::"
#: faq/extending.rst:401
msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?"
msgstr ""
"Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou "
"``__pure_virtual`` ?"
#: faq/extending.rst:403
#: faq/extending.rst:278
msgid ""
"To dynamically load g++ extension modules, you must recompile Python, relink "
"it using g++ (change LINKCC in the Python Modules Makefile), and link your "
@ -502,7 +477,7 @@ msgstr ""
"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule."
"so mymodule.o``)."
#: faq/extending.rst:409
#: faq/extending.rst:284
msgid ""
"Can I create an object class with some methods implemented in C and others "
"in Python (e.g. through inheritance)?"
@ -510,7 +485,7 @@ msgstr ""
"Puis-je créer une classe d'objets avec certaines méthodes implémentées en C "
"et d'autres en Python (p. ex. en utilisant l'héritage) ?"
#: faq/extending.rst:411
#: faq/extending.rst:286
msgid ""
"Yes, you can inherit from built-in classes such as :class:`int`, :class:"
"`list`, :class:`dict`, etc."
@ -518,9 +493,10 @@ msgstr ""
"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :"
"class:`list`, :class:`dict`, etc."
#: faq/extending.rst:414
#: faq/extending.rst:289
#, fuzzy
msgid ""
"The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index."
"The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index."
"html) provides a way of doing this from C++ (i.e. you can inherit from an "
"extension class written in C++ using the BPL)."
msgstr ""
@ -528,6 +504,34 @@ msgstr ""
"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que "
"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)."
#~ msgid ""
#~ "However sometimes you have to run the embedded Python interpreter in the "
#~ "same thread as your rest application and you can't allow the :c:func:"
#~ "`PyRun_InteractiveLoop` to stop while waiting for user input. A solution "
#~ "is trying to compile the received string with :c:func:`Py_CompileString`. "
#~ "If it compiles without errors, try to execute the returned code object by "
#~ "calling :c:func:`PyEval_EvalCode`. Otherwise save the input for later. If "
#~ "the compilation fails, find out if it's an error or just more input is "
#~ "required - by extracting the message string from the exception tuple and "
#~ "comparing it to the string \"unexpected EOF while parsing\". Here is a "
#~ "complete example using the GNU readline library (you may want to ignore "
#~ "**SIGINT** while calling readline())::"
#~ msgstr ""
#~ "Cependant, il arrive qu'il soit nécessaire d'exécuter l'interpréteur "
#~ "Python embarqué dans le même fil d'exécution que le reste de "
#~ "l'application, et que :c:func:`PyRun_InteractiveLoop` ne puisse pas être "
#~ "utilisée car elle bloque le fil en attendant l'entrée de l'utilisateur. "
#~ "Une solution est d'essayer de compiler la chaîne reçue avec :c:func:"
#~ "`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter "
#~ "l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, "
#~ "enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez "
#~ "s'il s'agit d'une erreur ou s'il faut juste plus de données — en "
#~ "extrayant la chaîne de message du *n*-uplet d'exception et en la "
#~ "comparant à la chaîne *\"unexpected EOF while parsing\"*. Voici un "
#~ "exemple complet d'utilisation de la bibliothèque *readline* de GNU (il "
#~ "peut être préférable d'ignorer **SIGINT** lors de l'appel à "
#~ "``readline()``) ::"
#~ msgid ""
#~ "However sometimes you have to run the embedded Python interpreter in the "
#~ "same thread as your rest application and you can't allow the :c:func:"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-16 02:40+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -283,21 +283,32 @@ msgid "How does the Python version numbering scheme work?"
msgstr "Comment fonctionne le numérotage des versions de Python ?"
#: faq/general.rst:128
msgid ""
"Python versions are numbered A.B.C or A.B. A is the major version number -- "
"it is only incremented for really major changes in the language. B is the "
"minor version number, incremented for less earth-shattering changes. C is "
"the micro-level -- it is incremented for each bugfix release. See :pep:`6` "
"for more information about bugfix releases."
msgid "Python versions are numbered \"A.B.C\" or \"A.B\":"
msgstr ""
#: faq/general.rst:130
msgid ""
"*A* is the major version number -- it is only incremented for really major "
"changes in the language."
msgstr ""
#: faq/general.rst:132
msgid ""
"*B* is the minor version number -- it is incremented for less earth-"
"shattering changes."
msgstr ""
"Les versions de Python sont numérotées A.B.C ou A.B. A est une version "
"majeure -- elle est augmentée seulement lorsqu'il y a des changements "
"conséquents dans le langage. B est une version mineure, elle est augmentée "
"lors de changements de moindre importance. C est un micro-niveau -- elle est "
"augmentée à chaque sortie de correctifs de bogue."
#: faq/general.rst:134
msgid ""
"*C* is the micro version number -- it is incremented for each bugfix release."
msgstr ""
#: faq/general.rst:136
msgid "See :pep:`6` for more information about bugfix releases."
msgstr ""
#: faq/general.rst:138
msgid ""
"Not all releases are bugfix releases. In the run-up to a new major release, "
"a series of development releases are made, denoted as alpha, beta, or "
"release candidate. Alphas are early releases in which interfaces aren't yet "
@ -316,24 +327,31 @@ msgstr ""
"modules, les *release candidate* sont figées, elles ne font aucun changement "
"à l'exception de ceux nécessaires pour corriger des bogues critiques."
#: faq/general.rst:142
msgid ""
"Alpha, beta and release candidate versions have an additional suffix. The "
"suffix for an alpha version is \"aN\" for some small number N, the suffix "
"for a beta version is \"bN\" for some small number N, and the suffix for a "
"release candidate version is \"rcN\" for some small number N. In other "
"words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which "
"precede versions labeled 2.0rcN, and *those* precede 2.0."
#: faq/general.rst:146
msgid "Alpha, beta and release candidate versions have an additional suffix:"
msgstr ""
#: faq/general.rst:148
msgid "The suffix for an alpha version is \"aN\" for some small number *N*."
msgstr ""
"Les versions *alpha*, *beta* et *release candidate* ont un suffixe "
"supplémentaire. Le suffixe pour une version alpha est « aN » où N est un "
"petit nombre, le suffixe pour une version *beta* est *bN* où N est un petit "
"nombre, et le suffixe pour une *release candidate* est *rcN* où N est un "
"petit nombre. En d'autres mots, toutes les versions nommées *2.0.aN* "
"précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0rcN, et "
"*celles-ci* précèdent la version 2.0."
#: faq/general.rst:149
msgid "The suffix for a beta version is \"bN\" for some small number *N*."
msgstr ""
#: faq/general.rst:150
msgid ""
"The suffix for a release candidate version is \"rcN\" for some small number "
"*N*."
msgstr ""
#: faq/general.rst:152
msgid ""
"In other words, all versions labeled *2.0aN* precede the versions labeled "
"*2.0bN*, which precede versions labeled *2.0rcN*, and *those* precede 2.0."
msgstr ""
#: faq/general.rst:155
msgid ""
"You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These "
"are unreleased versions, built directly from the CPython development "
@ -347,7 +365,7 @@ msgstr ""
"finale d'une version mineure, la version est augmentée à la prochaine "
"version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*."
#: faq/general.rst:154
#: faq/general.rst:160
msgid ""
"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, "
"and :data:`sys.version_info`."
@ -355,11 +373,11 @@ msgstr ""
"Voir aussi la documentation pour for :data:`sys.version`, :data:`sys."
"hexversion`, et :data:`sys.version_info`."
#: faq/general.rst:159
#: faq/general.rst:165
msgid "How do I obtain a copy of the Python source?"
msgstr "Comment obtenir une copie du code source de Python ?"
#: faq/general.rst:161
#: faq/general.rst:167
msgid ""
"The latest Python source distribution is always available from python.org, "
"at https://www.python.org/downloads/. The latest development sources can be "
@ -370,7 +388,7 @@ msgstr ""
"dernière version en développement peut être obtenue à https://github.com/"
"python/cpython/."
#: faq/general.rst:165
#: faq/general.rst:171
msgid ""
"The source distribution is a gzipped tar file containing the complete C "
"source, Sphinx-formatted documentation, Python library modules, example "
@ -383,7 +401,7 @@ msgstr ""
"utiles distribuables librement. Le code source sera compilé et prêt à "
"fonctionner immédiatement sur la plupart des plateformes UNIX."
#: faq/general.rst:170
#: faq/general.rst:176
msgid ""
"Consult the `Getting Started section of the Python Developer's Guide "
"<https://devguide.python.org/setup/>`__ for more information on getting the "
@ -393,11 +411,11 @@ msgstr ""
"devguide.python.org/setup/>`__ pour plus d'informations sur comment obtenir "
"le code source et le compiler."
#: faq/general.rst:176
#: faq/general.rst:182
msgid "How do I get documentation on Python?"
msgstr "Comment obtenir la documentation de Python ?"
#: faq/general.rst:180
#: faq/general.rst:186
msgid ""
"The standard documentation for the current stable version of Python is "
"available at https://docs.python.org/3/. PDF, plain text, and downloadable "
@ -407,22 +425,24 @@ msgstr ""
"https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML "
"sont aussi disponibles à https://docs.python.org/3/download.html."
#: faq/general.rst:184
#: faq/general.rst:190
#, fuzzy
msgid ""
"The documentation is written in reStructuredText and processed by `the "
"Sphinx documentation tool <http://sphinx-doc.org/>`__. The reStructuredText "
"source for the documentation is part of the Python source distribution."
"Sphinx documentation tool <https://www.sphinx-doc.org/>`__. The "
"reStructuredText source for the documentation is part of the Python source "
"distribution."
msgstr ""
"La documentation est écrite au format *reStructuredText* et traitée par "
"l'outil de documentation `Sphinx <http://sphinx-doc.org/>`__. La source du "
"*reStructuredText* pour la documentation constitue une partie des sources de "
"Python."
#: faq/general.rst:190
#: faq/general.rst:196
msgid "I've never programmed before. Is there a Python tutorial?"
msgstr "Je n'ai jamais programmé avant. Existe-t-il un tutoriel Python ?"
#: faq/general.rst:192
#: faq/general.rst:198
msgid ""
"There are numerous tutorials and books available. The standard "
"documentation includes :ref:`tutorial-index`."
@ -430,7 +450,7 @@ msgstr ""
"Il y a de nombreux tutoriels et livres disponibles. La documentation "
"standard inclut :ref:`tutorial-index`."
#: faq/general.rst:195
#: faq/general.rst:201
msgid ""
"Consult `the Beginner's Guide <https://wiki.python.org/moin/"
"BeginnersGuide>`_ to find information for beginning Python programmers, "
@ -440,11 +460,11 @@ msgstr ""
"BeginnersGuide>`_ afin de trouver des informations pour les développeurs "
"Python débutants, incluant une liste de tutoriels."
#: faq/general.rst:200
#: faq/general.rst:206
msgid "Is there a newsgroup or mailing list devoted to Python?"
msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?"
#: faq/general.rst:202
#: faq/general.rst:208
msgid ""
"There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, "
"`python-list <https://mail.python.org/mailman/listinfo/python-list>`_. The "
@ -461,7 +481,7 @@ msgstr ""
"des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont "
"souvent plus capables de faire face à ce volume."
#: faq/general.rst:209
#: faq/general.rst:215
msgid ""
"Announcements of new software releases and events can be found in comp.lang."
"python.announce, a low-traffic moderated list that receives about five "
@ -474,7 +494,7 @@ msgstr ""
"des annonces Python <https://mail.python.org/mailman/listinfo/python-"
"announce-list>`_."
#: faq/general.rst:214
#: faq/general.rst:220
msgid ""
"More info about other mailing lists and newsgroups can be found at https://"
"www.python.org/community/lists/."
@ -482,11 +502,11 @@ msgstr ""
"Plus d'informations à propos des autres listes de diffusion et forums "
"peuvent être trouvées à https://www.python.org/community/lists/."
#: faq/general.rst:219
#: faq/general.rst:225
msgid "How do I get a beta test version of Python?"
msgstr "Comment obtenir une version bêta test de Python ?"
#: faq/general.rst:221
#: faq/general.rst:227
msgid ""
"Alpha and beta releases are available from https://www.python.org/"
"downloads/. All releases are announced on the comp.lang.python and comp."
@ -499,7 +519,7 @@ msgstr ""
"de Python à https://www.python.org/; un flux RSS d'actualités y est aussi "
"disponible."
#: faq/general.rst:226
#: faq/general.rst:232
msgid ""
"You can also access the development version of Python through Git. See `The "
"Python Developer's Guide <https://devguide.python.org/>`_ for details."
@ -508,11 +528,11 @@ msgstr ""
"`Le Guide du Développeur Python <https://devguide.python.org/>`_ pour plus "
"de détails."
#: faq/general.rst:231
#: faq/general.rst:237
msgid "How do I submit bug reports and patches for Python?"
msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?"
#: faq/general.rst:233
#: faq/general.rst:239
msgid ""
"To report a bug or submit a patch, please use the Roundup installation at "
"https://bugs.python.org/."
@ -520,7 +540,7 @@ msgstr ""
"Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://"
"bugs.python.org/."
#: faq/general.rst:236
#: faq/general.rst:242
msgid ""
"You must have a Roundup account to report bugs; this makes it possible for "
"us to contact you if we have follow-up questions. It will also enable "
@ -537,7 +557,7 @@ msgstr ""
"réinitialisation de mot de passe de Roundup <https://bugs.python.org/user?"
"@template=forgotten>`_."
#: faq/general.rst:242
#: faq/general.rst:248
msgid ""
"For more information on how Python is developed, consult `the Python "
"Developer's Guide <https://devguide.python.org/>`_."
@ -545,19 +565,19 @@ msgstr ""
"Pour davantage d'informations sur comment Python est développé, consultez "
"`le Guide du Développeur Python <https://devguide.python.org/>`_."
#: faq/general.rst:247
#: faq/general.rst:253
msgid "Are there any published articles about Python that I can reference?"
msgstr ""
"Existe-t-il des articles publiés au sujet de Python auxquels je peux me "
"référer ?"
#: faq/general.rst:249
#: faq/general.rst:255
msgid "It's probably best to cite your favorite book about Python."
msgstr ""
"C'est probablement mieux de vous référer à votre livre favori à propos de "
"Python."
#: faq/general.rst:251
#: faq/general.rst:257
msgid ""
"The very first article about Python was written in 1991 and is now quite "
"outdated."
@ -565,7 +585,7 @@ msgstr ""
"Le tout premier article à propos de Python a été écrit en 1991 et est "
"maintenant obsolète."
#: faq/general.rst:254
#: faq/general.rst:260
msgid ""
"Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers "
"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 "
@ -575,11 +595,11 @@ msgstr ""
"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 "
"(December 1991), Amsterdam, pp 283--303."
#: faq/general.rst:260
#: faq/general.rst:266
msgid "Are there any books on Python?"
msgstr "Y a-t-il des livres au sujet de Python ?"
#: faq/general.rst:262
#: faq/general.rst:268
msgid ""
"Yes, there are many, and more are being published. See the python.org wiki "
"at https://wiki.python.org/moin/PythonBooks for a list."
@ -587,7 +607,7 @@ msgstr ""
"Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le "
"wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste."
#: faq/general.rst:265
#: faq/general.rst:271
msgid ""
"You can also search online bookstores for \"Python\" and filter out the "
"Monty Python references; or perhaps search for \"Python\" and \"language\"."
@ -596,25 +616,26 @@ msgstr ""
"terme « Python » et éliminer les références concernant les Monty Python, ou "
"peut-être faire une recherche avec les termes « langage » et « Python »."
#: faq/general.rst:270
#: faq/general.rst:276
msgid "Where in the world is www.python.org located?"
msgstr "Où www.python.org est-il localisé dans le monde ?"
#: faq/general.rst:272
#: faq/general.rst:278
#, fuzzy
msgid ""
"The Python project's infrastructure is located all over the world and is "
"managed by the Python Infrastructure Team. Details `here <http://infra.psf."
"managed by the Python Infrastructure Team. Details `here <https://infra.psf."
"io>`__."
msgstr ""
"L'infrastructure du projet Python est située dans le monde entier et est "
"gérée par l'équipe de l'infrastructure Python. Plus de détails `ici <http://"
"infra.psf.io>`__."
#: faq/general.rst:277
#: faq/general.rst:283
msgid "Why is it called Python?"
msgstr "Pourquoi le nom Python ?"
#: faq/general.rst:279
#: faq/general.rst:285
msgid ""
"When he began implementing Python, Guido van Rossum was also reading the "
"published scripts from `\"Monty Python's Flying Circus\" <https://en."
@ -628,23 +649,23 @@ msgstr ""
"BBC. Van Rossum a pensé qu'il avait besoin d'un nom court, unique, et un peu "
"mystérieux, donc il a décidé de l'appeler le langage Python."
#: faq/general.rst:287
#: faq/general.rst:293
msgid "Do I have to like \"Monty Python's Flying Circus\"?"
msgstr "Dois-je aimer \"Monty Python's Flying Circus\" ?"
#: faq/general.rst:289
#: faq/general.rst:295
msgid "No, but it helps. :)"
msgstr "Non, mais ça peut aider. :)"
#: faq/general.rst:293
#: faq/general.rst:299
msgid "Python in the real world"
msgstr "Python c'est le monde réel"
#: faq/general.rst:296
#: faq/general.rst:302
msgid "How stable is Python?"
msgstr "Quel est le niveau de stabilité de Python ?"
#: faq/general.rst:298
#: faq/general.rst:304
msgid ""
"Very stable. New, stable releases have been coming out roughly every 6 to "
"18 months since 1991, and this seems likely to continue. As of version 3.9, "
@ -654,7 +675,7 @@ msgstr ""
"depuis 1991, et il semble probable que ça continue. À partir de la version "
"3.9, Python aura une nouvelle version majeure tous les 12 mois (:pep:`602`)."
#: faq/general.rst:302
#: faq/general.rst:308
msgid ""
"The developers issue \"bugfix\" releases of older versions, so the stability "
"of existing releases gradually improves. Bugfix releases, indicated by a "
@ -671,7 +692,7 @@ msgstr ""
"garanti que les interfaces resteront les mêmes tout au long de la série de "
"versions correctives."
#: faq/general.rst:309
#: faq/general.rst:315
msgid ""
"The latest stable releases can always be found on the `Python download page "
"<https://www.python.org/downloads/>`_. There are two production-ready "
@ -686,11 +707,11 @@ msgstr ""
"largement utilisées. Bien que Python 2 soit encore utilisé, `il n'est "
"désormais plus maintenu <https://www.python.org/dev/peps/pep-0373/>`_."
#: faq/general.rst:316
#: faq/general.rst:322
msgid "How many people are using Python?"
msgstr "Combien de personnes utilisent Python ?"
#: faq/general.rst:318
#: faq/general.rst:324
msgid ""
"There are probably millions of users, though it's difficult to obtain an "
"exact count."
@ -698,7 +719,7 @@ msgstr ""
"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile "
"d'en déterminer le nombre exact."
#: faq/general.rst:321
#: faq/general.rst:327
msgid ""
"Python is available for free download, so there are no sales figures, and "
"it's available from many different sites and packaged with many Linux "
@ -709,7 +730,7 @@ msgstr ""
"il est inclus avec de beaucoup de distributions Linux, donc les statistiques "
"de téléchargement ne donnent pas la totalité non plus."
#: faq/general.rst:325
#: faq/general.rst:331
msgid ""
"The comp.lang.python newsgroup is very active, but not all Python users post "
"to the group or even read it."
@ -717,11 +738,11 @@ msgstr ""
"Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de "
"Python ne laissent pas de messages dessus ou même ne le lisent pas."
#: faq/general.rst:330
#: faq/general.rst:336
msgid "Have any significant projects been done in Python?"
msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?"
#: faq/general.rst:332
#: faq/general.rst:338
msgid ""
"See https://www.python.org/about/success for a list of projects that use "
"Python. Consulting the proceedings for `past Python conferences <https://www."
@ -734,11 +755,12 @@ msgstr ""
"s'avère que les contributions proviennent de nombreux organismes et "
"entreprises divers."
#: faq/general.rst:337
#: faq/general.rst:343
#, fuzzy
msgid ""
"High-profile Python projects include `the Mailman mailing list manager "
"<http://www.list.org>`_ and `the Zope application server <http://www.zope."
"org>`_. Several Linux distributions, most notably `Red Hat <https://www."
"<https://www.list.org>`_ and `the Zope application server <https://www.zope."
"dev>`_. Several Linux distributions, most notably `Red Hat <https://www."
"redhat.com>`_, have written part or all of their installer and system "
"administration software in Python. Companies that use Python internally "
"include Google, Yahoo, and Lucasfilm Ltd."
@ -750,11 +772,11 @@ msgstr ""
"logiciel d'administration système en Python. Les entreprises qui utilisent "
"Python en interne comprennent Google, Yahoo, et Lucasfilm Ltd."
#: faq/general.rst:346
#: faq/general.rst:352
msgid "What new developments are expected for Python in the future?"
msgstr "Quelles sont les nouveautés en développement attendues pour Python ?"
#: faq/general.rst:348
#: faq/general.rst:354
msgid ""
"See https://www.python.org/dev/peps/ for the Python Enhancement Proposals "
"(PEPs). PEPs are design documents describing a suggested new feature for "
@ -769,7 +791,7 @@ msgstr ""
"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X."
"Y est la version qui n'a pas encore été publiée."
#: faq/general.rst:354
#: faq/general.rst:360
msgid ""
"New development is discussed on `the python-dev mailing list <https://mail."
"python.org/mailman/listinfo/python-dev/>`_."
@ -777,12 +799,12 @@ msgstr ""
"Le nouveau développement est discuté sur `la liste de diffusion python-dev "
"<https://mail.python.org/mailman/listinfo/python-dev/>`_."
#: faq/general.rst:359
#: faq/general.rst:365
msgid "Is it reasonable to propose incompatible changes to Python?"
msgstr ""
"Est-il raisonnable de proposer des changements incompatibles dans Python ?"
#: faq/general.rst:361
#: faq/general.rst:367
msgid ""
"In general, no. There are already millions of lines of Python code around "
"the world, so any change in the language that invalidates more than a very "
@ -799,7 +821,7 @@ msgstr ""
"documentations, beaucoup de livres ont été écrits au sujet de Python, et "
"nous ne voulons pas les rendre invalides soudainement."
#: faq/general.rst:368
#: faq/general.rst:374
msgid ""
"Providing a gradual upgrade path is necessary if a feature has to be "
"changed. :pep:`5` describes the procedure followed for introducing backward-"
@ -808,17 +830,17 @@ msgstr ""
"En fournissant un rythme de mise à jour progressif qui est obligatoire si "
"une fonctionnalité doit être changée."
#: faq/general.rst:374
#: faq/general.rst:380
msgid "Is Python a good language for beginning programmers?"
msgstr ""
"Existe-t-il un meilleur langage de programmation pour les programmeurs "
"débutants ?"
#: faq/general.rst:376
#: faq/general.rst:382
msgid "Yes."
msgstr "Oui."
#: faq/general.rst:378
#: faq/general.rst:384
msgid ""
"It is still common to start students with a procedural and statically typed "
"language such as Pascal, C, or a subset of C++ or Java. Students may be "
@ -842,7 +864,7 @@ msgstr ""
"peuvent même probablement travailler avec des objets définis dans leurs "
"premiers cours."
#: faq/general.rst:388
#: faq/general.rst:394
msgid ""
"For a student who has never programmed before, using a statically typed "
"language seems unnatural. It presents additional complexity that the "
@ -862,7 +884,7 @@ msgstr ""
"terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux "
"étudiants durant leur tout premier cours."
#: faq/general.rst:396
#: faq/general.rst:402
msgid ""
"Many other aspects of Python make it a good first language. Like Java, "
"Python has a large standard library so that students can be assigned "
@ -885,7 +907,7 @@ msgstr ""
"réutilisation de code. Les modules tiers tels que PyGame sont aussi très "
"utiles pour étendre les compétences des étudiants."
#: faq/general.rst:405
#: faq/general.rst:411
msgid ""
"Python's interactive interpreter enables students to test language features "
"while they're programming. They can keep a window with the interpreter "
@ -899,7 +921,7 @@ msgstr ""
"souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme "
"ça ::"
#: faq/general.rst:434
#: faq/general.rst:440
msgid ""
"With the interpreter, documentation is never far from the student as they "
"are programming."
@ -907,15 +929,16 @@ msgstr ""
"Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand "
"ils travaillent."
#: faq/general.rst:437
#: faq/general.rst:443
#, fuzzy
msgid ""
"There are also good IDEs for Python. IDLE is a cross-platform IDE for "
"Python that is written in Python using Tkinter. PythonWin is a Windows-"
"specific IDE. Emacs users will be happy to know that there is a very good "
"Python mode for Emacs. All of these programming environments provide syntax "
"highlighting, auto-indenting, and access to the interactive interpreter "
"while coding. Consult `the Python wiki <https://wiki.python.org/moin/"
"PythonEditors>`_ for a full list of Python editing environments."
"Python that is written in Python using Tkinter. Emacs users will be happy to "
"know that there is a very good Python mode for Emacs. All of these "
"programming environments provide syntax highlighting, auto-indenting, and "
"access to the interactive interpreter while coding. Consult `the Python "
"wiki <https://wiki.python.org/moin/PythonEditors>`_ for a full list of "
"Python editing environments."
msgstr ""
"Il y a aussi de bons environnements de développement intégrés (EDIs) pour "
"Python. IDLE est un EDI multiplateformes pour Python qui est écrit en Python "
@ -927,7 +950,7 @@ msgstr ""
"<https://wiki.python.org/moin/PythonEditors>`_ pour une liste complète des "
"environnements de développement intégrés."
#: faq/general.rst:445
#: faq/general.rst:451
msgid ""
"If you want to discuss Python's use in education, you may be interested in "
"joining `the edu-sig mailing list <https://www.python.org/community/sigs/"
@ -936,3 +959,33 @@ msgstr ""
"Si vous voulez discuter de l'usage de Python dans l'éducation, vous devriez "
"intéressé pour rejoindre `la liste de diffusion pour l'enseignement <https://"
"www.python.org/community/sigs/current/edu-sig>`_."
#~ msgid ""
#~ "Python versions are numbered A.B.C or A.B. A is the major version number "
#~ "-- it is only incremented for really major changes in the language. B is "
#~ "the minor version number, incremented for less earth-shattering changes. "
#~ "C is the micro-level -- it is incremented for each bugfix release. See :"
#~ "pep:`6` for more information about bugfix releases."
#~ msgstr ""
#~ "Les versions de Python sont numérotées A.B.C ou A.B. A est une version "
#~ "majeure -- elle est augmentée seulement lorsqu'il y a des changements "
#~ "conséquents dans le langage. B est une version mineure, elle est "
#~ "augmentée lors de changements de moindre importance. C est un micro-"
#~ "niveau -- elle est augmentée à chaque sortie de correctifs de bogue."
#~ msgid ""
#~ "Alpha, beta and release candidate versions have an additional suffix. "
#~ "The suffix for an alpha version is \"aN\" for some small number N, the "
#~ "suffix for a beta version is \"bN\" for some small number N, and the "
#~ "suffix for a release candidate version is \"rcN\" for some small number "
#~ "N. In other words, all versions labeled 2.0aN precede the versions "
#~ "labeled 2.0bN, which precede versions labeled 2.0rcN, and *those* precede "
#~ "2.0."
#~ msgstr ""
#~ "Les versions *alpha*, *beta* et *release candidate* ont un suffixe "
#~ "supplémentaire. Le suffixe pour une version alpha est « aN » où N est un "
#~ "petit nombre, le suffixe pour une version *beta* est *bN* où N est un "
#~ "petit nombre, et le suffixe pour une *release candidate* est *rcN* où N "
#~ "est un petit nombre. En d'autres mots, toutes les versions nommées *2.0."
#~ "aN* précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0rcN, et "
#~ "*celles-ci* précèdent la version 2.0."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-16 02:34+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -93,10 +93,11 @@ msgstr ""
"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`."
#: faq/gui.rst:49
#, fuzzy
msgid ""
"To get truly stand-alone applications, the Tcl scripts that form the library "
"have to be integrated into the application as well. One tool supporting that "
"is SAM (stand-alone modules), which is part of the Tix distribution (http://"
"is SAM (stand-alone modules), which is part of the Tix distribution (https://"
"tix.sourceforge.net/)."
msgstr ""
"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-06 20:15+0100\n"
"Last-Translator: Fipaddict <fipaddict@protonmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -210,19 +210,11 @@ msgstr ""
"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes "
"d'exploitation ne semblent plus exister ou être maintenus."
#: faq/library.rst:109
msgid ""
"For Windows: use `the consolelib module <http://effbot.org/zone/console-"
"index.htm>`_."
msgstr ""
"Pour Windows : utilisez le module `consolelib <http://effbot.org/zone/"
"console-index.htm>`_."
#: faq/library.rst:114
#: faq/library.rst:111
msgid "Is there an equivalent to C's onexit() in Python?"
msgstr "Existe-t-il un équivalent à la fonction C ``onexit()`` en Python ?"
#: faq/library.rst:116
#: faq/library.rst:113
msgid ""
"The :mod:`atexit` module provides a register function that is similar to "
"C's :c:func:`onexit`."
@ -230,11 +222,11 @@ msgstr ""
"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la "
"fonction C :c:func:`onexit`."
#: faq/library.rst:121
#: faq/library.rst:118
msgid "Why don't my signal handlers work?"
msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-ils pas ?"
#: faq/library.rst:123
#: faq/library.rst:120
msgid ""
"The most common problem is that the signal handler is declared with the "
"wrong argument list. It is called as ::"
@ -242,19 +234,19 @@ msgstr ""
"Le problème le plus courant est d'appeler le gestionnaire de signaux avec "
"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::"
#: faq/library.rst:128
#: faq/library.rst:125
msgid "so it should be declared with two parameters::"
msgstr "donc il doit être déclaré avec deux paramètres ::"
#: faq/library.rst:135
#: faq/library.rst:132
msgid "Common tasks"
msgstr "Tâches fréquentes"
#: faq/library.rst:138
#: faq/library.rst:135
msgid "How do I test a Python program or component?"
msgstr "Comment tester un programme ou un composant Python ?"
#: faq/library.rst:140
#: faq/library.rst:137
msgid ""
"Python comes with two testing frameworks. The :mod:`doctest` module finds "
"examples in the docstrings for a module and runs them, comparing the output "
@ -264,7 +256,7 @@ msgstr ""
"exemples dans les *docstrings* d'un module et les exécute. Il compare alors "
"la sortie avec la sortie attendue, telle que définie dans la *docstring*."
#: faq/library.rst:144
#: faq/library.rst:141
msgid ""
"The :mod:`unittest` module is a fancier testing framework modelled on Java "
"and Smalltalk testing frameworks."
@ -272,7 +264,7 @@ msgstr ""
"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les "
"cadriciels de test de Java et de Smalltalk."
#: faq/library.rst:147
#: faq/library.rst:144
msgid ""
"To make testing easier, you should use good modular design in your program. "
"Your program should have almost all functionality encapsulated in either "
@ -291,16 +283,16 @@ msgstr ""
"manipuler des variables globales, car ceci rend le test beaucoup plus "
"difficile."
#: faq/library.rst:155
#: faq/library.rst:152
msgid "The \"global main logic\" of your program may be as simple as ::"
msgstr ""
"La « logique générale » d'un programme devrait être aussi simple que ::"
#: faq/library.rst:160
#: faq/library.rst:157
msgid "at the bottom of the main module of your program."
msgstr "à la fin du module principal du programme."
#: faq/library.rst:162
#: faq/library.rst:159
msgid ""
"Once your program is organized as a tractable collection of function and "
"class behaviours, you should write test functions that exercise the "
@ -322,7 +314,7 @@ msgstr ""
"amusant, car ceci permet de trouver des bogues, voire des défauts de "
"conception, plus facilement."
#: faq/library.rst:170
#: faq/library.rst:167
msgid ""
"\"Support modules\" that are not intended to be the main module of a program "
"may include a self-test of the module. ::"
@ -330,7 +322,7 @@ msgstr ""
"Les « modules auxiliaires » qui n'ont pas vocation à être le module "
"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::"
#: faq/library.rst:176
#: faq/library.rst:173
msgid ""
"Even programs that interact with complex external interfaces may be tested "
"when the external interfaces are unavailable by using \"fake\" interfaces "
@ -340,16 +332,17 @@ msgstr ""
"peuvent être testés même quand ces interfaces ne sont pas disponibles, en "
"utilisant des interfaces « simulacres » implémentées en Python."
#: faq/library.rst:182
#: faq/library.rst:179
msgid "How do I create documentation from doc strings?"
msgstr "Comment générer la documentation à partir des *docstrings* ?"
#: faq/library.rst:184
#: faq/library.rst:181
#, fuzzy
msgid ""
"The :mod:`pydoc` module can create HTML from the doc strings in your Python "
"source code. An alternative for creating API documentation purely from "
"docstrings is `epydoc <http://epydoc.sourceforge.net/>`_. `Sphinx <http://"
"sphinx-doc.org>`_ can also include docstring content."
"docstrings is `epydoc <https://epydoc.sourceforge.net/>`_. `Sphinx <https://"
"www.sphinx-doc.org>`_ can also include docstring content."
msgstr ""
"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du "
"code source Python. Il est aussi possible de documenter une API uniquement à "
@ -357,11 +350,11 @@ msgstr ""
">`_. `Sphinx <http://sphinx-doc.org>`_ peut également inclure du contenu "
"provenant de *docstrings*."
#: faq/library.rst:191
#: faq/library.rst:188
msgid "How do I get a single keypress at a time?"
msgstr "Comment détecter qu'une touche est pressée ?"
#: faq/library.rst:193
#: faq/library.rst:190
msgid ""
"For Unix variants there are several solutions. It's straightforward to do "
"this using curses, but curses is a fairly large module to learn."
@ -370,15 +363,15 @@ msgstr ""
"en utilisant le module *curses*, mais *curses* est un module assez "
"conséquent à apprendre."
#: faq/library.rst:237
#: faq/library.rst:234
msgid "Threads"
msgstr "Fils d'exécution"
#: faq/library.rst:240
#: faq/library.rst:237
msgid "How do I program using threads?"
msgstr "Comment programmer avec des fils d'exécution ?"
#: faq/library.rst:242
#: faq/library.rst:239
msgid ""
"Be sure to use the :mod:`threading` module and not the :mod:`_thread` "
"module. The :mod:`threading` module builds convenient abstractions on top of "
@ -388,11 +381,11 @@ msgstr ""
"`_thread`. Le module :mod:`threading` fournit une abstraction plus facile à "
"manipuler que les primitives de bas-niveau du module :mod:`_thread`."
#: faq/library.rst:248
#: faq/library.rst:245
msgid "None of my threads seem to run: why?"
msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?"
#: faq/library.rst:250
#: faq/library.rst:247
msgid ""
"As soon as the main thread exits, all threads are killed. Your main thread "
"is running too quickly, giving the threads no time to do any work."
@ -401,7 +394,7 @@ msgstr ""
"fil principal s'exécute trop rapidement, sans laisser le temps aux autres "
"fils de faire quoi que ce soit."
#: faq/library.rst:253
#: faq/library.rst:250
msgid ""
"A simple fix is to add a sleep to the end of the program that's long enough "
"for all the threads to finish::"
@ -409,7 +402,7 @@ msgstr ""
"Une correction simple consiste à ajouter un temps d'attente suffisamment "
"long à la fin du programme pour que tous les fils puissent se terminer ::"
#: faq/library.rst:268
#: faq/library.rst:265
msgid ""
"But now (on many platforms) the threads don't run in parallel, but appear to "
"run sequentially, one at a time! The reason is that the OS thread scheduler "
@ -420,13 +413,13 @@ msgstr ""
"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne "
"démarre pas de nouveau fil avant que le précédent ne soit bloqué."
#: faq/library.rst:272
#: faq/library.rst:269
msgid "A simple fix is to add a tiny sleep to the start of the run function::"
msgstr ""
"Une correction simple consiste à ajouter un petit temps d'attente au début "
"de la fonction ::"
#: faq/library.rst:285
#: faq/library.rst:282
msgid ""
"Instead of trying to guess a good delay value for :func:`time.sleep`, it's "
"better to use some kind of semaphore mechanism. One idea is to use the :mod:"
@ -441,13 +434,13 @@ msgstr ""
"quand il se termine, et que le fil principal retire autant de jetons de la "
"file qu'il y a de fils."
#: faq/library.rst:293
#: faq/library.rst:290
msgid "How do I parcel out work among a bunch of worker threads?"
msgstr ""
"Comment découper et répartir une tâche au sein d'un ensemble de fils "
"d'exécutions ?"
#: faq/library.rst:295
#: faq/library.rst:292
msgid ""
"The easiest way is to use the :mod:`concurrent.futures` module, especially "
"the :mod:`~concurrent.futures.ThreadPoolExecutor` class."
@ -456,7 +449,7 @@ msgstr ""
"futures`, en particulier la classe :mod:`~concurrent.futures."
"ThreadPoolExecutor`."
#: faq/library.rst:298
#: faq/library.rst:295
msgid ""
"Or, if you want fine control over the dispatching algorithm, you can write "
"your own logic manually. Use the :mod:`queue` module to create a queue "
@ -473,15 +466,15 @@ msgstr ""
"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque "
"tâche soit exécutée une et une seule fois."
#: faq/library.rst:305
#: faq/library.rst:302
msgid "Here's a trivial example::"
msgstr "Voici un exemple trivial ::"
#: faq/library.rst:343
#: faq/library.rst:340
msgid "When run, this will produce the following output:"
msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :"
#: faq/library.rst:361
#: faq/library.rst:358
msgid ""
"Consult the module's documentation for more details; the :class:`~queue."
"Queue` class provides a featureful interface."
@ -489,13 +482,13 @@ msgstr ""
"Consultez la documentation du module pour plus de détails ; la classe :class:"
"`~queue.Queue` fournit une interface pleine de fonctionnalités."
#: faq/library.rst:366
#: faq/library.rst:363
msgid "What kinds of global value mutation are thread-safe?"
msgstr ""
"Quels types de mutations sur des variables globales sont compatibles avec "
"les programmes à fils d'exécution multiples ? sécurisé ?"
#: faq/library.rst:368
#: faq/library.rst:365
msgid ""
"A :term:`global interpreter lock` (GIL) is used internally to ensure that "
"only one thread runs in the Python VM at a time. In general, Python offers "
@ -513,7 +506,7 @@ msgstr ""
"intermédiaire, et, par conséquent, tout le code C appelé par cette "
"instruction est donc atomique du point de vue d'un programme Python."
#: faq/library.rst:375
#: faq/library.rst:372
msgid ""
"In theory, this means an exact accounting requires an exact understanding of "
"the PVM bytecode implementation. In practice, it means that operations on "
@ -526,7 +519,7 @@ msgstr ""
"listes, les dictionnaires, etc.) qui « semblent atomiques » le sont "
"réellement."
#: faq/library.rst:380
#: faq/library.rst:377
msgid ""
"For example, the following operations are all atomic (L, L1, L2 are lists, "
"D, D1, D2 are dicts, x, y are objects, i, j are ints)::"
@ -535,11 +528,11 @@ msgstr ""
"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* "
"sont des objets, *i* et *j* des entiers) ::"
#: faq/library.rst:395
#: faq/library.rst:392
msgid "These aren't::"
msgstr "Les suivantes ne le sont pas ::"
#: faq/library.rst:402
#: faq/library.rst:399
msgid ""
"Operations that replace other objects may invoke those other objects' :meth:"
"`__del__` method when their reference count reaches zero, and that can "
@ -552,11 +545,11 @@ msgstr ""
"changements massifs sur des dictionnaires ou des listes. En cas de doute, il "
"vaut mieux utiliser un mutex !"
#: faq/library.rst:409
#: faq/library.rst:406
msgid "Can't we get rid of the Global Interpreter Lock?"
msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?"
#: faq/library.rst:413
#: faq/library.rst:410
msgid ""
"The :term:`global interpreter lock` (GIL) is often seen as a hindrance to "
"Python's deployment on high-end multiprocessor server machines, because a "
@ -570,7 +563,7 @@ msgstr ""
"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL "
"acquis."
#: faq/library.rst:418
#: faq/library.rst:415
msgid ""
"Back in the days of Python 1.5, Greg Stein actually implemented a "
"comprehensive patch set (the \"free threading\" patches) that removed the "
@ -590,7 +583,7 @@ msgstr ""
"un seul fil d'exécution, à cause de la quantité de verrouillage plus "
"granulaire nécessaire pour contrebalancer la suppression du GIL."
#: faq/library.rst:426
#: faq/library.rst:423
msgid ""
"This doesn't mean that you can't make good use of Python on multi-CPU "
"machines! You just have to be creative with dividing the work up between "
@ -608,7 +601,7 @@ msgstr ""
"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un "
"meilleur contrôle sur la distribution des tâches."
#: faq/library.rst:434
#: faq/library.rst:431
msgid ""
"Judicious use of C extensions will also help; if you use a C extension to "
"perform a time-consuming task, the extension can release the GIL while the "
@ -622,7 +615,7 @@ msgstr ""
"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` "
"ou :mod:`hashlib` utilisent cette technique."
#: faq/library.rst:440
#: faq/library.rst:437
msgid ""
"It has been suggested that the GIL should be a per-interpreter-state lock "
"rather than truly global; interpreters then wouldn't be able to share "
@ -643,7 +636,7 @@ msgstr ""
"ont leur propre liste de suppression, ces listes devraient être déplacées au "
"niveau de l'interpréteur et ainsi de suite."
#: faq/library.rst:449
#: faq/library.rst:446
msgid ""
"And I doubt that it can even be done in finite time, because the same "
"problem exists for 3rd party extensions. It is likely that 3rd party "
@ -655,7 +648,7 @@ msgstr ""
"qu'il ne soit possible de les corriger pour les faire stocker leur état au "
"niveau de l'interpréteur et non plus au niveau global."
#: faq/library.rst:454
#: faq/library.rst:451
msgid ""
"And finally, once you have multiple interpreters not sharing any state, what "
"have you gained over running each interpreter in a separate process?"
@ -664,15 +657,15 @@ msgstr ""
"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans "
"un processus différent ?"
#: faq/library.rst:459
#: faq/library.rst:456
msgid "Input and Output"
msgstr "Les entrées/sorties"
#: faq/library.rst:462
#: faq/library.rst:459
msgid "How do I delete a file? (And other file questions...)"
msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)"
#: faq/library.rst:464
#: faq/library.rst:461
msgid ""
"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, "
"see the :mod:`os` module. The two functions are identical; :func:`~os."
@ -683,7 +676,7 @@ msgstr ""
"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel "
"système à cette fonction sous Unix."
#: faq/library.rst:468
#: faq/library.rst:465
msgid ""
"To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create "
"one. ``os.makedirs(path)`` will create any intermediate directories in "
@ -697,12 +690,12 @@ msgstr ""
"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer "
"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`."
#: faq/library.rst:474
#: faq/library.rst:471
msgid "To rename a file, use ``os.rename(old_path, new_path)``."
msgstr ""
"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier."
#: faq/library.rst:476
#: faq/library.rst:473
msgid ""
"To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use "
"``f.truncate(offset)``; offset defaults to the current seek position. "
@ -715,7 +708,7 @@ msgstr ""
"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts avec :"
"func:`os.open`, où *df* est le descripteur de fichier (un entier court)."
#: faq/library.rst:481
#: faq/library.rst:478
msgid ""
"The :mod:`shutil` module also contains a number of functions to work on "
"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :"
@ -725,24 +718,26 @@ msgstr ""
"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :"
"func:`~shutil.copytree` et :func:`~shutil.rmtree`."
#: faq/library.rst:487
#: faq/library.rst:484
msgid "How do I copy a file?"
msgstr "Comment copier un fichier ?"
#: faq/library.rst:489
#: faq/library.rst:486
msgid ""
"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note "
"that on MacOS 9 it doesn't copy the resource fork and Finder info."
"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note "
"that on Windows NTFS volumes, it does not copy `alternate data streams "
"<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>`_ nor "
"`resource forks <https://en.wikipedia.org/wiki/Resource_fork>`__ on macOS "
"HFS+ volumes, though both are now rarely used. It also doesn't copy file "
"permissions and metadata, though using :func:`shutil.copy2` instead will "
"preserve most (though not all) of it."
msgstr ""
"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous "
"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations "
"du chercheur."
#: faq/library.rst:494
#: faq/library.rst:497
msgid "How do I read (or write) binary data?"
msgstr "Comment lire (ou écrire) des données binaires ?"
#: faq/library.rst:496
#: faq/library.rst:499
msgid ""
"To read or write complex binary data formats, it's best to use the :mod:"
"`struct` module. It allows you to take a string containing binary data "
@ -753,7 +748,7 @@ msgstr ""
"une chaîne de caractères qui contient des données binaires, souvent des "
"nombres, en objets Python, et vice-versa."
#: faq/library.rst:500
#: faq/library.rst:503
msgid ""
"For example, the following code reads two 2-byte integers and one 4-byte "
"integer in big-endian format from a file::"
@ -761,7 +756,7 @@ msgstr ""
"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur "
"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::"
#: faq/library.rst:509
#: faq/library.rst:512
msgid ""
"The '>' in the format string forces big-endian data; the letter 'h' reads "
"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 "
@ -771,7 +766,7 @@ msgstr ""
"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la "
"lettre « l » indique un entier long (4 octets)."
#: faq/library.rst:513
#: faq/library.rst:516
msgid ""
"For data that is more regular (e.g. a homogeneous list of ints or floats), "
"you can also use the :mod:`array` module."
@ -780,7 +775,7 @@ msgstr ""
"nombres à virgule flottante), il est possible d'utiliser le module :mod:"
"`array`."
#: faq/library.rst:518
#: faq/library.rst:521
msgid ""
"To read and write binary data, it is mandatory to open the file in binary "
"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` "
@ -793,13 +788,13 @@ msgstr ""
"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu "
"d'objets :class:`bytes`."
#: faq/library.rst:526
#: faq/library.rst:529
msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?"
msgstr ""
"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os."
"popen()`` ; pourquoi ?"
#: faq/library.rst:528
#: faq/library.rst:531
msgid ""
":func:`os.read` is a low-level function which takes a file descriptor, a "
"small integer representing the opened file. :func:`os.popen` creates a high-"
@ -814,34 +809,34 @@ msgstr ""
"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p."
"read(n)``."
#: faq/library.rst:615
#: faq/library.rst:618
msgid "How do I access the serial (RS232) port?"
msgstr "Comment accéder au port de transmission en série (RS-232) ?"
#: faq/library.rst:617
#: faq/library.rst:620
msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:"
msgstr "Pour Win32, OSX, Linux, BSD, Jython et IronPython :"
#: faq/library.rst:619
#: faq/library.rst:622
msgid "https://pypi.org/project/pyserial/"
msgstr "https://pypi.org/project/pyserial/"
#: faq/library.rst:621
#: faq/library.rst:624
msgid "For Unix, see a Usenet post by Mitch Chapman:"
msgstr ""
"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :"
#: faq/library.rst:623
#: faq/library.rst:626
msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
#: faq/library.rst:627
#: faq/library.rst:630
msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?"
msgstr ""
"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas "
"réellement ?"
#: faq/library.rst:629
#: faq/library.rst:632
msgid ""
"Python :term:`file objects <file object>` are a high-level layer of "
"abstraction on low-level C file descriptors."
@ -849,7 +844,7 @@ msgstr ""
"Les :term:`objets fichiers <file object>` en Python sont des abstractions de "
"haut niveau sur les descripteurs de fichier C de bas niveau."
#: faq/library.rst:632
#: faq/library.rst:635
msgid ""
"For most file objects you create in Python via the built-in :func:`open` "
"function, ``f.close()`` marks the Python file object as being closed from "
@ -863,7 +858,7 @@ msgstr ""
"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est "
"recyclé."
#: faq/library.rst:638
#: faq/library.rst:641
msgid ""
"But stdin, stdout and stderr are treated specially by Python, because of the "
"special status also given to them by C. Running ``sys.stdout.close()`` "
@ -875,7 +870,7 @@ msgstr ""
"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais "
"le descripteur de fichier C associé n'est *pas* fermé."
#: faq/library.rst:643
#: faq/library.rst:646
msgid ""
"To close the underlying C file descriptor for one of these three, you should "
"first be sure that's what you really want to do (e.g., you may confuse "
@ -886,21 +881,21 @@ msgstr ""
"exemple, perturber le bon fonctionnement de modules qui font des opérations "
"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::"
#: faq/library.rst:651
#: faq/library.rst:654
msgid "Or you can use the numeric constants 0, 1 and 2, respectively."
msgstr ""
"Il est aussi possible de fermer respectivement les constantes numériques 0, "
"1 ou 2."
#: faq/library.rst:655
#: faq/library.rst:658
msgid "Network/Internet Programming"
msgstr "Programmation réseau et Internet"
#: faq/library.rst:658
#: faq/library.rst:661
msgid "What WWW tools are there for Python?"
msgstr "Quels sont les outils Python dédiés à la Toile ?"
#: faq/library.rst:660
#: faq/library.rst:663
msgid ""
"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library "
"Reference Manual. Python has many modules that will help you build server-"
@ -910,7 +905,7 @@ msgstr ""
"le manuel de référence de la bibliothèque. Python a de nombreux modules pour "
"construire des applications de Toile côté client comme côté serveur."
#: faq/library.rst:666
#: faq/library.rst:669
msgid ""
"A summary of available frameworks is maintained by Paul Boddie at https://"
"wiki.python.org/moin/WebProgramming\\ ."
@ -918,20 +913,22 @@ msgstr ""
"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à "
"l'adresse https://wiki.python.org/moin/WebProgramming\\ ."
#: faq/library.rst:669
#: faq/library.rst:672
#, fuzzy
msgid ""
"Cameron Laird maintains a useful set of pages about Python web technologies "
"at http://phaseit.net/claird/comp.lang.python/web_python."
"at https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp."
"lang.python/web_python."
msgstr ""
"Cameron Laird maintient un ensemble intéressant d'articles sur les "
"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/"
"comp.lang.python/web_python."
#: faq/library.rst:674
#: faq/library.rst:677
msgid "How can I mimic CGI form submission (METHOD=POST)?"
msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?"
#: faq/library.rst:676
#: faq/library.rst:679
msgid ""
"I would like to retrieve web pages that are the result of POSTing a form. Is "
"there existing code that would let me do this easily?"
@ -939,11 +936,11 @@ msgstr ""
"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la "
"Toile. Existe-t-il déjà du code qui pourrait m'aider à le faire facilement ?"
#: faq/library.rst:679
#: faq/library.rst:682
msgid "Yes. Here's a simple example that uses :mod:`urllib.request`::"
msgstr "Oui. Voici un exemple simple d'utilisation de :mod:`urllib.request` ::"
#: faq/library.rst:694
#: faq/library.rst:697
msgid ""
"Note that in general for percent-encoded POST operations, query strings must "
"be quoted using :func:`urllib.parse.urlencode`. For example, to send "
@ -954,15 +951,15 @@ msgstr ""
"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr."
"`` ::"
#: faq/library.rst:702
#: faq/library.rst:705
msgid ":ref:`urllib-howto` for extensive examples."
msgstr ":ref:`urllib-howto` pour des exemples complets."
#: faq/library.rst:706
#: faq/library.rst:709
msgid "What module should I use to help with generating HTML?"
msgstr "Quel module utiliser pour générer du HTML ?"
#: faq/library.rst:710
#: faq/library.rst:713
msgid ""
"You can find a collection of useful links on the `Web Programming wiki page "
"<https://wiki.python.org/moin/WebProgramming>`_."
@ -970,15 +967,15 @@ msgstr ""
"La `page wiki de la programmation Toile <https://wiki.python.org/moin/"
"WebProgramming>`_ (en anglais) répertorie un ensemble de liens pertinents."
#: faq/library.rst:715
#: faq/library.rst:718
msgid "How do I send mail from a Python script?"
msgstr "Comment envoyer un courriel avec un script Python ?"
#: faq/library.rst:717
#: faq/library.rst:720
msgid "Use the standard library module :mod:`smtplib`."
msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard."
#: faq/library.rst:719
#: faq/library.rst:722
msgid ""
"Here's a very simple interactive mail sender that uses it. This method will "
"work on any host that supports an SMTP listener. ::"
@ -986,7 +983,7 @@ msgstr ""
"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette "
"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::"
#: faq/library.rst:739
#: faq/library.rst:742
msgid ""
"A Unix-only alternative uses sendmail. The location of the sendmail program "
"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/"
@ -998,13 +995,13 @@ msgstr ""
"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut "
"vous aider. Par exemple ::"
#: faq/library.rst:759
#: faq/library.rst:762
msgid "How do I avoid blocking in the connect() method of a socket?"
msgstr ""
"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur "
"réseau ?"
#: faq/library.rst:761
#: faq/library.rst:764
msgid ""
"The :mod:`select` module is commonly used to help with asynchronous I/O on "
"sockets."
@ -1012,7 +1009,7 @@ msgstr ""
"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-"
"sorties asynchrones sur des connecteurs réseaux."
#: faq/library.rst:764
#: faq/library.rst:767
msgid ""
"To prevent the TCP connect from blocking, you can set the socket to non-"
"blocking mode. Then when you do the :meth:`socket.connect`, you will either "
@ -1029,7 +1026,7 @@ msgstr ""
"n'a pas encore aboutie. La valeur dépend du système d'exploitation, donc "
"renseignez-vous sur la valeur utilisée par votre système."
#: faq/library.rst:771
#: faq/library.rst:774
msgid ""
"You can use the :meth:`socket.connect_ex` method to avoid creating an "
"exception. It will just return the errno value. To poll, you can call :"
@ -1044,7 +1041,7 @@ msgstr ""
"argument de :meth:`select.select` pour vérifier si le connecteur est prêt à "
"recevoir des entrées."
#: faq/library.rst:777
#: faq/library.rst:780
msgid ""
"The :mod:`asyncio` module provides a general purpose single-threaded and "
"concurrent asynchronous library, which can be used for writing non-blocking "
@ -1056,20 +1053,20 @@ msgstr ""
"`Twisted <https://twistedmatrix.com/trac/>`_ en est une alternative "
"plébiscitée, avec un grand nombre de fonctionnalités."
#: faq/library.rst:785
#: faq/library.rst:788
msgid "Databases"
msgstr "Bases de données"
#: faq/library.rst:788
#: faq/library.rst:791
msgid "Are there any interfaces to database packages in Python?"
msgstr ""
"Existe-t-il des modules Python pour s'interfacer avec des bases de données ?"
#: faq/library.rst:790
#: faq/library.rst:793
msgid "Yes."
msgstr "Oui."
#: faq/library.rst:792
#: faq/library.rst:795
msgid ""
"Interfaces to disk-based hashes such as :mod:`DBM <dbm.ndbm>` and :mod:`GDBM "
"<dbm.gnu>` are also included with standard Python. There is also the :mod:"
@ -1081,7 +1078,7 @@ msgstr ""
"aussi le module :mod:`sqlite3` qui implémente une base de données "
"relationnelle légère sur disque."
#: faq/library.rst:797
#: faq/library.rst:800
msgid ""
"Support for most relational databases is available. See the "
"`DatabaseProgramming wiki page <https://wiki.python.org/moin/"
@ -1091,11 +1088,11 @@ msgstr ""
"Voir la page wiki `DatabaseProgramming <https://wiki.python.org/moin/"
"DatabaseProgramming>`_ pour plus de détails."
#: faq/library.rst:803
#: faq/library.rst:806
msgid "How do you implement persistent objects in Python?"
msgstr "Comment implémenter la persistance d'objets en Python ?"
#: faq/library.rst:805
#: faq/library.rst:808
msgid ""
"The :mod:`pickle` library module solves this in a very general way (though "
"you still can't store things like open files, sockets or windows), and the :"
@ -1107,15 +1104,15 @@ msgstr ""
"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise "
"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python."
#: faq/library.rst:812
#: faq/library.rst:815
msgid "Mathematics and Numerics"
msgstr "Mathématiques et calcul numérique"
#: faq/library.rst:815
#: faq/library.rst:818
msgid "How do I generate random numbers in Python?"
msgstr "Comment générer des nombres aléatoires en Python ?"
#: faq/library.rst:817
#: faq/library.rst:820
msgid ""
"The standard module :mod:`random` implements a random number generator. "
"Usage is simple::"
@ -1123,48 +1120,48 @@ msgstr ""
"Le module :mod:`random` de la bibliothèque standard comprend un générateur "
"de nombres aléatoires. Son utilisation est simple ::"
#: faq/library.rst:823
#: faq/library.rst:826
msgid "This returns a random floating point number in the range [0, 1)."
msgstr ""
"Le code précédent renvoie un nombre à virgule flottante aléatoire dans "
"l'intervalle [0, 1[."
#: faq/library.rst:825
#: faq/library.rst:828
msgid ""
"There are also many other specialized generators in this module, such as:"
msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :"
#: faq/library.rst:827
#: faq/library.rst:830
msgid "``randrange(a, b)`` chooses an integer in the range [a, b)."
msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[."
#: faq/library.rst:828
#: faq/library.rst:831
msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)."
msgstr ""
"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans "
"l'intervalle [a, b[."
#: faq/library.rst:829
#: faq/library.rst:832
msgid ""
"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution."
msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)."
#: faq/library.rst:831
#: faq/library.rst:834
msgid "Some higher-level functions operate on sequences directly, such as:"
msgstr ""
"Des fonctions de haut niveau opèrent directement sur des séquences comme :"
#: faq/library.rst:833
#: faq/library.rst:836
msgid "``choice(S)`` chooses a random element from a given sequence."
msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée."
#: faq/library.rst:834
#: faq/library.rst:837
msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly."
msgstr ""
"``shuffle(L)`` mélange une liste en-place, c.-à-d. lui applique une "
"permutation aléatoire."
#: faq/library.rst:836
#: faq/library.rst:839
msgid ""
"There's also a ``Random`` class you can instantiate to create independent "
"multiple random number generators."
@ -1172,6 +1169,21 @@ msgstr ""
"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour "
"créer des générateurs aléatoires indépendants."
#~ msgid ""
#~ "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. "
#~ "Note that on MacOS 9 it doesn't copy the resource fork and Finder info."
#~ msgstr ""
#~ "Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. "
#~ "Sous MacOS 9, celle-ci ne copie pas le clonage de ressources ni les "
#~ "informations du chercheur."
#~ msgid ""
#~ "For Windows: use `the consolelib module <http://effbot.org/zone/console-"
#~ "index.htm>`_."
#~ msgstr ""
#~ "Pour Windows : utilisez le module `consolelib <http://effbot.org/zone/"
#~ "console-index.htm>`_."
#~ msgid ""
#~ "Aahz has a set of slides from his threading tutorial that are helpful; "
#~ "see http://www.pythoncraft.com/OSCON2001/."

File diff suppressed because it is too large Load Diff

View File

@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-12-11 15:54+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-05-27 12:17+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 3.0.1\n"
#: faq/windows.rst:9
msgid "Python on Windows FAQ"
@ -40,19 +40,19 @@ msgstr ""
#: faq/windows.rst:28
msgid ""
"Unless you use some sort of integrated development environment, you will end "
"up *typing* Windows commands into what is variously referred to as a \"DOS "
"window\" or \"Command prompt window\". Usually you can create such a window "
"from your search bar by searching for ``cmd``. You should be able to "
"recognize when you have started such a window because you will see a Windows "
"\"command prompt\", which usually looks like this:"
"up *typing* Windows commands into what is referred to as a \"Command prompt "
"window\". Usually you can create such a window from your search bar by "
"searching for ``cmd``. You should be able to recognize when you have "
"started such a window because you will see a Windows \"command prompt\", "
"which usually looks like this:"
msgstr ""
"À moins que vous n'utilisiez une sorte d'environnement de développement, "
"vous finirez par *taper* des commandes Windows dans ce qui est diversement "
"appelé une \"fenêtre DOS\" ou \"invite de commande Windows\". En général "
"vous pouvez ouvrir un telle fenêtre depuis votre barre de recherche en "
"cherchant ``cmd``. Vous devriez être capable de reconnaître quand vous avez "
"lancé une telle fenêtre parce que vous verrez une invite de commande "
"Windows, qui en en général ressemble à ça :"
"vous finirez par *taper* des commandes Windows dans ce qui est appelé une "
"« invite de commande Windows ». En général vous pouvez ouvrir un telle "
"fenêtre depuis votre barre de recherche en cherchant ``cmd``. Vous devriez "
"être capable de reconnaître quand vous avez lancé une telle fenêtre parce "
"que vous verrez une « invite de commande » Windows, qui en en général "
"ressemble à ça :"
#: faq/windows.rst:39
msgid ""
@ -337,15 +337,7 @@ msgstr ""
"peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui "
"appelle des routines dans l'API C de Python."
#: faq/windows.rst:189
msgid ""
"Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
"exe first."
msgstr ""
"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant "
"*Coff2Omf.exe* en premier."
#: faq/windows.rst:194
#: faq/windows.rst:191
msgid ""
"If you use SWIG, it is easy to create a Python \"extension module\" that "
"will make the app's data and methods available to Python. SWIG will handle "
@ -360,7 +352,7 @@ msgstr ""
"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également "
"la liaison."
#: faq/windows.rst:200
#: faq/windows.rst:197
msgid ""
"SWIG will create an init function (a C function) whose name depends on the "
"name of the extension module. For example, if the name of the module is "
@ -375,7 +367,7 @@ msgstr ""
"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible "
"utilisée par la classe *shadow*."
#: faq/windows.rst:206
#: faq/windows.rst:203
msgid ""
"The reason you can link the C code in step 2 into your .exe file is that "
"calling the initialization function is equivalent to importing the module "
@ -385,7 +377,7 @@ msgstr ""
"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à "
"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)"
#: faq/windows.rst:210
#: faq/windows.rst:207
msgid ""
"In short, you can use the following code to initialize the Python "
"interpreter with your extension module."
@ -393,7 +385,7 @@ msgstr ""
"En bref, vous pouvez utiliser le code suivant pour initialiser "
"l'interpréteur Python avec votre module d'extension."
#: faq/windows.rst:221
#: faq/windows.rst:218
msgid ""
"There are two problems with Python's C API which will become apparent if you "
"use a compiler other than MSVC, the compiler used to build pythonNN.dll."
@ -402,7 +394,7 @@ msgstr ""
"utilisez un compilateur autre que MSVC, le compilateur utilisé pour "
"construire *pythonNN.dll*."
#: faq/windows.rst:224
#: faq/windows.rst:221
msgid ""
"Problem 1: The so-called \"Very High Level\" functions that take FILE * "
"arguments will not work in a multi-compiler environment because each "
@ -415,7 +407,7 @@ msgstr ""
"structure de FILE. Du point de vue de l'implémentation, il s'agit de "
"fonctions de très bas niveau."
#: faq/windows.rst:229
#: faq/windows.rst:226
msgid ""
"Problem 2: SWIG generates the following code when generating wrappers to "
"void functions:"
@ -423,7 +415,7 @@ msgstr ""
"Problème 2 : SWIG génère le code suivant lors de la génération "
"*d'encapsuleurs* pour annuler les fonctions :"
#: faq/windows.rst:238
#: faq/windows.rst:235
msgid ""
"Alas, Py_None is a macro that expands to a reference to a complex data "
"structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will "
@ -434,7 +426,7 @@ msgstr ""
"une fois, ce code échouera dans un environnement multi-compilateur. "
"Remplacez ce code par :"
#: faq/windows.rst:246
#: faq/windows.rst:243
msgid ""
"It may be possible to use SWIG's ``%typemap`` command to make the change "
"automatically, though I have not been able to get this to work (I'm a "
@ -444,7 +436,7 @@ msgstr ""
"le changement automatiquement, bien que je n'ai pas réussi à le faire "
"fonctionner (je suis un débutant complet avec SWIG)."
#: faq/windows.rst:250
#: faq/windows.rst:247
msgid ""
"Using a Python shell script to put up a Python interpreter window from "
"inside your Windows app is not a good idea; the resulting window will be "
@ -465,13 +457,13 @@ msgstr ""
"dont vous avez besoin est un objet Python (défini dans votre module "
"d'extension) qui contient les méthodes *read()* et *write()*."
#: faq/windows.rst:259
#: faq/windows.rst:256
msgid "How do I keep editors from inserting tabs into my Python source?"
msgstr ""
"Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers "
"Python ?"
#: faq/windows.rst:261
#: faq/windows.rst:258
msgid ""
"The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, "
"recommends 4 spaces for distributed Python code; this is also the Emacs "
@ -482,7 +474,7 @@ msgstr ""
"dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec "
"Python."
#: faq/windows.rst:265
#: faq/windows.rst:262
msgid ""
"Under any editor, mixing tabs and spaces is a bad idea. MSVC is no "
"different in this respect, and is easily configured to use spaces: Take :"
@ -496,7 +488,7 @@ msgstr ""
"Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et "
"*Indent size* à 4, puis sélectionner *Insert spaces*."
#: faq/windows.rst:270
#: faq/windows.rst:267
msgid ""
"Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and "
"spaces are causing problems in leading whitespace. You may also run the :mod:"
@ -506,13 +498,13 @@ msgstr ""
"tabulation et dindentation pose problème en début de ligne. Vous pouvez "
"aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs."
#: faq/windows.rst:277
#: faq/windows.rst:274
msgid "How do I check for a keypress without blocking?"
msgstr ""
"Comment puis-je vérifier de manière non bloquante qu'une touche a été "
"pressée ?"
#: faq/windows.rst:279
#: faq/windows.rst:276
msgid ""
"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension "
"module. It defines a function ``kbhit()`` which checks whether a keyboard "
@ -523,6 +515,26 @@ msgstr ""
"touche s'est produite, et ``getch()`` qui récupère le caractère sans "
"l'afficher."
#: faq/windows.rst:281
msgid "How do I solve the missing api-ms-win-crt-runtime-l1-1-0.dll error?"
msgstr ""
#: faq/windows.rst:283
msgid ""
"This can occur on Python 3.5 and later when using Windows 8.1 or earlier "
"without all updates having been installed. First ensure your operating "
"system is supported and is up to date, and if that does not resolve the "
"issue, visit the `Microsoft support page <https://support.microsoft.com/en-"
"us/help/3118401/>`_ for guidance on manually installing the C Runtime update."
msgstr ""
#~ msgid ""
#~ "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
#~ "exe first."
#~ msgstr ""
#~ "Note Borland : convertir :file:`python{NN}.lib` au format OMF en "
#~ "utilisant *Coff2Omf.exe* en premier."
#~ msgid ""
#~ "See `cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_ for a "
#~ "distutils extension that allows you to create console and GUI executables "

File diff suppressed because it is too large Load Diff

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-31 11:33+0100\n"
"PO-Revision-Date: 2021-10-17 14:16+0200\n"
"PO-Revision-Date: 2022-05-12 09:43+0200\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 3.0.1\n"
#: howto/annotations.rst:5
msgid "Annotations Best Practices"
@ -315,12 +315,11 @@ msgstr ""
"*ne peuvent pas* être évaluées. Par exemple :"
#: howto/annotations.rst:159
#, fuzzy
msgid ""
":pep:`604` union types using ``|``, before support for this was added to "
"Python 3.10."
msgstr ""
"Les types d'union de style :pep:`604` avec `|`, avant que cette prise en "
"Les types d'union de style :pep:`604` avec ``|``, avant que cette prise en "
"charge ne soit ajoutée à Python 3.10."
#: howto/annotations.rst:161

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-11-06 19:23+0100\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2022-10-18 12:22+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -429,9 +429,9 @@ msgid ""
"Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the "
"previous version of our script. That should explain the complaint."
msgstr ""
"Oui, c'est maintenant d'avantage une option (similaire à ``action="
"\"store_true\"``) de la version précédente de notre script. Cela devrait "
"expliquer le message d'erreur."
"Oui, c'est maintenant d'avantage une option (similaire à "
"``action=\"store_true\"``) de la version précédente de notre script. Cela "
"devrait expliquer le message d'erreur."
#: howto/argparse.rst:502
msgid "It also behaves similar to \"store_true\" action."
@ -610,7 +610,7 @@ msgid ""
"tells us that we can either use ``-v`` or ``-q``, but not both at the same "
"time:"
msgstr ""
"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]`` "
"Notez cette nuance dans le texte d'utilisation. Les options ``[-v | -q]`` "
"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas "
"les deux ensemble :"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-06-04 15:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 12:29+0200\n"
"Last-Translator: Mindiell <mindiell@mindiell.net>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -698,7 +698,7 @@ msgid ""
"``;``, to provide usage help, this change is harmless—don't worry about it.)"
msgstr ""
"(Argument Clinic génère toujours ses chaînes de format avec ``:`` suivi du "
"nom de la fonction. Si la chaîne de format du code existant termine par `` ;"
"nom de la fonction. Si la chaîne de format du code existant termine par ``;"
"``, pour fournir une aide sur l'utilisation, ce changement n'a aucun effet, "
"ne vous en souciez pas.)"
@ -806,10 +806,11 @@ msgstr ""
"*n'ajoutez pas* de virgule à la fin."
#: howto/clinic.rst:542
#, fuzzy
msgid ""
"Compile, then run the relevant portions of the regression-test suite. This "
"change should not introduce any new compile-time warnings or errors, and "
"there should be no externally-visible change to Python's behavior."
"there should be no externally visible change to Python's behavior."
msgstr ""
"Compilez, puis faites tourner les portions idoines de la suite de tests de "
"régressions. Ce changement ne doit introduire aucun nouveau message d'erreur "
@ -1228,9 +1229,9 @@ msgstr "``c_default``"
#: howto/clinic.rst:760
msgid ""
"The default value for this parameter when defined in C. Specifically, this "
"will be the initializer for the variable declared in the \"parse function"
"\". See :ref:`the section on default values <default_values>` for how to "
"use this. Specified as a string."
"will be the initializer for the variable declared in the \"parse "
"function\". See :ref:`the section on default values <default_values>` for "
"how to use this. Specified as a string."
msgstr ""
"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, "
"il servira à initialiser la variable déclarée dans la « fonction "
@ -1338,8 +1339,8 @@ msgstr "``type``"
#: howto/clinic.rst:802
msgid ""
"Only supported for the ``object`` and ``self`` converters. Specifies the C "
"type that will be used to declare the variable. Default value is ``"
"\"PyObject *\"``."
"type that will be used to declare the variable. Default value is "
"``\"PyObject *\"``."
msgstr ""
"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le "
"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est "
@ -2110,7 +2111,7 @@ msgstr ""
#: howto/clinic.rst:1123
msgid ""
"Sorry, there's no syntax for partially-cloning a function, or cloning a "
"Sorry, there's no syntax for partially cloning a function, or cloning a "
"function then modifying it. Cloning is an all-or nothing proposition."
msgstr ""
@ -2140,8 +2141,8 @@ msgstr ""
#: howto/clinic.rst:1143
msgid ""
"All the code inside the Python block is executed at the time it's parsed. "
"All text written to stdout inside the block is redirected into the \"output"
"\" after the block."
"All text written to stdout inside the block is redirected into the "
"\"output\" after the block."
msgstr ""
#: howto/clinic.rst:1147
@ -2324,7 +2325,7 @@ msgid ""
"The default value used to initialize the C variable when there is no "
"default, but not specifying a default may result in an \"uninitialized "
"variable\" warning. This can easily happen when using option groups—"
"although properly-written code will never actually use this value, the "
"although properly written code will never actually use this value, the "
"variable does get passed in to the impl, and the C compiler will complain "
"about the \"use\" of the uninitialized value. This value should always be a "
"non-empty string."
@ -2363,9 +2364,9 @@ msgstr ""
#: howto/clinic.rst:1352
msgid ""
"This block adds a converter to Argument Clinic named ``ssize_t``. "
"Parameters declared as ``ssize_t`` will be declared as type ``Py_ssize_t``, "
"and will be parsed by the ``'O&'`` format unit, which will call the "
"``ssize_t_converter`` converter function. ``ssize_t`` variables "
"Parameters declared as ``ssize_t`` will be declared as type :c:type:"
"`Py_ssize_t`, and will be parsed by the ``'O&'`` format unit, which will "
"call the ``ssize_t_converter`` converter function. ``ssize_t`` variables "
"automatically support default values."
msgstr ""
@ -2506,9 +2507,9 @@ msgid ""
"of statement the field is. Field names that end in ``\"_prototype\"`` "
"represent forward declarations of that thing, without the actual body/data "
"of the thing; field names that end in ``\"_definition\"`` represent the "
"actual definition of the thing, with the body/data of the thing. (``"
"\"methoddef\"`` is special, it's the only one that ends with ``\"_define"
"\"``, representing that it's a preprocessor #define.)"
"actual definition of the thing, with the body/data of the thing. "
"(``\"methoddef\"`` is special, it's the only one that ends with "
"``\"_define\"``, representing that it's a preprocessor #define.)"
msgstr ""
#: howto/clinic.rst:1499

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2020-09-04 23:34+0200\n"
"Last-Translator: Khaïs COLIN <kh.col@orange.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -139,23 +139,14 @@ msgstr ""
msgid ""
"The Windows version of Python doesn't include the :mod:`curses` module. A "
"ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is "
"available. You could also try `the Console module <http://effbot.org/zone/"
"console-index.htm>`_ written by Fredrik Lundh, which doesn't use the same "
"API as curses but provides cursor-addressable text output and full support "
"for mouse and keyboard input."
"available."
msgstr ""
"La version Windows de Python n'inclut pas le module :mod:`curses`. Une "
"version portée appelée `UniCurses <https://pypi.org/project/UniCurses>`_ est "
"disponible. Vous pouvez également essayer le `Windows console driver <http://"
"effbot.org/zone/console-index.htm>`_ écrit par Fredrik Lundh, qui n'utilise "
"pas la même API que *curses*, mais fournit une sortie texte avec gestion du "
"curseur et une prise en charge complète de la souris et du clavier."
#: howto/curses.rst:66
#: howto/curses.rst:62
msgid "The Python curses module"
msgstr "Le module *curses* de Python"
#: howto/curses.rst:68
#: howto/curses.rst:64
msgid ""
"The Python module is a fairly simple wrapper over the C functions provided "
"by curses; if you're already familiar with curses programming in C, it's "
@ -173,7 +164,7 @@ msgstr ""
"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window."
"addstr`. Nous voyons cela plus en détail ci-après."
#: howto/curses.rst:76
#: howto/curses.rst:72
msgid ""
"This HOWTO is an introduction to writing text-mode programs with curses and "
"Python. It doesn't attempt to be a complete guide to the curses API; for "
@ -186,11 +177,11 @@ msgstr ""
"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne "
"cependant les idées de base."
#: howto/curses.rst:83
#: howto/curses.rst:79
msgid "Starting and ending a curses application"
msgstr "Lancement et arrêt une application *curses*"
#: howto/curses.rst:85
#: howto/curses.rst:81
msgid ""
"Before doing anything, curses must be initialized. This is done by calling "
"the :func:`~curses.initscr` function, which will determine the terminal "
@ -206,7 +197,7 @@ msgstr ""
"renvoie un objet fenêtre représentant l'écran entier ; il est généralement "
"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::"
#: howto/curses.rst:96
#: howto/curses.rst:92
msgid ""
"Usually curses applications turn off automatic echoing of keys to the "
"screen, in order to be able to read keys and only display them under certain "
@ -217,7 +208,7 @@ msgstr ""
"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:"
"`~curses.noecho`. ::"
#: howto/curses.rst:103
#: howto/curses.rst:99
msgid ""
"Applications will also commonly need to react to keys instantly, without "
"requiring the Enter key to be pressed; this is called cbreak mode, as "
@ -228,7 +219,7 @@ msgstr ""
"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel "
"avec un tampon. ::"
#: howto/curses.rst:109
#: howto/curses.rst:105
msgid ""
"Terminals usually return special keys, such as the cursor keys or navigation "
"keys such as Page Up and Home, as a multibyte escape sequence. While you "
@ -245,7 +236,7 @@ msgstr ""
"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que "
"*curses* fasse le travail, vous devez activer le mode *keypad*. ::"
#: howto/curses.rst:118
#: howto/curses.rst:114
msgid ""
"Terminating a curses application is much easier than starting one. You'll "
"need to call::"
@ -253,7 +244,7 @@ msgstr ""
"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer "
"une. Appelez ::"
#: howto/curses.rst:125
#: howto/curses.rst:121
msgid ""
"to reverse the curses-friendly terminal settings. Then call the :func:"
"`~curses.endwin` function to restore the terminal to its original operating "
@ -263,7 +254,7 @@ msgstr ""
"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans "
"son mode de fonctionnement original. ::"
#: howto/curses.rst:131
#: howto/curses.rst:127
msgid ""
"A common problem when debugging a curses application is to get your terminal "
"messed up when the application dies without restoring the terminal to its "
@ -279,7 +270,7 @@ msgstr ""
"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* "
"difficile."
#: howto/curses.rst:137
#: howto/curses.rst:133
msgid ""
"In Python you can avoid these complications and make debugging much easier "
"by importing the :func:`curses.wrapper` function and using it like this::"
@ -287,7 +278,7 @@ msgstr ""
"En Python, vous pouvez éviter ces complications et faciliter le débogage en "
"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::"
#: howto/curses.rst:156
#: howto/curses.rst:152
msgid ""
"The :func:`~curses.wrapper` function takes a callable object and does the "
"initializations described above, also initializing colors if color support "
@ -309,11 +300,11 @@ msgstr ""
"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le "
"message de l'exception et la trace de la pile d'appels."
#: howto/curses.rst:168
#: howto/curses.rst:164
msgid "Windows and Pads"
msgstr "Fenêtres et tampons (*pads* en anglais)"
#: howto/curses.rst:170
#: howto/curses.rst:166
msgid ""
"Windows are the basic abstraction in curses. A window object represents a "
"rectangular area of the screen, and supports methods to display text, erase "
@ -324,7 +315,7 @@ msgstr ""
"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des "
"chaînes, etc."
#: howto/curses.rst:174
#: howto/curses.rst:170
msgid ""
"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a "
"window object that covers the entire screen. Many programs may need only "
@ -340,7 +331,7 @@ msgstr ""
"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre "
"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::"
#: howto/curses.rst:185
#: howto/curses.rst:181
msgid ""
"Note that the coordinate system used in curses is unusual. Coordinates are "
"always passed in the order *y,x*, and the top-left corner of a window is "
@ -357,7 +348,7 @@ msgstr ""
"applications informatiques, mais elle fait partie de *curses* depuis qu'il a "
"été écrit et il est trop tard pour changer les choses maintenant."
#: howto/curses.rst:193
#: howto/curses.rst:189
msgid ""
"Your application can determine the size of the screen by using the :data:"
"`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* "
@ -369,7 +360,7 @@ msgstr ""
"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à "
"``(curses.LINES - 1, curses.COLS - 1)``."
#: howto/curses.rst:198
#: howto/curses.rst:194
msgid ""
"When you call a method to display or erase text, the effect doesn't "
"immediately show up on the display. Instead you must call the :meth:"
@ -379,7 +370,7 @@ msgstr ""
"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :"
"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran."
#: howto/curses.rst:203
#: howto/curses.rst:199
msgid ""
"This is because curses was originally written with slow 300-baud terminal "
"connections in mind; with these terminals, minimizing the time required to "
@ -398,7 +389,7 @@ msgstr ""
"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais "
"visible."
#: howto/curses.rst:212
#: howto/curses.rst:208
msgid ""
"In practice, explicitly telling curses to redraw a window doesn't really "
"complicate programming with curses much. Most programs go into a flurry of "
@ -416,7 +407,7 @@ msgstr ""
"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la "
"fenêtre adéquate."
#: howto/curses.rst:220
#: howto/curses.rst:216
msgid ""
"A pad is a special case of a window; it can be larger than the actual "
"display screen, and only a portion of the pad displayed at a time. Creating "
@ -431,7 +422,7 @@ msgstr ""
"devez fournir les coordonnées de la zone de l'écran où une partie du tampon "
"sera affichée."
#: howto/curses.rst:241
#: howto/curses.rst:237
msgid ""
"The :meth:`refresh` call displays a section of the pad in the rectangle "
"extending from coordinate (5,5) to coordinate (20,75) on the screen; the "
@ -445,7 +436,7 @@ msgstr ""
"tampon. À part cette différence, les tampons sont exactement comme les "
"fenêtres ordinaires et gèrent les mêmes méthodes."
#: howto/curses.rst:247
#: howto/curses.rst:243
msgid ""
"If you have multiple windows and pads on screen there is a more efficient "
"way to update the screen and prevent annoying screen flicker as each part of "
@ -455,7 +446,7 @@ msgstr ""
"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants "
"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :"
#: howto/curses.rst:252
#: howto/curses.rst:248
msgid ""
"Calls the :meth:`~curses.window.noutrefresh` method of each window to update "
"an underlying data structure representing the desired state of the screen."
@ -464,7 +455,7 @@ msgstr ""
"pour mettre à jour les données sous-jacentes qui permettent d'obtenir "
"l'affichage voulu ;"
#: howto/curses.rst:255
#: howto/curses.rst:251
msgid ""
"Calls the function :func:`~curses.doupdate` function to change the physical "
"screen to match the desired state recorded in the data structure."
@ -472,7 +463,7 @@ msgstr ""
"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran "
"physique afin de correspondre à l'état défini par les données sous-jacentes."
#: howto/curses.rst:258
#: howto/curses.rst:254
msgid ""
"Instead you can call :meth:`noutrefresh` on a number of windows to update "
"the data structure, and then call :func:`doupdate` to update the screen."
@ -481,11 +472,11 @@ msgstr ""
"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour "
"l'écran."
#: howto/curses.rst:264
#: howto/curses.rst:260
msgid "Displaying Text"
msgstr "Affichage de texte"
#: howto/curses.rst:266
#: howto/curses.rst:262
msgid ""
"From a C programmer's point of view, curses may sometimes look like a twisty "
"maze of functions, all subtly different. For example, :c:func:`addstr` "
@ -504,7 +495,7 @@ msgstr ""
"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à "
"la fois les coordonnées et la fenêtre."
#: howto/curses.rst:275
#: howto/curses.rst:271
msgid ""
"Fortunately the Python interface hides all these details. ``stdscr`` is a "
"window object like any other, and methods such as :meth:`~curses.window."
@ -516,27 +507,27 @@ msgstr ""
"window.addstr` acceptent leurs arguments sous de multiples formes, "
"habituellement quatre."
#: howto/curses.rst:281
#: howto/curses.rst:277
msgid "Form"
msgstr "Forme"
#: howto/curses.rst:350
#: howto/curses.rst:346
msgid "Description"
msgstr "Description"
#: howto/curses.rst:283
#: howto/curses.rst:279
msgid "*str* or *ch*"
msgstr "*str* ou *ch*"
#: howto/curses.rst:283
#: howto/curses.rst:279
msgid "Display the string *str* or character *ch* at the current position"
msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle"
#: howto/curses.rst:286
#: howto/curses.rst:282
msgid "*str* or *ch*, *attr*"
msgstr "*str* ou *ch*, *attr*"
#: howto/curses.rst:286
#: howto/curses.rst:282
msgid ""
"Display the string *str* or character *ch*, using attribute *attr* at the "
"current position"
@ -544,21 +535,21 @@ msgstr ""
"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* "
"à la position actuelle"
#: howto/curses.rst:290
#: howto/curses.rst:286
msgid "*y*, *x*, *str* or *ch*"
msgstr "*y*, *x*, *str* ou *ch*"
#: howto/curses.rst:290
#: howto/curses.rst:286
msgid "Move to position *y,x* within the window, and display *str* or *ch*"
msgstr ""
"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou "
"le caractère *ch*"
#: howto/curses.rst:293
#: howto/curses.rst:289
msgid "*y*, *x*, *str* or *ch*, *attr*"
msgstr "*y*, *x*, *str* ou *ch*, *attr*"
#: howto/curses.rst:293
#: howto/curses.rst:289
msgid ""
"Move to position *y,x* within the window, and display *str* or *ch*, using "
"attribute *attr*"
@ -566,7 +557,7 @@ msgstr ""
"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou "
"le caractère *ch* en utilisant l'attribut *attr*"
#: howto/curses.rst:297
#: howto/curses.rst:293
msgid ""
"Attributes allow displaying text in highlighted forms such as boldface, "
"underline, reverse code, or in color. They'll be explained in more detail "
@ -576,7 +567,7 @@ msgstr ""
"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section "
"suivante."
#: howto/curses.rst:302
#: howto/curses.rst:298
msgid ""
"The :meth:`~curses.window.addstr` method takes a Python string or bytestring "
"as the value to be displayed. The contents of bytestrings are sent to the "
@ -591,7 +582,7 @@ msgstr ""
"l'encodage du système tel que renvoyé par :func:`locale."
"getpreferredencoding`."
#: howto/curses.rst:309
#: howto/curses.rst:305
msgid ""
"The :meth:`~curses.window.addch` methods take a character, which can be "
"either a string of length 1, a bytestring of length 1, or an integer."
@ -600,7 +591,7 @@ msgstr ""
"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou "
"d'un entier."
#: howto/curses.rst:312
#: howto/curses.rst:308
msgid ""
"Constants are provided for extension characters; these constants are "
"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- "
@ -613,7 +604,7 @@ msgstr ""
"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous "
"pouvez aussi utiliser les caractères Unicode adéquats."
#: howto/curses.rst:318
#: howto/curses.rst:314
msgid ""
"Windows remember where the cursor was left after the last operation, so if "
"you leave out the *y,x* coordinates, the string or character will be "
@ -632,7 +623,7 @@ msgstr ""
"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des "
"endroits apparemment aléatoires)."
#: howto/curses.rst:326
#: howto/curses.rst:322
msgid ""
"If your application doesn't need a blinking cursor at all, you can call "
"``curs_set(False)`` to make it invisible. For compatibility with older "
@ -649,11 +640,11 @@ msgstr ""
"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser "
"trainer à des endroits bizarres."
#: howto/curses.rst:335
#: howto/curses.rst:331
msgid "Attributes and Color"
msgstr "Attributs et couleurs"
#: howto/curses.rst:337
#: howto/curses.rst:333
msgid ""
"Characters can be displayed in different ways. Status lines in a text-based "
"application are commonly shown in reverse video, or a text viewer may need "
@ -666,7 +657,7 @@ msgstr ""
"À ces fins, *curses* vous permet de spécifier un attribut pour chaque "
"caractère à l'écran."
#: howto/curses.rst:342
#: howto/curses.rst:338
msgid ""
"An attribute is an integer, each bit representing a different attribute. "
"You can try to display text with multiple attribute bits set, but curses "
@ -683,59 +674,59 @@ msgstr ""
"se cantonner aux attributs les plus communément utilisés, dont la liste est "
"fournie ci-dessous."
#: howto/curses.rst:350
#: howto/curses.rst:346
msgid "Attribute"
msgstr "Attribut"
#: howto/curses.rst:352
#: howto/curses.rst:348
msgid ":const:`A_BLINK`"
msgstr ":const:`A_BLINK`"
#: howto/curses.rst:352
#: howto/curses.rst:348
msgid "Blinking text"
msgstr "Texte clignotant"
#: howto/curses.rst:354
#: howto/curses.rst:350
msgid ":const:`A_BOLD`"
msgstr ":const:`A_BOLD`"
#: howto/curses.rst:354
#: howto/curses.rst:350
msgid "Extra bright or bold text"
msgstr "Texte en surbrillance ou en gras"
#: howto/curses.rst:356
#: howto/curses.rst:352
msgid ":const:`A_DIM`"
msgstr ":const:`A_DIM`"
#: howto/curses.rst:356
#: howto/curses.rst:352
msgid "Half bright text"
msgstr "Texte en demi-ton"
#: howto/curses.rst:358
#: howto/curses.rst:354
msgid ":const:`A_REVERSE`"
msgstr ":const:`A_REVERSE`"
#: howto/curses.rst:358
#: howto/curses.rst:354
msgid "Reverse-video text"
msgstr "Texte en mode vidéo inversé"
#: howto/curses.rst:360
#: howto/curses.rst:356
msgid ":const:`A_STANDOUT`"
msgstr ":const:`A_STANDOUT`"
#: howto/curses.rst:360
#: howto/curses.rst:356
msgid "The best highlighting mode available"
msgstr "Le meilleur mode de mis en valeur pour le texte"
#: howto/curses.rst:362
#: howto/curses.rst:358
msgid ":const:`A_UNDERLINE`"
msgstr ":const:`A_UNDERLINE`"
#: howto/curses.rst:362
#: howto/curses.rst:358
msgid "Underlined text"
msgstr "Texte souligné"
#: howto/curses.rst:365
#: howto/curses.rst:361
msgid ""
"So, to display a reverse-video status line on the top line of the screen, "
"you could code::"
@ -743,7 +734,7 @@ msgstr ""
"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode "
"vidéo inversé, vous pouvez coder ::"
#: howto/curses.rst:372
#: howto/curses.rst:368
msgid ""
"The curses library also supports color on those terminals that provide it. "
"The most common such terminal is probably the Linux console, followed by "
@ -753,7 +744,7 @@ msgstr ""
"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, "
"suivie par *xterm* en couleurs."
#: howto/curses.rst:376
#: howto/curses.rst:372
msgid ""
"To use color, you must call the :func:`~curses.start_color` function soon "
"after calling :func:`~curses.initscr`, to initialize the default color set "
@ -773,7 +764,7 @@ msgstr ""
"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez "
"vous résigner à mal l'orthographier tant que vous utilisez *curses*)."
#: howto/curses.rst:386
#: howto/curses.rst:382
msgid ""
"The curses library maintains a finite number of color pairs, containing a "
"foreground (or text) color and a background color. You can get the "
@ -790,13 +781,13 @@ msgstr ""
"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles "
"combinaisons risquent de ne pas fonctionner sur tous les terminaux."
#: howto/curses.rst:393
#: howto/curses.rst:389
msgid "An example, which displays a line of text using color pair 1::"
msgstr ""
"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur "
"1 ::"
#: howto/curses.rst:398
#: howto/curses.rst:394
msgid ""
"As I said before, a color pair consists of a foreground and background "
"color. The ``init_pair(n, f, b)`` function changes the definition of color "
@ -809,7 +800,7 @@ msgstr ""
"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en "
"dur à blanc sur noir et ne peut être modifiée."
#: howto/curses.rst:403
#: howto/curses.rst:399
msgid ""
"Colors are numbered, and :func:`start_color` initializes 8 basic colors when "
"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:"
@ -825,14 +816,14 @@ msgstr ""
"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses."
"COLOR_RED` et ainsi de suite."
#: howto/curses.rst:409
#: howto/curses.rst:405
msgid ""
"Let's put all this together. To change color 1 to red text on a white "
"background, you would call::"
msgstr ""
"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::"
#: howto/curses.rst:414
#: howto/curses.rst:410
msgid ""
"When you change a color pair, any text already displayed using that color "
"pair will change to the new colors. You can also display new text in this "
@ -842,7 +833,7 @@ msgstr ""
"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à "
"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::"
#: howto/curses.rst:420
#: howto/curses.rst:416
msgid ""
"Very fancy terminals can change the definitions of the actual colors to a "
"given RGB value. This lets you change color 1, which is usually red, to "
@ -863,11 +854,11 @@ msgstr ""
"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel "
"de votre système pour obtenir plus d'informations."
#: howto/curses.rst:431
#: howto/curses.rst:427
msgid "User Input"
msgstr "Entrées de l'utilisateur"
#: howto/curses.rst:433
#: howto/curses.rst:429
msgid ""
"The C curses library offers only very simple input mechanisms. Python's :mod:"
"`curses` module adds a basic text-input widget. (Other libraries such as "
@ -879,11 +870,11 @@ msgstr ""
"d'entrée de texte (d'autres bibliothèques telles que `Urwid <https://pypi."
"org/project/urwid/>`_ ont un ensemble de *widgets* plus conséquent)."
#: howto/curses.rst:438
#: howto/curses.rst:434
msgid "There are two methods for getting input from a window:"
msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :"
#: howto/curses.rst:440
#: howto/curses.rst:436
msgid ""
":meth:`~curses.window.getch` refreshes the screen and then waits for the "
"user to hit a key, displaying the key if :func:`~curses.echo` has been "
@ -895,7 +886,7 @@ msgstr ""
"appelé auparavant. Vous pouvez en option spécifier des coordonnées où "
"positionner le curseur avant la mise en pause ;"
#: howto/curses.rst:445
#: howto/curses.rst:441
msgid ""
":meth:`~curses.window.getkey` does the same thing but converts the integer "
"to a string. Individual characters are returned as 1-character strings, and "
@ -908,7 +899,7 @@ msgstr ""
"renvoient des chaînes plus longues contenant le nom de la touche (tel que "
"``KEY_UP`` ou ``^G``)."
#: howto/curses.rst:450
#: howto/curses.rst:446
msgid ""
"It's possible to not wait for the user using the :meth:`~curses.window."
"nodelay` window method. After ``nodelay(True)``, :meth:`getch` and :meth:"
@ -929,7 +920,7 @@ msgstr ""
"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de "
"seconde), *curses* lève une exception."
#: howto/curses.rst:460
#: howto/curses.rst:456
msgid ""
"The :meth:`getch` method returns an integer; if it's between 0 and 255, it "
"represents the ASCII code of the key pressed. Values greater than 255 are "
@ -946,7 +937,7 @@ msgstr ""
"La boucle principale de votre programme pourrait ressembler à quelque chose "
"comme ::"
#: howto/curses.rst:476
#: howto/curses.rst:472
msgid ""
"The :mod:`curses.ascii` module supplies ASCII class membership functions "
"that take either integer or 1-character string arguments; these may be "
@ -963,7 +954,7 @@ msgstr ""
"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii."
"ctrl` renvoie le caractère de contrôle correspondant à son paramètre."
#: howto/curses.rst:483
#: howto/curses.rst:479
msgid ""
"There's also a method to retrieve an entire string, :meth:`~curses.window."
"getstr`. It isn't used very often, because its functionality is quite "
@ -977,7 +968,7 @@ msgstr ""
"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, "
"être limitée à un nombre fixé de caractères. ::"
#: howto/curses.rst:494
#: howto/curses.rst:490
msgid ""
"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-"
"like set of keybindings. Various methods of the :class:`~curses.textpad."
@ -990,18 +981,18 @@ msgstr ""
"des entrées et le regroupement de l'entrée avec ou sans les espaces de début "
"et de fin. Par exemple ::"
#: howto/curses.rst:518
#: howto/curses.rst:514
msgid ""
"See the library documentation on :mod:`curses.textpad` for more details."
msgstr ""
"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:"
"`curses.textpad`."
#: howto/curses.rst:522
#: howto/curses.rst:518
msgid "For More Information"
msgstr "Pour aller plus loin"
#: howto/curses.rst:524
#: howto/curses.rst:520
msgid ""
"This HOWTO doesn't cover some advanced topics, such as reading the contents "
"of the screen or capturing mouse events from an xterm instance, but the "
@ -1014,7 +1005,7 @@ msgstr ""
"`curses` est maintenant suffisamment complète. Nous vous encourageons à la "
"parcourir."
#: howto/curses.rst:529
#: howto/curses.rst:525
msgid ""
"If you're in doubt about the detailed behavior of the curses functions, "
"consult the manual pages for your curses implementation, whether it's "
@ -1029,7 +1020,7 @@ msgstr ""
"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des "
"caractères disponibles."
#: howto/curses.rst:536
#: howto/curses.rst:532
msgid ""
"Because the curses API is so large, some functions aren't supported in the "
"Python interface. Often this isn't because they're difficult to implement, "
@ -1047,27 +1038,29 @@ msgstr ""
"du développeur Python <https://devguide.python.org/>`_ pour apprendre "
"comment soumettre des améliorations à Python."
#: howto/curses.rst:544
#: howto/curses.rst:540
#, fuzzy
msgid ""
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
"`Writing Programs with NCURSES <https://invisible-island.net/ncurses/ncurses-"
"intro.html>`_: a lengthy tutorial for C programmers."
msgstr ""
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
"intro.html>`_ : un long tutoriel pour les programmeurs C (ressource en "
"anglais)."
#: howto/curses.rst:546
#: howto/curses.rst:542
msgid "`The ncurses man page <https://linux.die.net/man/3/ncurses>`_"
msgstr "`La page de manuel ncurses <https://linux.die.net/man/3/ncurses>`_"
#: howto/curses.rst:547
#: howto/curses.rst:543
#, fuzzy
msgid ""
"`The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_"
"`The ncurses FAQ <https://invisible-island.net/ncurses/ncurses.faq.html>`_"
msgstr ""
"`La FAQ ncurses <http://invisible-island.net/ncurses/ncurses.faq.html>`_ "
"(ressource en anglais)"
#: howto/curses.rst:548
#: howto/curses.rst:544
msgid ""
"`\"Use curses... don't swear\" <https://www.youtube.com/watch?"
"v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using "
@ -1077,12 +1070,29 @@ msgstr ""
"v=eN1eZtjLEnU>`_ : vidéo d'une conférence lors de la PyCon 2013 sur la "
"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)."
#: howto/curses.rst:550
#: howto/curses.rst:546
#, fuzzy
msgid ""
"`\"Console Applications with Urwid\" <http://www.pyvideo.org/video/1568/"
"console-applications-with-urwid>`_: video of a PyCon CA 2012 talk "
"demonstrating some applications written using Urwid."
"`\"Console Applications with Urwid\" <https://pyvideo.org/video/1568/console-"
"applications-with-urwid>`_: video of a PyCon CA 2012 talk demonstrating some "
"applications written using Urwid."
msgstr ""
"`\"Console Applications with Urwid\" <http://www.pyvideo.org/video/1568/"
"console-applications-with-urwid>`_ : vidéo d'une conférence lors de PyCon CA "
"2012 montrant quelques applications utilisant *Urwid*."
#~ msgid ""
#~ "The Windows version of Python doesn't include the :mod:`curses` module. "
#~ "A ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ "
#~ "is available. You could also try `the Console module <http://effbot.org/"
#~ "zone/console-index.htm>`_ written by Fredrik Lundh, which doesn't use the "
#~ "same API as curses but provides cursor-addressable text output and full "
#~ "support for mouse and keyboard input."
#~ msgstr ""
#~ "La version Windows de Python n'inclut pas le module :mod:`curses`. Une "
#~ "version portée appelée `UniCurses <https://pypi.org/project/UniCurses>`_ "
#~ "est disponible. Vous pouvez également essayer le `Windows console driver "
#~ "<http://effbot.org/zone/console-index.htm>`_ écrit par Fredrik Lundh, qui "
#~ "n'utilise pas la même API que *curses*, mais fournit une sortie texte "
#~ "avec gestion du curseur et une prise en charge complète de la souris et "
#~ "du clavier."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-16 17:28+0100\n"
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -570,32 +570,27 @@ msgid ""
"is a pure Python equivalent:"
msgstr ""
#: howto/descriptor.rst:700
#: howto/descriptor.rst:719
msgid ""
"Interestingly, attribute lookup doesn't call :meth:`object.__getattribute__` "
"directly. Instead, both the dot operator and the :func:`getattr` function "
"perform attribute lookup by way of a helper function:"
"Note, there is no :meth:`__getattr__` hook in the :meth:`__getattribute__` "
"code. That is why calling :meth:`__getattribute__` directly or with "
"``super().__getattribute__`` will bypass :meth:`__getattr__` entirely."
msgstr ""
#: howto/descriptor.rst:747
#: howto/descriptor.rst:723
msgid ""
"So if :meth:`__getattr__` exists, it is called whenever :meth:"
"`__getattribute__` raises :exc:`AttributeError` (either directly or in one "
"of the descriptor calls)."
"Instead, it is the dot operator and the :func:`getattr` function that are "
"responsible for invoking :meth:`__getattr__` whenever :meth:"
"`__getattribute__` raises an :exc:`AttributeError`. Their logic is "
"encapsulated in a helper function:"
msgstr ""
#: howto/descriptor.rst:750
msgid ""
"Also, if a user calls :meth:`object.__getattribute__` directly, the :meth:"
"`__getattr__` hook is bypassed entirely."
msgstr ""
#: howto/descriptor.rst:755
#: howto/descriptor.rst:773
#, fuzzy
msgid "Invocation from a class"
msgstr "Appelé depuis un Classe"
#: howto/descriptor.rst:757
#: howto/descriptor.rst:775
msgid ""
"The logic for a dotted lookup such as ``A.x`` is in :meth:`type."
"__getattribute__`. The steps are similar to those for :meth:`object."
@ -603,27 +598,27 @@ msgid ""
"through the class's :term:`method resolution order`."
msgstr ""
#: howto/descriptor.rst:762
#: howto/descriptor.rst:780
msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``."
msgstr ""
#: howto/descriptor.rst:764
#: howto/descriptor.rst:782
msgid ""
"The full C implementation can be found in :c:func:`type_getattro()` and :c:"
"func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`."
msgstr ""
#: howto/descriptor.rst:769
#: howto/descriptor.rst:787
msgid "Invocation from super"
msgstr ""
#: howto/descriptor.rst:771
#: howto/descriptor.rst:789
msgid ""
"The logic for super's dotted lookup is in the :meth:`__getattribute__` "
"method for object returned by :class:`super()`."
msgstr ""
#: howto/descriptor.rst:774
#: howto/descriptor.rst:792
#, fuzzy
msgid ""
"A dotted lookup such as ``super(A, obj).m`` searches ``obj.__class__."
@ -639,7 +634,7 @@ msgstr ""
"inchangé. S'il n'est pas dans le dictionnaire, la recherche de ``m`` revient "
"à une recherche utilisant :meth:`object.__getattribute__`."
#: howto/descriptor.rst:779
#: howto/descriptor.rst:797
#, fuzzy
msgid ""
"The full C implementation can be found in :c:func:`super_getattro()` in :"
@ -651,32 +646,32 @@ msgstr ""
"source:`Objects/typeobject.c` et un équivalent Python pur peut être trouvé "
"dans `Guido's Tutorial`_."
#: howto/descriptor.rst:786
#: howto/descriptor.rst:804
msgid "Summary of invocation logic"
msgstr ""
#: howto/descriptor.rst:788
#: howto/descriptor.rst:806
msgid ""
"The mechanism for descriptors is embedded in the :meth:`__getattribute__()` "
"methods for :class:`object`, :class:`type`, and :func:`super`."
msgstr ""
#: howto/descriptor.rst:791
#: howto/descriptor.rst:809
msgid "The important points to remember are:"
msgstr "Les points importants à retenir sont :"
#: howto/descriptor.rst:793
#: howto/descriptor.rst:811
#, fuzzy
msgid "Descriptors are invoked by the :meth:`__getattribute__` method."
msgstr "les descripteurs sont appelés par la méthode :meth:`__getattribute__`"
#: howto/descriptor.rst:795
#: howto/descriptor.rst:813
msgid ""
"Classes inherit this machinery from :class:`object`, :class:`type`, or :func:"
"`super`."
msgstr ""
#: howto/descriptor.rst:798
#: howto/descriptor.rst:816
#, fuzzy
msgid ""
"Overriding :meth:`__getattribute__` prevents automatic descriptor calls "
@ -685,7 +680,7 @@ msgstr ""
"redéfinir :meth:`__getattribute____` empêche les appels automatiques de "
"descripteurs"
#: howto/descriptor.rst:801
#: howto/descriptor.rst:819
#, fuzzy
msgid ""
":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make "
@ -696,25 +691,25 @@ msgstr ""
":meth:`objet.__getattribute__` et :meth:`type.__getattribute__` font "
"différents appels à :meth:`__get__`."
#: howto/descriptor.rst:806
#: howto/descriptor.rst:824
#, fuzzy
msgid "Data descriptors always override instance dictionaries."
msgstr ""
"les descripteurs de données remplacent toujours les dictionnaires "
"d'instances."
#: howto/descriptor.rst:808
#: howto/descriptor.rst:826
#, fuzzy
msgid "Non-data descriptors may be overridden by instance dictionaries."
msgstr ""
"les descripteurs *non-data* peuvent être remplacés par des dictionnaires "
"d'instance."
#: howto/descriptor.rst:812
#: howto/descriptor.rst:830
msgid "Automatic name notification"
msgstr ""
#: howto/descriptor.rst:814
#: howto/descriptor.rst:832
msgid ""
"Sometimes it is desirable for a descriptor to know what class variable name "
"it was assigned to. When a new class is created, the :class:`type` "
@ -724,7 +719,7 @@ msgid ""
"and the *name* is the class variable the descriptor was assigned to."
msgstr ""
#: howto/descriptor.rst:821
#: howto/descriptor.rst:839
#, fuzzy
msgid ""
"The implementation details are in :c:func:`type_new()` and :c:func:"
@ -734,59 +729,59 @@ msgstr ""
"source:`Objects/typeobject.c` et un équivalent Python pur peut être trouvé "
"dans `Guido's Tutorial`_."
#: howto/descriptor.rst:824
#: howto/descriptor.rst:842
msgid ""
"Since the update logic is in :meth:`type.__new__`, notifications only take "
"place at the time of class creation. If descriptors are added to the class "
"afterwards, :meth:`__set_name__` will need to be called manually."
msgstr ""
#: howto/descriptor.rst:830
#: howto/descriptor.rst:848
msgid "ORM example"
msgstr ""
#: howto/descriptor.rst:832
#: howto/descriptor.rst:850
msgid ""
"The following code is simplified skeleton showing how data descriptors could "
"be used to implement an `object relational mapping <https://en.wikipedia.org/"
"wiki/Object%E2%80%93relational_mapping>`_."
"The following code is a simplified skeleton showing how data descriptors "
"could be used to implement an `object relational mapping <https://en."
"wikipedia.org/wiki/Object%E2%80%93relational_mapping>`_."
msgstr ""
#: howto/descriptor.rst:836
#: howto/descriptor.rst:854
msgid ""
"The essential idea is that the data is stored in an external database. The "
"Python instances only hold keys to the database's tables. Descriptors take "
"care of lookups or updates:"
msgstr ""
#: howto/descriptor.rst:855
#: howto/descriptor.rst:873
msgid ""
"We can use the :class:`Field` class to define `models <https://en.wikipedia."
"org/wiki/Database_model>`_ that describe the schema for each table in a "
"database:"
msgstr ""
#: howto/descriptor.rst:880
#: howto/descriptor.rst:898
msgid "To use the models, first connect to the database::"
msgstr ""
#: howto/descriptor.rst:885
#: howto/descriptor.rst:903
msgid ""
"An interactive session shows how data is retrieved from the database and how "
"it can be updated:"
msgstr ""
#: howto/descriptor.rst:930
#: howto/descriptor.rst:948
msgid "Pure Python Equivalents"
msgstr ""
#: howto/descriptor.rst:932
#: howto/descriptor.rst:950
#, fuzzy
msgid ""
"The descriptor protocol is simple and offers exciting possibilities. "
"Several use cases are so common that they have been prepackaged into built-"
"in tools. Properties, bound methods, static methods, class methods, and \\_"
"\\_slots\\_\\_ are all based on the descriptor protocol."
"in tools. Properties, bound methods, static methods, class methods, and "
"\\_\\_slots\\_\\_ are all based on the descriptor protocol."
msgstr ""
"Le protocole est simple et offre des possibilités passionnantes. Plusieurs "
"cas d'utilisation sont si courants qu'ils ont été regroupés en appels de "
@ -794,11 +789,11 @@ msgstr ""
"statiques et les méthodes de classe sont toutes basées sur le protocole du "
"descripteur."
#: howto/descriptor.rst:939
#: howto/descriptor.rst:957
msgid "Properties"
msgstr "Propriétés"
#: howto/descriptor.rst:941
#: howto/descriptor.rst:959
#, fuzzy
msgid ""
"Calling :func:`property` is a succinct way of building a data descriptor "
@ -809,7 +804,7 @@ msgstr ""
"descripteur de données qui déclenche des appels de fonction lors de l'accès "
"à un attribut. Sa signature est ::"
#: howto/descriptor.rst:946
#: howto/descriptor.rst:964
#, fuzzy
msgid ""
"The documentation shows a typical use to define a managed attribute ``x``:"
@ -817,7 +812,7 @@ msgstr ""
"La documentation montre une utilisation typique pour définir un attribut "
"géré ``x`` ::"
#: howto/descriptor.rst:970
#: howto/descriptor.rst:988
#, fuzzy
msgid ""
"To see how :func:`property` is implemented in terms of the descriptor "
@ -826,7 +821,7 @@ msgstr ""
"Pour voir comment :func:`property` est implémenté dans le protocole du "
"descripteur, voici un un équivalent Python pur ::"
#: howto/descriptor.rst:1073
#: howto/descriptor.rst:1091
msgid ""
"The :func:`property` builtin helps whenever a user interface has granted "
"attribute access and then subsequent changes require the intervention of a "
@ -836,7 +831,7 @@ msgstr ""
"utilisateur a accordé l'accès à un attribut et que des modifications "
"ultérieures nécessitent l'intervention d'une méthode."
#: howto/descriptor.rst:1077
#: howto/descriptor.rst:1095
#, fuzzy
msgid ""
"For instance, a spreadsheet class may grant access to a cell value through "
@ -853,18 +848,18 @@ msgstr ""
"directement à l'attribut. La solution consiste à envelopper l'accès à "
"l'attribut de valeur dans un descripteur de données de propriété ::"
#: howto/descriptor.rst:1094
#: howto/descriptor.rst:1112
msgid ""
"Either the built-in :func:`property` or our :func:`Property` equivalent "
"would work in this example."
msgstr ""
#: howto/descriptor.rst:1099
#: howto/descriptor.rst:1117
#, fuzzy
msgid "Functions and methods"
msgstr "Fonctions et méthodes"
#: howto/descriptor.rst:1101
#: howto/descriptor.rst:1119
msgid ""
"Python's object oriented features are built upon a function based "
"environment. Using non-data descriptors, the two are merged seamlessly."
@ -873,7 +868,7 @@ msgstr ""
"environnement basé sur des fonctions. À l'aide de descripteurs *non-data*, "
"les deux sont fusionnés de façon transparente."
#: howto/descriptor.rst:1104
#: howto/descriptor.rst:1122
#, fuzzy
msgid ""
"Functions stored in class dictionaries get turned into methods when invoked. "
@ -889,13 +884,13 @@ msgstr ""
"convention Python, la référence de l'instance est appelée *self* mais peut "
"être appelée *this* ou tout autre nom de variable."
#: howto/descriptor.rst:1109
#: howto/descriptor.rst:1127
msgid ""
"Methods can be created manually with :class:`types.MethodType` which is "
"roughly equivalent to:"
msgstr ""
#: howto/descriptor.rst:1126
#: howto/descriptor.rst:1144
#, fuzzy
msgid ""
"To support automatic creation of methods, functions include the :meth:"
@ -909,7 +904,7 @@ msgstr ""
"*non-data* qui renvoient des méthodes liées lorsqu'elles sont appelées "
"depuis un objet. En Python pur, il fonctionne comme ceci ::"
#: howto/descriptor.rst:1142
#: howto/descriptor.rst:1160
#, fuzzy
msgid ""
"Running the following class in the interpreter shows how the function "
@ -918,47 +913,47 @@ msgstr ""
"L'exécution de l'interpréteur montre comment le descripteur de fonction se "
"comporte dans la pratique ::"
#: howto/descriptor.rst:1151
#: howto/descriptor.rst:1169
msgid ""
"The function has a :term:`qualified name` attribute to support introspection:"
msgstr ""
#: howto/descriptor.rst:1158
#: howto/descriptor.rst:1176
msgid ""
"Accessing the function through the class dictionary does not invoke :meth:"
"`__get__`. Instead, it just returns the underlying function object::"
msgstr ""
#: howto/descriptor.rst:1164
#: howto/descriptor.rst:1182
msgid ""
"Dotted access from a class calls :meth:`__get__` which just returns the "
"underlying function unchanged::"
msgstr ""
#: howto/descriptor.rst:1170
#: howto/descriptor.rst:1188
msgid ""
"The interesting behavior occurs during dotted access from an instance. The "
"dotted lookup calls :meth:`__get__` which returns a bound method object::"
msgstr ""
#: howto/descriptor.rst:1177
#: howto/descriptor.rst:1195
msgid ""
"Internally, the bound method stores the underlying function and the bound "
"instance::"
msgstr ""
#: howto/descriptor.rst:1186
#: howto/descriptor.rst:1204
msgid ""
"If you have ever wondered where *self* comes from in regular methods or "
"where *cls* comes from in class methods, this is it!"
msgstr ""
#: howto/descriptor.rst:1191
#: howto/descriptor.rst:1209
#, fuzzy
msgid "Kinds of methods"
msgstr "Fonctions et méthodes"
#: howto/descriptor.rst:1193
#: howto/descriptor.rst:1211
msgid ""
"Non-data descriptors provide a simple mechanism for variations on the usual "
"patterns of binding functions into methods."
@ -966,7 +961,7 @@ msgstr ""
"Les descripteurs *non-data* fournissent un mécanisme simple pour les "
"variations des patrons habituels des fonctions de liaison dans les méthodes."
#: howto/descriptor.rst:1196
#: howto/descriptor.rst:1214
#, fuzzy
msgid ""
"To recap, functions have a :meth:`__get__` method so that they can be "
@ -979,60 +974,60 @@ msgstr ""
"descripteur *non-data* transforme un appel ``obj.f(*args)``en ``f(obj, "
"*args)``. Appeler ``klass.f(*args)`` devient ``f(*args)``."
#: howto/descriptor.rst:1201
#: howto/descriptor.rst:1219
msgid "This chart summarizes the binding and its two most useful variants:"
msgstr ""
"Ce tableau résume le lien (*binding*) et ses deux variantes les plus "
"utiles ::"
#: howto/descriptor.rst:1204
#: howto/descriptor.rst:1222
msgid "Transformation"
msgstr "Transformation"
#: howto/descriptor.rst:1204
#: howto/descriptor.rst:1222
#, fuzzy
msgid "Called from an object"
msgstr "Appelé depuis un Objet"
#: howto/descriptor.rst:1204
#: howto/descriptor.rst:1222
#, fuzzy
msgid "Called from a class"
msgstr "Appelé depuis un Classe"
#: howto/descriptor.rst:1207
#: howto/descriptor.rst:1225
msgid "function"
msgstr "fonction"
#: howto/descriptor.rst:1207
#: howto/descriptor.rst:1225
msgid "f(obj, \\*args)"
msgstr "f(obj, \\*args)"
#: howto/descriptor.rst:1209
#: howto/descriptor.rst:1227
msgid "f(\\*args)"
msgstr "f(\\*args)"
#: howto/descriptor.rst:1209
#: howto/descriptor.rst:1227
msgid "staticmethod"
msgstr "méthode statique"
#: howto/descriptor.rst:1211
#: howto/descriptor.rst:1229
msgid "classmethod"
msgstr "méthode de classe"
#: howto/descriptor.rst:1211
#: howto/descriptor.rst:1229
msgid "f(type(obj), \\*args)"
msgstr "f(type(obj), \\*args)"
#: howto/descriptor.rst:1211
#: howto/descriptor.rst:1229
msgid "f(cls, \\*args)"
msgstr "f(cls, \\*args)"
#: howto/descriptor.rst:1216
#: howto/descriptor.rst:1234
#, fuzzy
msgid "Static methods"
msgstr "méthode statique"
#: howto/descriptor.rst:1218
#: howto/descriptor.rst:1236
msgid ""
"Static methods return the underlying function without changes. Calling "
"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object."
@ -1046,7 +1041,7 @@ msgstr ""
"__getattribute__(C, \"f\")``. Par conséquent, la fonction devient accessible "
"de manière identique à partir d'un objet ou d'une classe."
#: howto/descriptor.rst:1224
#: howto/descriptor.rst:1242
msgid ""
"Good candidates for static methods are methods that do not reference the "
"``self`` variable."
@ -1054,7 +1049,7 @@ msgstr ""
"Les bonnes candidates pour être méthode statique sont des méthodes qui ne "
"font pas référence à la variable ``self``."
#: howto/descriptor.rst:1227
#: howto/descriptor.rst:1245
msgid ""
"For instance, a statistics package may include a container class for "
"experimental data. The class provides normal methods for computing the "
@ -1076,7 +1071,7 @@ msgstr ""
"appelée à partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332`` ou "
"``Sample.erf(1.5) --> .9332``."
#: howto/descriptor.rst:1236
#: howto/descriptor.rst:1254
#, fuzzy
msgid ""
"Since static methods return the underlying function with no changes, the "
@ -1085,7 +1080,7 @@ msgstr ""
"Depuis que les méthodes statiques renvoient la fonction sous-jacente sans "
"changement, les exemples dappels ne sont pas excitants ::"
#: howto/descriptor.rst:1253
#: howto/descriptor.rst:1271
#, fuzzy
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
@ -1094,12 +1089,12 @@ msgstr ""
"En utilisant le protocole de descripteur *non-data*, une version Python pure "
"de :func:`staticmethod` ressemblerait à ceci ::"
#: howto/descriptor.rst:1292
#: howto/descriptor.rst:1310
#, fuzzy
msgid "Class methods"
msgstr "méthode de classe"
#: howto/descriptor.rst:1294
#: howto/descriptor.rst:1312
#, fuzzy
msgid ""
"Unlike static methods, class methods prepend the class reference to the "
@ -1110,7 +1105,7 @@ msgstr ""
"référence de classe dans la liste d'arguments avant d'appeler la fonction. "
"Ce format est le même que l'appelant soit un objet ou une classe ::"
#: howto/descriptor.rst:1312
#: howto/descriptor.rst:1330
#, fuzzy
msgid ""
"This behavior is useful whenever the method only needs to have a class "
@ -1126,14 +1121,14 @@ msgstr ""
"nouveau dictionnaire à partir d'une liste de clés. L'équivalent Python pur "
"est ::"
#: howto/descriptor.rst:1329
#: howto/descriptor.rst:1347
#, fuzzy
msgid "Now a new dictionary of unique keys can be constructed like this:"
msgstr ""
"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme "
"ceci ::"
#: howto/descriptor.rst:1339
#: howto/descriptor.rst:1357
#, fuzzy
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
@ -1142,7 +1137,7 @@ msgstr ""
"En utilisant le protocole de descripteur *non-data*, une version Python pure "
"de :func:`classmethod` ressemblerait à ceci ::"
#: howto/descriptor.rst:1388
#: howto/descriptor.rst:1406
msgid ""
"The code path for ``hasattr(type(self.f), '__get__')`` was added in Python "
"3.9 and makes it possible for :func:`classmethod` to support chained "
@ -1150,30 +1145,30 @@ msgid ""
"together:"
msgstr ""
#: howto/descriptor.rst:1408
#: howto/descriptor.rst:1426
msgid "Member objects and __slots__"
msgstr ""
#: howto/descriptor.rst:1410
#: howto/descriptor.rst:1428
msgid ""
"When a class defines ``__slots__``, it replaces instance dictionaries with a "
"fixed-length array of slot values. From a user point of view that has "
"several effects:"
msgstr ""
#: howto/descriptor.rst:1414
#: howto/descriptor.rst:1432
msgid ""
"1. Provides immediate detection of bugs due to misspelled attribute "
"assignments. Only attribute names specified in ``__slots__`` are allowed:"
msgstr ""
#: howto/descriptor.rst:1430
#: howto/descriptor.rst:1448
msgid ""
"2. Helps create immutable objects where descriptors manage access to private "
"attributes stored in ``__slots__``:"
msgstr ""
#: howto/descriptor.rst:1465
#: howto/descriptor.rst:1483
msgid ""
"3. Saves memory. On a 64-bit Linux build, an instance with two attributes "
"takes 48 bytes with ``__slots__`` and 152 bytes without. This `flyweight "
@ -1181,19 +1176,19 @@ msgid ""
"only matters when a large number of instances are going to be created."
msgstr ""
#: howto/descriptor.rst:1470
#: howto/descriptor.rst:1488
msgid ""
"4. Improves speed. Reading instance variables is 35% faster with "
"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)."
msgstr ""
#: howto/descriptor.rst:1473
#: howto/descriptor.rst:1491
msgid ""
"5. Blocks tools like :func:`functools.cached_property` which require an "
"instance dictionary to function correctly:"
msgstr ""
#: howto/descriptor.rst:1495
#: howto/descriptor.rst:1513
msgid ""
"It is not possible to create an exact drop-in pure Python version of "
"``__slots__`` because it requires direct access to C structures and control "
@ -1203,37 +1198,37 @@ msgid ""
"managed by member descriptors:"
msgstr ""
#: howto/descriptor.rst:1538
#: howto/descriptor.rst:1558
msgid ""
"The :meth:`type.__new__` method takes care of adding member objects to class "
"variables:"
msgstr ""
#: howto/descriptor.rst:1554
#: howto/descriptor.rst:1574
msgid ""
"The :meth:`object.__new__` method takes care of creating instances that have "
"slots instead of an instance dictionary. Here is a rough simulation in pure "
"Python:"
msgstr ""
#: howto/descriptor.rst:1589
#: howto/descriptor.rst:1609
msgid ""
"To use the simulation in a real class, just inherit from :class:`Object` and "
"set the :term:`metaclass` to :class:`Type`:"
msgstr ""
#: howto/descriptor.rst:1603
#: howto/descriptor.rst:1623
msgid ""
"At this point, the metaclass has loaded member objects for *x* and *y*::"
msgstr ""
#: howto/descriptor.rst:1624
#: howto/descriptor.rst:1644
msgid ""
"When instances are created, they have a ``slot_values`` list where the "
"attributes are stored:"
msgstr ""
#: howto/descriptor.rst:1636
#: howto/descriptor.rst:1656
msgid "Misspelled or unassigned attributes will raise an exception:"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-11-06 19:31+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -141,9 +141,10 @@ msgstr ""
"métadonnées ::"
#: howto/instrumentation.rst:125
#, fuzzy
msgid ""
"The above metadata contains information for SystemTap describing how it can "
"patch strategically-placed machine code instructions to enable the tracing "
"patch strategically placed machine code instructions to enable the tracing "
"hooks used by a SystemTap script."
msgstr ""
"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* "
@ -255,8 +256,8 @@ msgstr ""
#: howto/instrumentation.rst:282
msgid ""
"The filename, function name, and line number are provided back to the "
"tracing script as positional arguments, which must be accessed using ``"
"$arg1``, ``$arg2``, ``$arg3``:"
"tracing script as positional arguments, which must be accessed using "
"``$arg1``, ``$arg2``, ``$arg3``:"
msgstr ""
"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés "
"au script de traçage sous forme d'arguments positionnels, auxquels il faut "
@ -362,9 +363,9 @@ msgstr "*Tapsets* de *SystemTap*"
#: howto/instrumentation.rst:347
msgid ""
"The higher-level way to use the SystemTap integration is to use a \"tapset"
"\": SystemTap's equivalent of a library, which hides some of the lower-level "
"details of the static markers."
"The higher-level way to use the SystemTap integration is to use a "
"\"tapset\": SystemTap's equivalent of a library, which hides some of the "
"lower-level details of the static markers."
msgstr ""
"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser "
"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui "
@ -421,9 +422,10 @@ msgstr ""
"statiques ::"
#: howto/instrumentation.rst:412
#, fuzzy
msgid ""
"The following script uses the tapset above to provide a top-like view of all "
"running CPython code, showing the top 20 most frequently-entered bytecode "
"running CPython code, showing the top 20 most frequently entered bytecode "
"frames, each second, across the whole system:"
msgstr ""
"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de "

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-12-11 16:19+0100\n"
"PO-Revision-Date: 2022-05-12 09:42+0200\n"
"Last-Translator: BAILLY Geoffroy <dev@zest-labs.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.2\n"
"X-Generator: Poedit 3.0.1\n"
#: howto/ipaddress.rst:9
msgid "An introduction to the ipaddress module"
@ -69,7 +69,6 @@ msgid "A Note on IP Versions"
msgstr "Note sur les versions d'IP"
#: howto/ipaddress.rst:34
#, fuzzy
msgid ""
"For readers that aren't particularly familiar with IP addressing, it's "
"important to know that the Internet Protocol (IP) is currently in the "
@ -80,10 +79,10 @@ msgid ""
"internet."
msgstr ""
"Pour les lecteurs qui ne sont pas particulièrement familiers avec "
"l'adressage IP il est important de savoir que le protocole IP est "
"actuellement en évolution de la version 4 du protocole vers la version 6. "
"Cette transition est largement due au fait que la version 4 du protocole ne "
"fournit pas assez d'adresses pour gérer les besoins du monde entier, "
"l'adressage IP il est important de savoir que le *protocole Internet* (IP) "
"est actuellement en évolution de la version 4 du protocole vers la version "
"6. Cette transition est largement due au fait que la version 4 du protocole "
"ne fournit pas assez d'adresses pour gérer les besoins du monde entier, "
"particulièrement à cause de la croissance des périphériques directement "
"connectés à Internet."

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"PO-Revision-Date: 2021-12-11 16:43+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 12:27+0200\n"
"Last-Translator: Nabil Bendafi <nabil@bendafi.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 3.0.1\n"
#: howto/regex.rst:5
msgid "Regular Expression HOWTO"
@ -191,7 +191,7 @@ msgstr ""
"utilisés pour spécifier une classe de caractères, qui forme un ensemble de "
"caractères dont vous souhaitez trouver la correspondance. Les caractères "
"peuvent être listés individuellement, ou une plage de caractères peut être "
"indiquée en fournissant deux caractères séparés par un `'-'``. Par exemple, "
"indiquée en fournissant deux caractères séparés par un ``'-'``. Par exemple, "
"``[abc]`` correspond à n'importe quel caractère parmi ``a``, ``b`` ou "
"``c`` ; c'est équivalent à ``[a-c]``, qui utilise une plage pour exprimer le "
"même ensemble de caractères. Si vous voulez trouver une chaîne qui ne "
@ -199,15 +199,16 @@ msgstr ""
#: howto/regex.rst:92
msgid ""
"Metacharacters are not active inside classes. For example, ``[akm$]`` will "
"match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` "
"is usually a metacharacter, but inside a character class it's stripped of "
"its special nature."
"Metacharacters (except ``\\``) are not active inside classes. For example, "
"``[akm$]`` will match any of the characters ``'a'``, ``'k'``, ``'m'``, or "
"``'$'``; ``'$'`` is usually a metacharacter, but inside a character class "
"it's stripped of its special nature."
msgstr ""
"Les métacaractères ne sont pas actifs dans les classes. Par exemple, ``[akm"
"$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, ``'m'`` "
"ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans une "
"classe de caractères, il est dépourvu de sa signification spéciale."
"Les métacaractères (à lexception de ``\\``) ne sont pas actifs dans les "
"classes. Par exemple, ``[akm$]`` correspond à n'importe quel caractère parmi "
"``'a'``, ``'k'``, ``'m'`` ou ``'$'`` ; ``'$'`` est habituellement un "
"métacaractère mais dans une classe de caractères, il est dépourvu de sa "
"signification spéciale."
#: howto/regex.rst:97
msgid ""
@ -270,9 +271,9 @@ msgstr ""
"équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une "
"chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés "
"comme lettre dans la base de données Unicode fournie par le module :mod:"
"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``"
"\\w`` dans un motif exprimé en chaîne de caractères en spécifiant l'option :"
"const:`re.ASCII` lors de la compilation de l'expression régulière."
"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de "
"``\\w`` dans un motif exprimé en chaîne de caractères en spécifiant "
"l'option :const:`re.ASCII` lors de la compilation de l'expression régulière."
#: howto/regex.rst:123
msgid ""
@ -317,8 +318,8 @@ msgstr "``\\s``"
#: howto/regex.rst:137
msgid ""
"Matches any whitespace character; this is equivalent to the class ``[ \\t\\n"
"\\r\\f\\v]``."
"Matches any whitespace character; this is equivalent to the class "
"``[ \\t\\n\\r\\f\\v]``."
msgstr ""
"Correspond à n'importe quel caractère « blanc » ; équivalent à la classe "
"``[ \\t\\n\\r\\f\\v]``."
@ -1192,8 +1193,8 @@ msgid ""
"Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only "
"on ASCII characters with the respective property."
msgstr ""
"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et ``"
"\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII "
"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et "
"``\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII "
"ayant la propriété demandée."
#: howto/regex.rst:543
@ -1253,8 +1254,8 @@ msgid ""
"z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, "
"they will match the 52 ASCII letters and 4 additional non-ASCII letters: "
"'İ' (U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin "
"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and '' (U"
"+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, "
"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and "
"'' (U+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, "
"``'spAM'``, or ``'ſpam'`` (the latter is matched only in Unicode mode). This "
"lowercasing doesn't take the current locale into account; it will if you "
"also set the :const:`LOCALE` flag."
@ -1269,7 +1270,7 @@ msgstr ""
"lettres ASCII et 4 lettres non ASCII supplémentaires : 'İ' (U+0130, lettre I "
"en majuscule latine avec un point au-dessus), 'ı' (U+0131, lettre minuscule "
"latine i sans point au-dessus), 'ſ' (U+017F, lettre minuscule latine longue "
"s) et 'K' (U+212A, signe du Kelvin). ``Spam`` correspond ainsi à ``'Spam'``, "
"s) et '' (U+212A, signe du Kelvin). ``Spam`` correspond ainsi à ``'Spam'``, "
"``'spam'``, ``'spAM'`` ou ``'ſpam'`` (ce dernier ne correspond qu'en mode "
"Unicode). Le passage en minuscules ne prend pas en compte la configuration "
"de région courante ; elle le fait si vous mettez aussi l'option :const:"
@ -1314,13 +1315,13 @@ msgstr ""
"certaines fonctions C diront à votre programme que l'octet codant ``é`` doit "
"être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la "
"compilation d'une expression régulière fait que l'objet compilé résultant "
"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à ``"
"\\w+`` de correspondre avec les mots français tel qu'attendu. L'utilisation "
"de cette option est déconseillée en Python 3 car le mécanisme de locale est "
"très peu fiable, il ne gère qu'une seule « culture » à la fois et il ne "
"fonctionne qu'avec des locales 8 bits. La correspondance Unicode est déjà "
"activée par défaut dans Python 3 pour les motifs Unicode (type *str*) et "
"elle est capable de gérer différentes configurations de régions."
"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à "
"``\\w+`` de correspondre avec les mots français tel qu'attendu. "
"L'utilisation de cette option est déconseillée en Python 3 car le mécanisme "
"de locale est très peu fiable, il ne gère qu'une seule « culture » à la fois "
"et il ne fonctionne qu'avec des locales 8 bits. La correspondance Unicode "
"est déjà activée par défaut dans Python 3 pour les motifs Unicode (type "
"*str*) et elle est capable de gérer différentes configurations de régions."
#: howto/regex.rst:605
msgid ""
@ -1593,8 +1594,8 @@ msgstr ""
msgid ""
"There are two subtleties you should remember when using this special "
"sequence. First, this is the worst collision between Python's string "
"literals and regular expression sequences. In Python's string literals, ``"
"\\b`` is the backspace character, ASCII value 8. If you're not using raw "
"literals and regular expression sequences. In Python's string literals, "
"``\\b`` is the backspace character, ASCII value 8. If you're not using raw "
"strings, then Python will convert the ``\\b`` to a backspace, and your RE "
"won't match as you expect it to. The following example looks the same as our "
"previous RE, but omits the ``'r'`` in front of the RE string. ::"
@ -1611,8 +1612,8 @@ msgstr ""
#: howto/regex.rst:774
msgid ""
"Second, inside a character class, where there's no use for this assertion, ``"
"\\b`` represents the backspace character, for compatibility with Python's "
"Second, inside a character class, where there's no use for this assertion, "
"``\\b`` represents the backspace character, for compatibility with Python's "
"string literals."
msgstr ""
"Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu "
@ -1667,8 +1668,8 @@ msgid ""
"Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and "
"``')'`` have much the same meaning as they do in mathematical expressions; "
"they group together the expressions contained inside them, and you can "
"repeat the contents of a group with a repeating qualifier, such as ``*``, ``"
"+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more "
"repeat the contents of a group with a repeating qualifier, such as ``*``, "
"``+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more "
"repetitions of ``ab``. ::"
msgstr ""
"Les groupes sont délimités par les métacaractères marqueurs ``'('`` et "
@ -1788,8 +1789,8 @@ msgstr ""
msgid ""
"Perl 5 is well known for its powerful additions to standard regular "
"expressions. For these new features the Perl developers couldn't choose new "
"single-keystroke metacharacters or new special sequences beginning with ``"
"\\`` without making Perl's regular expressions confusingly different from "
"single-keystroke metacharacters or new special sequences beginning with "
"``\\`` without making Perl's regular expressions confusingly different from "
"standard REs. If they chose ``&`` as a new metacharacter, for example, old "
"expressions would be assuming that ``&`` was a regular character and "
"wouldn't have escaped it by writing ``\\&`` or ``[&]``."
@ -1916,8 +1917,9 @@ msgstr ""
"meth:`~re.Match.groupdict` ::"
#: howto/regex.rst:952
#, fuzzy
msgid ""
"Named groups are handy because they let you use easily-remembered names, "
"Named groups are handy because they let you use easily remembered names, "
"instead of having to remember numbers. Here's an example RE from the :mod:"
"`imaplib` module::"
msgstr ""
@ -1939,8 +1941,8 @@ msgid ""
"name instead of the number. This is another Python extension: ``(?P=name)`` "
"indicates that the contents of the group called *name* should again be "
"matched at the current point. The regular expression for finding doubled "
"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P<word>\\w+)\\s"
"+(?P=word)\\b``::"
"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?"
"P<word>\\w+)\\s+(?P=word)\\b``::"
msgstr ""
"La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait "
"référence au numéro du groupe. Il y a naturellement une variante qui utilise "
@ -2109,11 +2111,11 @@ msgstr "Une assertion prédictive négative supprime toute cette confusion :"
#: howto/regex.rst:1042
msgid ""
"``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression "
"``bat`` doesn't match at this point, try the rest of the pattern; if ``bat"
"$`` does match, the whole pattern will fail. The trailing ``$`` is required "
"to ensure that something like ``sample.batch``, where the extension only "
"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the "
"pattern works when there are multiple dots in the filename."
"``bat`` doesn't match at this point, try the rest of the pattern; if "
"``bat$`` does match, the whole pattern will fail. The trailing ``$`` is "
"required to ensure that something like ``sample.batch``, where the extension "
"only starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that "
"the pattern works when there are multiple dots in the filename."
msgstr ""
"``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si "
"l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du "
@ -2319,9 +2321,9 @@ msgstr ""
msgid ""
"If *replacement* is a string, any backslash escapes in it are processed. "
"That is, ``\\n`` is converted to a single newline character, ``\\r`` is "
"converted to a carriage return, and so forth. Unknown escapes such as ``"
"\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with the "
"substring matched by the corresponding group in the RE. This lets you "
"converted to a carriage return, and so forth. Unknown escapes such as "
"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with "
"the substring matched by the corresponding group in the RE. This lets you "
"incorporate portions of the original text in the resulting replacement "
"string."
msgstr ""
@ -2356,9 +2358,9 @@ msgstr ""
"par la syntaxe ``(?P<nom>....)``. ``\\g<nom>`` utilise la sous-chaîne "
"correspondante au groupe nommé ``nom`` et ``\\g<numéro>`` utilise le numéro "
"de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais "
"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` (``"
"\\20`` serait interprété comme une référence au groupe 20 et non comme une "
"référence au groupe 2 suivie du caractère littéral ``'0'``). Les "
"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` "
"(``\\20`` serait interprété comme une référence au groupe 20 et non comme "
"une référence au groupe 2 suivie du caractère littéral ``'0'``). Les "
"substitutions suivantes sont toutes équivalentes mais utilisent les trois "
"variantes de la chaîne de remplacement. ::"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-12-16 02:37+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 12:27+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -472,13 +472,22 @@ msgstr "Données binaires"
msgid ""
"It is perfectly possible to send binary data over a socket. The major "
"problem is that not all machines use the same formats for binary data. For "
"example, a Motorola chip will represent a 16 bit integer with the value 1 as "
"the two hex bytes 00 01. Intel and DEC, however, are byte-reversed - that "
"same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit "
"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and \"h"
"\" means *host*, \"s\" means *short* and \"l\" means *long*. Where network "
"order is host order, these do nothing, but where the machine is byte-"
"reversed, these swap the bytes around appropriately."
"example, `network byte order <https://en.wikipedia.org/wiki/"
"Endianness#Networking>`_ is big-endian, with the most significant byte "
"first, so a 16 bit integer with the value ``1`` would be the two hex bytes "
"``00 01``. However, most common processors (x86/AMD64, ARM, RISC-V), are "
"little-endian, with the least significant byte first - that same ``1`` would "
"be ``01 00``."
msgstr ""
#: howto/sockets.rst:262
#, fuzzy
msgid ""
"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, "
"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, "
"\"s\" means *short* and \"l\" means *long*. Where network order is host "
"order, these do nothing, but where the machine is byte-reversed, these swap "
"the bytes around appropriately."
msgstr ""
"Il est parfaitement possible denvoyer des données binaires sur un "
"connecteur. Le gros problème est que toutes les machines nutilisent pas les "
@ -493,13 +502,15 @@ msgstr ""
"utilise lordre doctets inverse, ceux-ci échangent les octets de manière "
"appropriée."
#: howto/sockets.rst:264
#: howto/sockets.rst:268
#, fuzzy
msgid ""
"In these days of 32 bit machines, the ascii representation of binary data is "
"In these days of 64-bit machines, the ASCII representation of binary data is "
"frequently smaller than the binary representation. That's because a "
"surprising amount of the time, all those longs have the value 0, or maybe 1. "
"The string \"0\" would be two bytes, while binary is four. Of course, this "
"doesn't fit well with fixed-length messages. Decisions, decisions."
"surprising amount of the time, most integers have the value 0, or maybe 1. "
"The string ``\"0\"`` would be two bytes, while a full 64-bit integer would "
"be 8. Of course, this doesn't fit well with fixed-length messages. "
"Decisions, decisions."
msgstr ""
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des "
"données binaires est souvent plus compacte que la représentation binaire. "
@ -509,11 +520,11 @@ msgstr ""
"très bien avec les messages de longueur fixe. Ah, les décisions, les "
"décisions…"
#: howto/sockets.rst:272
#: howto/sockets.rst:277
msgid "Disconnecting"
msgstr "Déconnexion"
#: howto/sockets.rst:274
#: howto/sockets.rst:279
msgid ""
"Strictly speaking, you're supposed to use ``shutdown`` on a socket before "
"you ``close`` it. The ``shutdown`` is an advisory to the socket at the "
@ -534,7 +545,7 @@ msgstr ""
"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la "
"plupart des situations, un ``shutdown`` explicite nest pas nécessaire."
#: howto/sockets.rst:282
#: howto/sockets.rst:287
msgid ""
"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The "
"client sends a request and then does a ``shutdown(1)``. This tells the "
@ -551,7 +562,7 @@ msgstr ""
"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en "
"effet, le client était encore en train de recevoir."
#: howto/sockets.rst:289
#: howto/sockets.rst:294
msgid ""
"Python takes the automatic shutdown a step further, and says that when a "
"socket is garbage collected, it will automatically do a ``close`` if it's "
@ -568,11 +579,11 @@ msgstr ""
"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos "
"connecteurs quand vous avez terminé *sil vous plaît*."
#: howto/sockets.rst:297
#: howto/sockets.rst:302
msgid "When Sockets Die"
msgstr "Quand les connecteurs meurent"
#: howto/sockets.rst:299
#: howto/sockets.rst:304
msgid ""
"Probably the worst thing about using blocking sockets is what happens when "
"the other side comes down hard (without doing a ``close``). Your socket is "
@ -600,11 +611,11 @@ msgstr ""
"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre "
"processus risque d'être foutu."
#: howto/sockets.rst:313
#: howto/sockets.rst:318
msgid "Non-blocking Sockets"
msgstr "Connecteurs non bloquants"
#: howto/sockets.rst:315
#: howto/sockets.rst:320
msgid ""
"If you've understood the preceding, you already know most of what you need "
"to know about the mechanics of using sockets. You'll still use the same "
@ -616,7 +627,7 @@ msgstr ""
"toujours les mêmes appels, de la même façon. Il ny que ça. Si vous le "
"faites bien, cest presque dans la poche."
#: howto/sockets.rst:320
#: howto/sockets.rst:325
msgid ""
"In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In "
"C, it's more complex, (for one thing, you'll need to choose between the BSD "
@ -633,7 +644,7 @@ msgstr ""
"avoir créé le connecteur mais avant de lutiliser (en fait, si vous êtes "
"fou, vous pouvez alterner)."
#: howto/sockets.rst:327
#: howto/sockets.rst:332
msgid ""
"The major mechanical difference is that ``send``, ``recv``, ``connect`` and "
"``accept`` can return without having done anything. You have (of course) a "
@ -642,7 +653,7 @@ msgid ""
"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions "
"and do it right."
msgstr ""
"La différence majeure de fonctionnement est que `send``, ``recv``, "
"La différence majeure de fonctionnement est que ``send``, ``recv``, "
"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous "
"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de "
"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me "
@ -650,11 +661,11 @@ msgstr ""
"vampiriser le processeur. Alors, évitons les solutions vouées à léchec dès "
"le départ et faisons les choses correctement."
#: howto/sockets.rst:334
#: howto/sockets.rst:339
msgid "Use ``select``."
msgstr "Utilisation de ``select``."
#: howto/sockets.rst:336
#: howto/sockets.rst:341
msgid ""
"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, "
"but it's close enough to the C version that if you understand ``select`` in "
@ -664,7 +675,7 @@ msgstr ""
"mais c'est assez proche de la version C ; aussi, si vous comprenez "
"``select`` en Python, vous aurez peu de problèmes en C ::"
#: howto/sockets.rst:347
#: howto/sockets.rst:352
msgid ""
"You pass ``select`` three lists: the first contains all sockets that you "
"might want to try reading; the second all the sockets you might want to try "
@ -684,7 +695,7 @@ msgstr ""
"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de "
"ne pas le faire."
#: howto/sockets.rst:355
#: howto/sockets.rst:360
msgid ""
"In return, you will get three lists. They contain the sockets that are "
"actually readable, writable and in error. Each of these lists is a subset "
@ -695,7 +706,7 @@ msgstr ""
"est un sous-ensemble (éventuellement vide) de la liste correspondante que "
"vous avez transmise."
#: howto/sockets.rst:359
#: howto/sockets.rst:364
msgid ""
"If a socket is in the output readable list, you can be as-close-to-certain-"
"as-we-ever-get-in-this-business that a ``recv`` on that socket will return "
@ -713,7 +724,7 @@ msgstr ""
"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon "
"réseau sortant est disponible)."
#: howto/sockets.rst:366
#: howto/sockets.rst:371
msgid ""
"If you have a \"server\" socket, put it in the potential_readers list. If it "
"comes out in the readable list, your ``accept`` will (almost certainly) "
@ -730,7 +741,7 @@ msgstr ""
"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous "
"avez une bonne chance qu'il se soit connecté."
#: howto/sockets.rst:372
#: howto/sockets.rst:377
msgid ""
"Actually, ``select`` can be handy even with blocking sockets. It's one way "
"of determining whether you will block - the socket returns as readable when "
@ -744,7 +755,7 @@ msgstr ""
"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a "
"terminé, ou si elle est simplement occupée par autre chose."
#: howto/sockets.rst:377
#: howto/sockets.rst:382
msgid ""
"**Portability alert**: On Unix, ``select`` works both with the sockets and "
"files. Don't try this on Windows. On Windows, ``select`` works with sockets "

View File

@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-11-06 19:48+0100\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2022-07-08 17:51+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 3.0.1\n"
#: howto/sorting.rst:4
msgid "Sorting HOW TO"
@ -58,13 +58,12 @@ msgid "Sorting Basics"
msgstr "Les bases du tri"
#: howto/sorting.rst:20
#, fuzzy
msgid ""
"A simple ascending sort is very easy: just call the :func:`sorted` function. "
"It returns a new sorted list:"
msgstr ""
"Un tri ascendant simple est très facile : il suffit d'appeler la fonction :"
"func:`sorted`. Elle renvoie une nouvelle liste triée ::"
"func:`sorted`. Elle renvoie une nouvelle liste triée :"
#: howto/sorting.rst:28
msgid ""
@ -419,17 +418,25 @@ msgstr ""
#: howto/sorting.rst:328
msgid ""
"The sort routines are guaranteed to use :meth:`__lt__` when making "
"comparisons between two objects. So, it is easy to add a standard sort order "
"to a class by defining an :meth:`__lt__` method:"
"The sort routines use ``<`` when making comparisons between two objects. So, "
"it is easy to add a standard sort order to a class by defining an :meth:"
"`__lt__` method:"
msgstr ""
"Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` "
"lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est "
"facile d'ajouter un ordre de tri standard à une classe en définissant sa "
"méthode :meth:`__lt__` ::"
"Pour effectuer les comparaisons entre deux objets, les routines de tri "
"utilisent l'opérateur ``<``. Il est donc facile d'ajouter un ordre de tri "
"standard à une classe en définissant sa méthode :meth:`__lt__` ::"
#: howto/sorting.rst:338
msgid ""
"However, note that ``<`` can fall back to using :meth:`__gt__` if :meth:"
"`__lt__` is not implemented (see :func:`object.__lt__`)."
msgstr ""
"Notez toutefois que l'opérateur ``<`` peut utiliser la méthode :meth:"
"`__gt__` si :meth:`__lt__` n'est pas implémentée ; voir :func:`object."
"__lt__`."
#: howto/sorting.rst:341
msgid ""
"Key functions need not depend directly on the objects being sorted. A key "
"function can also access external resources. For instance, if the student "
"grades are stored in a dictionary, they can be used to sort a separate list "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 17:16+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -111,8 +111,8 @@ msgstr ""
"entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs possibles, le "
"`nombre de valeurs réellement assignées <https://www.unicode.org/versions/"
"latest/#Summary>`_ est inférieur à ce nombre). Dans le standard et dans le "
"présent document, un point de code est écrit en utilisant la notation ``U"
"+265E`` pour désigner le caractère avec la valeur ``0x265e`` (9 822 en "
"présent document, un point de code est écrit en utilisant la notation "
"``U+265E`` pour désigner le caractère avec la valeur ``0x265e`` (9 822 en "
"décimal)."
#: howto/unicode.rst:50
@ -357,9 +357,10 @@ msgstr ""
"v=MijmeoH9LT4>`_ (9 minutes et 36 secondes)."
#: howto/unicode.rst:169
#, fuzzy
msgid ""
"To help understand the standard, Jukka Korpela has written `an introductory "
"guide <http://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode "
"guide <https://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode "
"character tables."
msgstr ""
"Pour aider à comprendre le standard, Jukka Korpela a écrit `un guide "
@ -535,8 +536,8 @@ msgstr ""
"de ``'strict'``, ``'ignore'`` et ``'remplace'`` (qui dans ce cas insère un "
"point d'interrogation au lieu du caractère non encodable), il y a aussi "
"``'xmlcharrefreplace'`` (insère une référence XML), ``backslashreplace`` "
"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``"
"\\N{...}``)."
"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence "
"``\\N{...}``)."
#: howto/unicode.rst:280
msgid "The following example shows the different results::"
@ -572,8 +573,8 @@ msgid ""
msgstr ""
"Dans le code source Python, des points de code Unicode spécifiques peuvent "
"être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre "
"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``"
"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::"
"chiffres hexadécimaux donnant le point de code. La séquence d'échappement "
"``\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::"
#: howto/unicode.rst:324
msgid ""
@ -709,11 +710,11 @@ msgstr ""
"Unicode ajoute une certaine complication à la comparaison des chaînes de "
"caractères, car le même jeu de caractères peut être représenté par "
"différentes séquences de points de code. Par exemple, une lettre comme « ê » "
"peut être représentée comme un point de code unique ``U+00EA``, ou comme ``U"
"+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de code "
"pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même résultat "
"lorsqu'elles sont affichées, mais l'une est une chaîne de caractères de "
"longueur 1 et l'autre de longueur 2."
"peut être représentée comme un point de code unique ``U+00EA``, ou comme "
"``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de "
"code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même "
"résultat lorsqu'elles sont affichées, mais l'une est une chaîne de "
"caractères de longueur 1 et l'autre de longueur 2."
#: howto/unicode.rst:412
msgid ""
@ -835,8 +836,9 @@ msgstr ""
"sont :"
#: howto/unicode.rst:520
#, fuzzy
msgid ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
"`Processing Text Files in Python 3 <https://python-notes.curiousefficiency."
"org/en/latest/python3/text_file_processing.html>`_, by Nick Coghlan."
msgstr ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
@ -1232,14 +1234,15 @@ msgid ""
"error handler is used to encode the data and write it back out."
msgstr ""
"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-"
"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U"
"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le "
"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les "
"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à "
"``U+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque "
"le gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les "
"données et les réécrire."
#: howto/unicode.rst:737
#, fuzzy
msgid ""
"One section of `Mastering Python 3 Input/Output <http://pyvideo.org/"
"One section of `Mastering Python 3 Input/Output <https://pyvideo.org/"
"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
"Beazley, discusses text processing and binary data handling."
msgstr ""
@ -1264,8 +1267,9 @@ msgstr ""
"diapositives ne couvrent que Python 2.x."
#: howto/unicode.rst:747
#, fuzzy
msgid ""
"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
"`The Guts of Unicode in Python <https://pyvideo.org/video/1768/the-guts-of-"
"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
"discusses the internal Unicode representation in Python 3.3."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-24 17:33+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -24,14 +24,15 @@ msgid "Author"
msgstr "Auteur"
#: howto/urllib2.rst:7
msgid "`Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_"
msgid "`Michael Foord <https://agileabstractions.com/>`_"
msgstr ""
#: howto/urllib2.rst:11
msgid ""
"There is a French translation of an earlier revision of this HOWTO, "
"available at `urllib2 - Le Manuel manquant <http://www.voidspace.org.uk/"
"python/articles/urllib2_francais.shtml>`_."
"available at `urllib2 - Le Manuel manquant <https://web.archive.org/"
"web/20200910051922/http://www.voidspace.org.uk/python/articles/"
"urllib2_francais.shtml>`_."
msgstr ""
#: howto/urllib2.rst:18
@ -46,8 +47,8 @@ msgstr ""
#: howto/urllib2.rst:25
msgid ""
"`Basic Authentication <http://www.voidspace.org.uk/python/articles/"
"authentication.shtml>`_"
"`Basic Authentication <https://web.archive.org/web/20201215133350/http://www."
"voidspace.org.uk/python/articles/authentication.shtml>`_"
msgstr ""
#: howto/urllib2.rst:27
@ -130,8 +131,8 @@ msgid ""
"In the case of HTTP, there are two extra things that Request objects allow "
"you to do: First, you can pass data to be sent to the server. Second, you "
"can pass extra information (\"metadata\") *about* the data or about the "
"request itself, to the server - this information is sent as HTTP \"headers"
"\". Let's look at each of these in turn."
"request itself, to the server - this information is sent as HTTP "
"\"headers\". Let's look at each of these in turn."
msgstr ""
#: howto/urllib2.rst:105
@ -355,7 +356,7 @@ msgstr ""
#: howto/urllib2.rst:413
msgid ""
"Typical headers include 'Content-length', 'Content-type', and so on. See the "
"`Quick Reference to HTTP Headers <http://jkorpela.fi/http.html>`_ for a "
"`Quick Reference to HTTP Headers <https://jkorpela.fi/http.html>`_ for a "
"useful listing of HTTP headers with brief explanations of their meaning and "
"use."
msgstr ""
@ -367,7 +368,7 @@ msgstr ""
#: howto/urllib2.rst:422
msgid ""
"When you fetch a URL you use an opener (an instance of the perhaps "
"confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have "
"confusingly named :class:`urllib.request.OpenerDirector`). Normally we have "
"been using the default opener - via ``urlopen`` - but you can create custom "
"openers. Openers use handlers. All the \"heavy lifting\" is done by the "
"handlers. Each handler knows how to open URLs for a particular URL scheme "
@ -481,10 +482,10 @@ msgstr ""
#: howto/urllib2.rst:522
msgid ""
"``top_level_url`` is in fact *either* a full URL (including the 'http:' "
"scheme component and the hostname and optionally the port number) e.g. ``"
"\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, "
"optionally including the port number) e.g. ``\"example.com\"`` or ``"
"\"example.com:8080\"`` (the latter example includes a port number). The "
"scheme component and the hostname and optionally the port number) e.g. "
"``\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, "
"optionally including the port number) e.g. ``\"example.com\"`` or "
"``\"example.com:8080\"`` (the latter example includes a port number). The "
"authority, if present, must NOT contain the \"userinfo\" component - for "
"example ``\"joe:password@example.com\"`` is not correct."
msgstr ""

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-12-11 17:18+0100\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 15:59+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -126,13 +126,14 @@ msgid "Distutils based source distributions"
msgstr "Distributions basées sur *distutils*"
#: install/index.rst:64
#, fuzzy
msgid ""
"If you download a module source distribution, you can tell pretty quickly if "
"it was packaged and distributed in the standard way, i.e. using the "
"Distutils. First, the distribution's name and version number will be "
"featured prominently in the name of the downloaded archive, e.g. :file:"
"`foo-1.0.tar.gz` or :file:`widget-0.9.7.zip`. Next, the archive will unpack "
"into a similarly-named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. "
"into a similarly named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. "
"Additionally, the distribution will contain a setup script :file:`setup.py`, "
"and a file named :file:`README.txt` or possibly just :file:`README`, which "
"should explain that building and installing the module distribution is a "
@ -471,8 +472,8 @@ msgstr ""
#: install/index.rst:234
msgid ""
"The default installation directory on Windows was :file:`C:\\\\Program Files"
"\\\\Python` under Python 1.6a1, 1.5.2, and earlier."
"The default installation directory on Windows was :file:`C:\\\\Program "
"Files\\\\Python` under Python 1.6a1, 1.5.2, and earlier."
msgstr ""
"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\"
"\\Program Files\\\\Python` sous Python 1.6a1, 1.5.2 et avant."
@ -705,7 +706,7 @@ msgstr ""
"ajouter :file:`{userbase}/include` dans les chemins où le compilateur "
"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins "
"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C "
"partagées chargeables à l'exécution (`rpath`)."
"partagées chargeables à l'exécution (``rpath``)."
#: install/index.rst:352
msgid "Alternate installation: the home scheme"
@ -1290,7 +1291,7 @@ msgstr ""
#: install/index.rst:744
msgid ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`"
msgstr ""
msgstr ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`"
#: install/index.rst:758
msgid "personal"
@ -1298,7 +1299,7 @@ msgstr ""
#: install/index.rst:746
msgid ":file:`$HOME/.pydistutils.cfg`"
msgstr ""
msgstr ":file:`$HOME/.pydistutils.cfg`"
#: install/index.rst:760
msgid "local"
@ -1306,7 +1307,7 @@ msgstr ""
#: install/index.rst:760
msgid ":file:`setup.cfg`"
msgstr ""
msgstr ":file:`setup.cfg`"
#: install/index.rst:760
msgid "\\(3)"
@ -1318,7 +1319,7 @@ msgstr ""
#: install/index.rst:756
msgid ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`"
msgstr ""
msgstr ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`"
#: install/index.rst:756
msgid "\\(4)"
@ -1326,7 +1327,7 @@ msgstr "\\(4)"
#: install/index.rst:758
msgid ":file:`%HOME%\\\\pydistutils.cfg`"
msgstr ""
msgstr ":file:`%HOME%\\\\pydistutils.cfg`"
#: install/index.rst:758
msgid "\\(5)"
@ -1335,7 +1336,7 @@ msgstr "\\(5)"
#: install/index.rst:763
msgid ""
"On all platforms, the \"personal\" file can be temporarily disabled by "
"passing the `--no-user-cfg` option."
"passing the ``--no-user-cfg`` option."
msgstr ""
#: install/index.rst:769
@ -1548,9 +1549,9 @@ msgid ""
"appended to the proper command line, so in the above example the compiler "
"will be passed the :option:`!-o32` option, and the linker will be passed :"
"option:`!-shared`. If a compiler option requires an argument, you'll have "
"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x c"
"++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -Xcompiler "
"c++``."
"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x "
"c++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -"
"Xcompiler c++``."
msgstr ""
#: install/index.rst:936
@ -1721,8 +1722,8 @@ msgstr ""
#: install/index.rst:1065
msgid ""
"`Building Python modules on MS Windows platform with MinGW <http://old.zope."
"org/Members/als/tips/win32_mingw_modules>`_"
"`Building Python modules on MS Windows platform with MinGW <https://old.zope."
"dev/Members/als/tips/win32_mingw_modules>`_"
msgstr ""
#: install/index.rst:1066

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-02-23 18:50+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -407,10 +407,11 @@ msgstr ""
"est ::"
#: installing/index.rst:216
#, fuzzy
msgid ""
"There are also additional resources for `installing pip. <https://packaging."
"python.org/tutorials/installing-packages/#install-pip-setuptools-and-"
"wheel>`__"
"python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-"
"and-wheel-are-up-to-date>`__"
msgstr ""
"Voir aussi `installing pip. <https://packaging.python.org/tutorials/"
"installing-packages/#install-pip-setuptools-and-wheel>`__"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-31 11:33+0100\n"
"PO-Revision-Date: 2021-04-29 13:57+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-10-18 15:44+0200\n"
"Last-Translator: Dimitri Merejkowsky <dimitri@dmerej.info>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -16,7 +16,8 @@ msgstr ""
"X-Generator: Poedit 2.4.1\n"
#: library/2to3.rst:4
msgid "2to3 - Automated Python 2 to 3 code translation"
#, fuzzy
msgid "2to3 --- Automated Python 2 to 3 code translation"
msgstr "*2to3* — Traduction automatique de code en Python 2 vers Python 3"
#: library/2to3.rst:8
@ -206,10 +207,10 @@ msgid ""
msgstr ""
"L'option :option:`!-W` ou :option:`!—write-unchanged-files` indique à *2to3* "
"de toujours écrire des fichiers de sortie même si aucun changement du "
"fichier n'était nécessaire. Ceci est très utile avec `!-o` pour qu'un arbre "
"des sources Python entier soit copié avec la traduction d'un répertoire à "
"l'autre. Cette option implique :option:`!-w` sans quoi elle n'aurait pas de "
"sens."
"fichier n'était nécessaire. Ceci est très utile avec :option:`!-o` pour "
"qu'un arbre des sources Python entier soit copié avec la traduction d'un "
"répertoire à l'autre. Cette option implique :option:`!-w` sans quoi elle "
"n'aurait pas de sens."
#: library/2to3.rst:119
msgid "The :option:`!-W` flag was added."
@ -767,7 +768,8 @@ msgstr ""
"désactivé lorsque ``from future_builtins import zip`` apparaît."
#: library/2to3.rst:455
msgid ":mod:`lib2to3` - 2to3's library"
#, fuzzy
msgid ":mod:`lib2to3` --- 2to3's library"
msgstr ":mod:`lib2to3` — la bibliothèque de *2to3*"
#: library/2to3.rst:464

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2021-11-06 19:52+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -277,21 +277,35 @@ msgid "3.7.0b1"
msgstr "3.7.0b1"
#: library/__future__.rst:93
msgid "3.11"
msgstr "3.11"
msgid "TBD [1]_"
msgstr ""
#: library/__future__.rst:93
msgid ":pep:`563`: *Postponed evaluation of annotations*"
msgstr ":pep:`563` : *Évaluation différée des annotations*"
#: library/__future__.rst:102
#: library/__future__.rst:100
msgid ""
"``from __future__ import annotations`` was previously scheduled to become "
"mandatory in Python 3.10, but the Python Steering Council twice decided to "
"delay the change (`announcement for Python 3.10 <https://mail.python.org/"
"archives/list/python-dev@python.org/message/CLVXXPQ2T2LQ5MP2Y53VVQFCXYWQJHKZ/"
">`__; `announcement for Python 3.11 <https://mail.python.org/archives/list/"
"python-dev@python.org/message/VIZEBX5EYMSYIJNDBF6DMUMZOCWHARSO/>`__). No "
"final decision has been made yet. See also :pep:`563` and :pep:`649`."
msgstr ""
#: library/__future__.rst:110
msgid ":ref:`future`"
msgstr ":ref:`future`"
#: library/__future__.rst:103
#: library/__future__.rst:111
msgid "How the compiler treats future imports."
msgstr "Comment le compilateur gère les importations « futures »."
#~ msgid "3.11"
#~ msgstr "3.11"
#~ msgid "3.10"
#~ msgstr "3.10"

View File

@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"PO-Revision-Date: 2021-10-28 17:30+0200\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2022-05-18 13:39+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 3.0.1\n"
#: library/__main__.rst:2
msgid ":mod:`__main__` --- Top-level code environment"
@ -121,7 +121,9 @@ msgid ""
msgstr ""
"le module ou paquet passé à l'interpréteur avec l'option :option:`-m` :"
# Minuscule car toujours dans la même énumération, ignorez l'avertissement que Poedit affiche à cause de la majuscule à « Python ».
# Minuscule car toujours dans la même énumération, ignorez
# l'avertissement que Poedit affiche à cause de la majuscule à
# « Python ».
#: library/__main__.rst:75
msgid "Python code read by the Python interpreter from standard input:"
msgstr "le code lu par l'interpréteur depuis l'entrée standard :"
@ -163,7 +165,6 @@ msgid "Idiomatic Usage"
msgstr "Utilisation idiomatique"
#: library/__main__.rst:118
#, fuzzy
msgid ""
"Some modules contain code that is intended for script use only, like parsing "
"command-line arguments or fetching data from standard input. If a module "
@ -330,7 +331,6 @@ msgstr ""
"données ::"
#: library/__main__.rst:233
#, fuzzy
msgid ""
"Note that ``from .student import search_students`` is an example of a "
"relative import. This import style can be used when referencing modules "
@ -369,11 +369,11 @@ msgstr ""
msgid ""
"This won't work for ``__main__.py`` files in the root directory of a .zip "
"file though. Hence, for consistency, minimal ``__main__.py`` like the :mod:"
"`venv` one mentioned above are preferred."
"`venv` one mentioned below are preferred."
msgstr ""
"Malgré tout, cela ne fonctionne pas pour les fichiers ``__main__.py`` à la "
"racine d'une archive ZIP. Aussi est-il préférable d'écrire des ``__main__."
"py`` dans le style minimal de celui de :mod:`venv` mentionné ci-dessous."
"py`` dans le style minimal de celui de :mod:`venv` mentionné ci-dessus."
#: library/__main__.rst:260
msgid ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-11-06 20:06+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -262,11 +262,12 @@ msgstr ""
"acquérir le verrou — c'est leur raison d'être)."
#: library/_thread.rst:164
#, fuzzy
msgid ""
"If the integer *waitflag* argument is present, the action depends on its "
"value: if it is zero, the lock is only acquired if it can be acquired "
"immediately without waiting, while if it is nonzero, the lock is acquired "
"unconditionally as above."
"If the *blocking* argument is present, the action depends on its value: if "
"it is False, the lock is only acquired if it can be acquired immediately "
"without waiting, while if it is True, the lock is acquired unconditionally "
"as above."
msgstr ""
"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa "
"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être "
@ -274,11 +275,12 @@ msgstr ""
"inconditionnellement comme ci-dessus."
#: library/_thread.rst:169
#, fuzzy
msgid ""
"If the floating-point *timeout* argument is present and positive, it "
"specifies the maximum wait time in seconds before returning. A negative "
"*timeout* argument specifies an unbounded wait. You cannot specify a "
"*timeout* if *waitflag* is zero."
"*timeout* if *blocking* is False."
msgstr ""
"Si l'argument *timeout*, en virgule flottante, est présent et positif, il "
"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2021-11-06 20:18+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -106,9 +106,9 @@ msgstr ""
"Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter "
"d'une ABC directement, cette classe de base abstraite fonctionne alors comme "
"une classe *mixin*. Vous pouvez également enregistrer une classe concrète "
"sans lien (même une classe native) et des ABC comme \"sous-classes virtuelles"
"\" -- celles-ci et leur descendantes seront considérées comme des sous-"
"classes de la classe de base abstraite par la fonction native :func:"
"sans lien (même une classe native) et des ABC comme \"sous-classes "
"virtuelles\" -- celles-ci et leur descendantes seront considérées comme des "
"sous-classes de la classe de base abstraite par la fonction native :func:"
"`issubclass`, mais les ABC enregistrées n'apparaitront pas dans leur ordre "
"de résolution des méthodes (*MRO* pour *Method Resolution Order* en "
"anglais). Les implémentations de méthodes définies par l'ABC ne seront pas "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2020-12-11 15:56+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -18,19 +18,25 @@ msgstr ""
msgid ":mod:`aifc` --- Read and write AIFF and AIFC files"
msgstr ":mod:`aifc` — Lis et écrit dans les fichiers AIFF et AIFC"
#: library/aifc.rst:7
#: library/aifc.rst:8
msgid "**Source code:** :source:`Lib/aifc.py`"
msgstr "**Code source:** :source:`Lib/aifc.py`"
#: library/aifc.rst:16
msgid ""
"The :mod:`aifc` module is deprecated (see :pep:`PEP 594 <594#aifc>` for "
"details)."
msgstr ""
#: library/aifc.rst:22
msgid ""
"This module provides support for reading and writing AIFF and AIFF-C files. "
"AIFF is Audio Interchange File Format, a format for storing digital audio "
"samples in a file. AIFF-C is a newer version of the format that includes "
"the ability to compress the audio data."
msgstr ""
#: library/aifc.rst:21
#: library/aifc.rst:27
msgid ""
"Audio files have a number of parameters that describe the audio data. The "
"sampling rate or frame rate is the number of times per second the sound is "
@ -41,7 +47,7 @@ msgid ""
"samplesize * framerate`` bytes."
msgstr ""
#: library/aifc.rst:29
#: library/aifc.rst:35
msgid ""
"For example, CD quality audio has a sample size of two bytes (16 bits), uses "
"two channels (stereo) and has a frame rate of 44,100 frames/second. This "
@ -49,11 +55,11 @@ msgid ""
"2\\*2\\*44100 bytes (176,400 bytes)."
msgstr ""
#: library/aifc.rst:34
#: library/aifc.rst:40
msgid "Module :mod:`aifc` defines the following function:"
msgstr "Le module :mod:`aifc` définit les fonctions suivantes :"
#: library/aifc.rst:39
#: library/aifc.rst:45
msgid ""
"Open an AIFF or AIFF-C file and return an object instance with methods that "
"are described below. The argument *file* is either a string naming a file "
@ -67,48 +73,48 @@ msgid ""
"keyword:`!with` block completes, the :meth:`~aifc.close` method is called."
msgstr ""
#: library/aifc.rst:50
#: library/aifc.rst:56
msgid "Support for the :keyword:`with` statement was added."
msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée."
#: library/aifc.rst:53
#: library/aifc.rst:59
msgid ""
"Objects returned by :func:`.open` when a file is opened for reading have the "
"following methods:"
msgstr ""
#: library/aifc.rst:59
#: library/aifc.rst:65
#, fuzzy
msgid "Return the number of audio channels (1 for mono, 2 for stereo)."
msgstr ""
"Renvoie le nombre de canaux audio (``1`` pour mono, ``2`` pour stéréo)."
#: library/aifc.rst:64
#: library/aifc.rst:70
msgid "Return the size in bytes of individual samples."
msgstr "Donne la taille en octets des échantillons, individuellement."
#: library/aifc.rst:69
#: library/aifc.rst:75
msgid "Return the sampling rate (number of audio frames per second)."
msgstr ""
#: library/aifc.rst:74
#: library/aifc.rst:80
msgid "Return the number of audio frames in the file."
msgstr "Donne le nombre de trames (*frames*) audio du fichier."
#: library/aifc.rst:79
#: library/aifc.rst:85
msgid ""
"Return a bytes array of length 4 describing the type of compression used in "
"the audio file. For AIFF files, the returned value is ``b'NONE'``."
msgstr ""
#: library/aifc.rst:86
#: library/aifc.rst:92
msgid ""
"Return a bytes array convertible to a human-readable description of the type "
"of compression used in the audio file. For AIFF files, the returned value "
"is ``b'not compressed'``."
msgstr ""
#: library/aifc.rst:93
#: library/aifc.rst:99
msgid ""
"Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, "
"framerate, nframes, comptype, compname)``, equivalent to output of the :meth:"
@ -118,7 +124,7 @@ msgstr ""
"framerate, nframes, comptype, compname)``, équivalent à la sortie des "
"méthodes :meth:`get\\*`."
#: library/aifc.rst:100
#: library/aifc.rst:106
msgid ""
"Return a list of markers in the audio file. A marker consists of a tuple of "
"three elements. The first is the mark ID (an integer), the second is the "
@ -126,40 +132,40 @@ msgid ""
"third is the name of the mark (a string)."
msgstr ""
#: library/aifc.rst:108
#: library/aifc.rst:114
msgid ""
"Return the tuple as described in :meth:`getmarkers` for the mark with the "
"given *id*."
msgstr ""
#: library/aifc.rst:114
#: library/aifc.rst:120
msgid ""
"Read and return the next *nframes* frames from the audio file. The returned "
"data is a string containing for each frame the uncompressed samples of all "
"channels."
msgstr ""
#: library/aifc.rst:121
#: library/aifc.rst:127
msgid ""
"Rewind the read pointer. The next :meth:`readframes` will start from the "
"beginning."
msgstr ""
#: library/aifc.rst:127
#: library/aifc.rst:133
msgid "Seek to the specified frame number."
msgstr "Va à la trame de numéro donné."
#: library/aifc.rst:132
#: library/aifc.rst:138
msgid "Return the current frame number."
msgstr "Donne le numéro de la trame courante."
#: library/aifc.rst:137
#: library/aifc.rst:143
msgid ""
"Close the AIFF file. After calling this method, the object can no longer be "
"used."
msgstr ""
#: library/aifc.rst:140
#: library/aifc.rst:146
msgid ""
"Objects returned by :func:`.open` when a file is opened for writing have all "
"the above methods, except for :meth:`readframes` and :meth:`setpos`. In "
@ -169,40 +175,40 @@ msgid ""
"parameters except for the number of frames must be filled in."
msgstr ""
#: library/aifc.rst:150
#: library/aifc.rst:156
msgid ""
"Create an AIFF file. The default is that an AIFF-C file is created, unless "
"the name of the file ends in ``'.aiff'`` in which case the default is an "
"AIFF file."
msgstr ""
#: library/aifc.rst:156
#: library/aifc.rst:162
msgid ""
"Create an AIFF-C file. The default is that an AIFF-C file is created, "
"unless the name of the file ends in ``'.aiff'`` in which case the default is "
"an AIFF file."
msgstr ""
#: library/aifc.rst:163
#: library/aifc.rst:169
msgid "Specify the number of channels in the audio file."
msgstr "Définit le nombre de canaux du fichier audio."
#: library/aifc.rst:168
#: library/aifc.rst:174
msgid "Specify the size in bytes of audio samples."
msgstr "Définit la taille en octets des échantillons audio."
#: library/aifc.rst:173
#: library/aifc.rst:179
msgid "Specify the sampling frequency in frames per second."
msgstr ""
#: library/aifc.rst:178
#: library/aifc.rst:184
msgid ""
"Specify the number of frames that are to be written to the audio file. If "
"this parameter is not set, or not set correctly, the file needs to support "
"seeking."
msgstr ""
#: library/aifc.rst:189
#: library/aifc.rst:195
msgid ""
"Specify the compression type. If not specified, the audio data will not be "
"compressed. In AIFF files, compression is not possible. The name parameter "
@ -212,42 +218,42 @@ msgid ""
"``b'ALAW'``, ``b'G722'``."
msgstr ""
#: library/aifc.rst:199
#: library/aifc.rst:205
msgid ""
"Set all the above parameters at once. The argument is a tuple consisting of "
"the various parameters. This means that it is possible to use the result of "
"a :meth:`getparams` call as argument to :meth:`setparams`."
msgstr ""
#: library/aifc.rst:206
#: library/aifc.rst:212
msgid ""
"Add a mark with the given id (larger than 0), and the given name at the "
"given position. This method can be called at any time before :meth:`close`."
msgstr ""
#: library/aifc.rst:213
#: library/aifc.rst:219
msgid ""
"Return the current write position in the output file. Useful in combination "
"with :meth:`setmark`."
msgstr ""
#: library/aifc.rst:219
#: library/aifc.rst:225
msgid ""
"Write data to the output file. This method can only be called after the "
"audio file parameters have been set."
msgstr ""
#: library/aifc.rst:231
#: library/aifc.rst:237
msgid "Any :term:`bytes-like object` is now accepted."
msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté."
#: library/aifc.rst:228
#: library/aifc.rst:234
msgid ""
"Like :meth:`writeframes`, except that the header of the audio file is not "
"updated."
msgstr ""
#: library/aifc.rst:238
#: library/aifc.rst:244
msgid ""
"Close the AIFF file. The header of the file is updated to reflect the "
"actual size of the audio data. After calling this method, the object can no "

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-10-31 12:47+0100\n"
"Last-Translator: Cléo Buck <cleo.buck@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -200,7 +200,7 @@ msgstr ""
#: library/array.rst:53
msgid ""
"``array('u')`` now uses ``wchar_t`` as C type instead of deprecated "
"``Py_UNICODE``. This change doesn't affect to its behavior because "
"``Py_UNICODE``. This change doesn't affect its behavior because "
"``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-09-15 23:54+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -65,10 +65,11 @@ msgid "Node classes"
msgstr "Classes de nœuds"
#: library/ast.rst:46
#, fuzzy
msgid ""
"This is the base of all AST node classes. The actual node classes are "
"derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:"
"`below <abstract-grammar>`. They are defined in the :mod:`_ast` C module "
"`above <abstract-grammar>`. They are defined in the :mod:`_ast` C module "
"and re-exported in :mod:`ast`."
msgstr ""
"C'est la classe de base de toute classe de nœuds des d'arbres syntaxiques "
@ -767,7 +768,9 @@ msgstr ""
"Si une clause facultative comme ``else`` est absente, le champ correspondant "
"dans l'arbre est une liste vide."
# Il faut développer un peu plus que l'original car le lecteur ne comprend pas forcément les termes « body » et « orelse ». La même considération s'applique à bien des descriptions par la suite.
# Il faut développer un peu plus que l'original car le lecteur ne
# comprend pas forcément les termes « body » et « orelse ». La même
# considération s'applique à bien des descriptions par la suite.
#: library/ast.rst:992
msgid ""
"An ``if`` statement. ``test`` holds a single node, such as a :class:"
@ -1297,7 +1300,7 @@ msgid ""
"compilation step does."
msgstr ""
#: library/ast.rst:1973
#: library/ast.rst:1934
msgid ""
"It is possible to crash the Python interpreter with a sufficiently large/"
"complex string due to stack depth limitations in Python's AST compiler."
@ -1340,8 +1343,8 @@ msgstr ""
#: library/ast.rst:1962
#, fuzzy
msgid ""
"Safely evaluate an expression node or a string containing a Python literal "
"or container display. The string or node provided may only consist of the "
"Evaluate an expression node or a string containing only a Python literal or "
"container display. The string or node provided may only consist of the "
"following Python literal structures: strings, bytes, numbers, tuples, lists, "
"dicts, sets, booleans, ``None`` and ``Ellipsis``."
msgstr ""
@ -1352,11 +1355,11 @@ msgstr ""
"nombres, *n*-uplets, listes, dictionnaires, ensembles, booléens, et ``None``."
#: library/ast.rst:1967
#, fuzzy
msgid ""
"This can be used for safely evaluating strings containing Python values from "
"untrusted sources without the need to parse the values oneself. It is not "
"capable of evaluating arbitrarily complex expressions, for example involving "
"operators or indexing."
"This can be used for evaluating strings containing Python values without the "
"need to parse the values oneself. It is not capable of evaluating "
"arbitrarily complex expressions, for example involving operators or indexing."
msgstr ""
"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères "
"contenant des valeurs Python de source non fiable sans avoir besoin "
@ -1364,25 +1367,47 @@ msgstr ""
"d'évaluer des expressions arbitrairement complexes, par exemple impliquant "
"des opérateurs ou de l'indiçage."
#: library/ast.rst:1977
#: library/ast.rst:1972
msgid ""
"This function had been documented as \"safe\" in the past without defining "
"what that meant. That was misleading. This is specifically designed not to "
"execute Python code, unlike the more general :func:`eval`. There is no "
"namespace, no name lookups, or ability to call out. But it is not free from "
"attack: A relatively small input can lead to memory exhaustion or to C stack "
"exhaustion, crashing the process. There is also the possibility for "
"excessive CPU consumption denial of service on some inputs. Calling it on "
"untrusted data is thus not recommended."
msgstr ""
#: library/ast.rst:1982
#, fuzzy
msgid ""
"It is possible to crash the Python interpreter due to stack depth "
"limitations in Python's AST compiler."
msgstr ""
"Il est possible de faire planter l'interpréteur Python avec des chaînes "
"suffisamment grandes ou complexes lors de la compilation d'un arbre "
"syntaxique en raison de la limitation de la profondeur de la pile d'appels."
#: library/ast.rst:1985
msgid ""
"It can raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:"
"`MemoryError` and :exc:`RecursionError` depending on the malformed input."
msgstr ""
#: library/ast.rst:1981
#: library/ast.rst:1989
msgid "Now allows bytes and set literals."
msgstr "accepte maintenant les octets et ensembles littéraux."
#: library/ast.rst:1984
#: library/ast.rst:1992
msgid "Now supports creating empty sets with ``'set()'``."
msgstr "accepte ``set()`` pour les ensembles vides."
#: library/ast.rst:1987
#: library/ast.rst:1995
msgid "For string inputs, leading spaces and tabs are now stripped."
msgstr ""
#: library/ast.rst:1993
#: library/ast.rst:2001
msgid ""
"Return the docstring of the given *node* (which must be a :class:"
"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:"
@ -1394,11 +1419,11 @@ msgstr ""
"n'a pas de *docstring*. Si *clean* est vrai, cette fonction nettoie "
"l'indentation de la *docstring* avec :func:`inspect.cleandoc`."
#: library/ast.rst:1999
#: library/ast.rst:2007
msgid ":class:`AsyncFunctionDef` is now supported."
msgstr ":class:`AsyncFunctionDef` est maintenant gérée."
#: library/ast.rst:2005
#: library/ast.rst:2013
msgid ""
"Get source code segment of the *source* that generated *node*. If some "
"location information (:attr:`lineno`, :attr:`end_lineno`, :attr:"
@ -1409,13 +1434,13 @@ msgstr ""
"`end_lineno`, :attr:`col_offset` et :attr:`end_col_offset`) n'est pas "
"rempli, cette fonction renvoie ``None``."
#: library/ast.rst:2009
#: library/ast.rst:2017
msgid ""
"If *padded* is ``True``, the first line of a multi-line statement will be "
"padded with spaces to match its original position."
msgstr ""
#: library/ast.rst:2017
#: library/ast.rst:2025
msgid ""
"When you compile a node tree with :func:`compile`, the compiler expects :"
"attr:`lineno` and :attr:`col_offset` attributes for every node that supports "
@ -1431,7 +1456,7 @@ msgstr ""
"comme les valeurs du nœud parent. Elle fonctionne récursivement en démarrant "
"de *node*."
#: library/ast.rst:2026
#: library/ast.rst:2034
msgid ""
"Increment the line number and end line number of each node in the tree "
"starting at *node* by *n*. This is useful to \"move code\" to a different "
@ -1441,7 +1466,7 @@ msgstr ""
"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour "
 déplacer du code » à un endroit différent dans un fichier."
#: library/ast.rst:2033
#: library/ast.rst:2041
msgid ""
"Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:"
"`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if "
@ -1452,7 +1477,7 @@ msgstr ""
"*old_node* vers le nouveau nœud *new_node*, si possible, et renvoie "
"*new_node*."
#: library/ast.rst:2040
#: library/ast.rst:2048
msgid ""
"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` "
"that is present on *node*."
@ -1460,7 +1485,7 @@ msgstr ""
"Produit un *n*-uplet de couples ``(nom_du_champ, valeur)`` pour chaque champ "
"de ``node._fields`` qui est présent dans *node*."
#: library/ast.rst:2046
#: library/ast.rst:2054
msgid ""
"Yield all direct child nodes of *node*, that is, all fields that are nodes "
"and all items of fields that are lists of nodes."
@ -1469,7 +1494,7 @@ msgstr ""
"champs qui sont des nœuds et tous les éléments des champs qui sont des "
"listes de nœuds."
#: library/ast.rst:2052
#: library/ast.rst:2060
msgid ""
"Recursively yield all descendant nodes in the tree starting at *node* "
"(including *node* itself), in no specified order. This is useful if you "
@ -1480,7 +1505,7 @@ msgstr ""
"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au "
"contexte."
#: library/ast.rst:2059
#: library/ast.rst:2067
msgid ""
"A node visitor base class that walks the abstract syntax tree and calls a "
"visitor function for every node found. This function may return a value "
@ -1491,7 +1516,7 @@ msgstr ""
"Cette fonction peut renvoyer une valeur, qui est transmise par la méthode :"
"meth:`visit`."
#: library/ast.rst:2063
#: library/ast.rst:2071
msgid ""
"This class is meant to be subclassed, with the subclass adding visitor "
"methods."
@ -1499,7 +1524,7 @@ msgstr ""
"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite "
"à la sous-classe."
#: library/ast.rst:2068
#: library/ast.rst:2076
msgid ""
"Visit a node. The default implementation calls the method called :samp:"
"`self.visit_{classname}` where *classname* is the name of the node class, "
@ -1509,12 +1534,12 @@ msgstr ""
"visit_{classe}` où *classe* représente le nom de la classe du nœud, ou :meth:"
"`generic_visit` si cette méthode n'existe pas."
#: library/ast.rst:2074
#: library/ast.rst:2082
msgid "This visitor calls :meth:`visit` on all children of the node."
msgstr ""
"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud."
#: library/ast.rst:2076
#: library/ast.rst:2084
msgid ""
"Note that child nodes of nodes that have a custom visitor method won't be "
"visited unless the visitor calls :meth:`generic_visit` or visits them itself."
@ -1523,7 +1548,7 @@ msgstr ""
"sont pas visités à moins que le visiteur n'appelle la méthode :meth:"
"`generic_visit` ou ne les visite lui-même."
#: library/ast.rst:2080
#: library/ast.rst:2088
msgid ""
"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes "
"during traversal. For this a special visitor exists (:class:"
@ -1533,7 +1558,7 @@ msgstr ""
"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial "
"existe (:class:`NodeTransformer`) qui permet les modifications."
#: library/ast.rst:2086
#: library/ast.rst:2094
msgid ""
"Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:"
"`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will "
@ -1546,7 +1571,7 @@ msgstr ""
"une méthode :meth:`visit_Constant` pour traiter tous les nœuds qui "
"représentent des valeurs constantes."
#: library/ast.rst:2094
#: library/ast.rst:2102
msgid ""
"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and "
"allows modification of nodes."
@ -1554,7 +1579,7 @@ msgstr ""
"Une sous-classe de :class:`NodeVisitor` qui traverse l'arbre syntaxique "
"abstrait et permet de modifier les nœuds."
#: library/ast.rst:2097
#: library/ast.rst:2105
msgid ""
"The :class:`NodeTransformer` will walk the AST and use the return value of "
"the visitor methods to replace or remove the old node. If the return value "
@ -1568,7 +1593,7 @@ msgstr ""
"est supprimé de sa position, sinon il est remplacé par cette valeur. Elle "
"peut être le nœud original, auquel cas il n'y a pas de remplacement."
#: library/ast.rst:2103
#: library/ast.rst:2111
msgid ""
"Here is an example transformer that rewrites all occurrences of name lookups "
"(``foo``) to ``data['foo']``::"
@ -1576,7 +1601,7 @@ msgstr ""
"Voici un exemple de transformation qui réécrit tous les accès à la valeur "
"d'une variable ``toto`` en ``data['toto']`` ::"
#: library/ast.rst:2115
#: library/ast.rst:2123
msgid ""
"Keep in mind that if the node you're operating on has child nodes you must "
"either transform the child nodes yourself or call the :meth:`generic_visit` "
@ -1586,7 +1611,7 @@ msgstr ""
"enfants, vous devez transformer également ces nœuds enfants vous-même ou "
"appeler d'abord la méthode :meth:`generic_visit` sur le nœud."
#: library/ast.rst:2119
#: library/ast.rst:2127
msgid ""
"For nodes that were part of a collection of statements (that applies to all "
"statement nodes), the visitor may also return a list of nodes rather than "
@ -1596,7 +1621,7 @@ msgstr ""
"instructions), le visiteur peut aussi renvoyer une liste des nœuds plutôt "
"qu'un seul nœud."
#: library/ast.rst:2123
#: library/ast.rst:2131
msgid ""
"If :class:`NodeTransformer` introduces new nodes (that weren't part of "
"original tree) without giving them location information (such as :attr:"
@ -1608,11 +1633,11 @@ msgstr ""
"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) "
"à :func:`fix_missing_locations` pour calculer les positions manquantes :"
#: library/ast.rst:2131
#: library/ast.rst:2139
msgid "Usually you use the transformer like this::"
msgstr "Utilisation typique des transformations ::"
#: library/ast.rst:2138
#: library/ast.rst:2146
msgid ""
"Return a formatted dump of the tree in *node*. This is mainly useful for "
"debugging purposes. If *annotate_fields* is true (by default), the returned "
@ -1632,32 +1657,32 @@ msgstr ""
"masqués par défaut, mais on peut les inclure en mettant *include_attributes* "
"à ``True``."
#: library/ast.rst:2146
#: library/ast.rst:2154
msgid ""
"If *indent* is a non-negative integer or string, then the tree will be "
"pretty-printed with that indent level. An indent level of 0, negative, or ``"
"\"\"`` will only insert newlines. ``None`` (the default) selects the single "
"line representation. Using a positive integer indent indents that many "
"spaces per level. If *indent* is a string (such as ``\"\\t\"``), that "
"pretty-printed with that indent level. An indent level of 0, negative, or "
"``\"\"`` will only insert newlines. ``None`` (the default) selects the "
"single line representation. Using a positive integer indent indents that "
"many spaces per level. If *indent* is a string (such as ``\"\\t\"``), that "
"string is used to indent each level."
msgstr ""
"La représentation peut comprendre une indentation afin d'être plus lisible. "
"Si *indent* est une chaîne de caractères (par exemple une tabulation ``\"\\t"
"\"``), elle est insérée au début des lignes en la répétant autant de fois "
"que le niveau d'indentation. Un entier positif équivaut à un certain nombre "
"d'espaces. Un entier strictement négatif produit un effet identique à 0 ou "
"la chaîne vide, c'est-à-dire des retours à la ligne sans indentation. Avec "
"la valeur par défaut de ``None``, la sortie tient sur une seule ligne."
"Si *indent* est une chaîne de caractères (par exemple une tabulation "
"``\"\\t\"``), elle est insérée au début des lignes en la répétant autant de "
"fois que le niveau d'indentation. Un entier positif équivaut à un certain "
"nombre d'espaces. Un entier strictement négatif produit un effet identique à "
"0 ou la chaîne vide, c'est-à-dire des retours à la ligne sans indentation. "
"Avec la valeur par défaut de ``None``, la sortie tient sur une seule ligne."
#: library/ast.rst:2153
#: library/ast.rst:2161
msgid "Added the *indent* option."
msgstr "ajout du paramètre *indent*."
#: library/ast.rst:2160
#: library/ast.rst:2168
msgid "Compiler Flags"
msgstr "Options du compilateur"
#: library/ast.rst:2162
#: library/ast.rst:2170
msgid ""
"The following flags may be passed to :func:`compile` in order to change "
"effects on the compilation of a program:"
@ -1665,7 +1690,7 @@ msgstr ""
"Les options suivantes sont prises en charge par la fonction :func:`compile`. "
"Elles permettent de modifier le comportement de la compilation."
#: library/ast.rst:2167
#: library/ast.rst:2175
msgid ""
"Enables support for top-level ``await``, ``async for``, ``async with`` and "
"async comprehensions."
@ -1673,14 +1698,14 @@ msgstr ""
"Active la reconnaissance de ``await``, ``async for``, ``async with`` et des "
"compréhensions asynchrones au niveau le plus haut."
#: library/ast.rst:2174
#: library/ast.rst:2182
msgid ""
"Generates and returns an abstract syntax tree instead of returning a "
"compiled code object."
msgstr ""
"Génère et renvoie un arbre syntaxique au lieu d'un objet de code compilé."
#: library/ast.rst:2179
#: library/ast.rst:2187
msgid ""
"Enables support for :pep:`484` and :pep:`526` style type comments (``# type: "
"<type>``, ``# type: ignore <stuff>``)."
@ -1688,11 +1713,11 @@ msgstr ""
"Ajoute la prise en charge des commentaires de types tels que définis dans "
"la :pep:`484` et la :pep:`526` (``# type: un_type`` et ``# type: ignore``)."
#: library/ast.rst:2188
#: library/ast.rst:2196
msgid "Command-Line Usage"
msgstr "Utilisation en ligne de commande"
#: library/ast.rst:2192
#: library/ast.rst:2200
msgid ""
"The :mod:`ast` module can be executed as a script from the command line. It "
"is as simple as:"
@ -1700,15 +1725,15 @@ msgstr ""
"Le module :mod:`ast` peut être exécuté en tant que script en ligne de "
"commande. C'est aussi simple que ceci :"
#: library/ast.rst:2199
#: library/ast.rst:2207
msgid "The following options are accepted:"
msgstr "Les options suivantes sont acceptées :"
#: library/ast.rst:2205
#: library/ast.rst:2213
msgid "Show the help message and exit."
msgstr "Affiche un message d'aide et quitte."
#: library/ast.rst:2210
#: library/ast.rst:2218
msgid ""
"Specify what kind of code must be compiled, like the *mode* argument in :"
"func:`parse`."
@ -1716,21 +1741,21 @@ msgstr ""
"Précise le type de code à compiler, comme l'argument *mode* de la fonction :"
"func:`parse`."
#: library/ast.rst:2215
#: library/ast.rst:2223
msgid "Don't parse type comments."
msgstr "Désactive la reconnaissance des commentaires de type."
#: library/ast.rst:2219
#: library/ast.rst:2227
msgid "Include attributes such as line numbers and column offsets."
msgstr ""
"Affiche les attributs comme les numéros de lignes et les décalages par "
"rapport aux débuts des lignes."
#: library/ast.rst:2224
#: library/ast.rst:2232
msgid "Indentation of nodes in AST (number of spaces)."
msgstr "Nombre d'espaces pour chaque niveau d'indentation dans la sortie."
#: library/ast.rst:2226
#: library/ast.rst:2234
msgid ""
"If :file:`infile` is specified its contents are parsed to AST and dumped to "
"stdout. Otherwise, the content is read from stdin."
@ -1739,7 +1764,7 @@ msgstr ""
"standard sinon. Le code source est transformé en un arbre syntaxique, qui "
"est affiché sur la sortie standard."
#: library/ast.rst:2232
#: library/ast.rst:2240
msgid ""
"`Green Tree Snakes <https://greentreesnakes.readthedocs.io/>`_, an external "
"documentation resource, has good details on working with Python ASTs."
@ -1748,7 +1773,7 @@ msgstr ""
"ressource documentaire externe, qui possède plus de détails pour travailler "
"avec des arbres syntaxiques Python."
#: library/ast.rst:2235
#: library/ast.rst:2243
msgid ""
"`ASTTokens <https://asttokens.readthedocs.io/en/latest/user-guide.html>`_ "
"annotates Python ASTs with the positions of tokens and text in the source "
@ -1760,9 +1785,10 @@ msgstr ""
"extraits de code source à partir desquels ils sont produits. Ceci est utile "
"pour les outils qui transforment du code source."
#: library/ast.rst:2240
#: library/ast.rst:2248
#, fuzzy
msgid ""
"`leoAst.py <http://leoeditor.com/appendices.html#leoast-py>`_ unifies the "
"`leoAst.py <https://leoeditor.com/appendices.html#leoast-py>`_ unifies the "
"token-based and parse-tree-based views of python programs by inserting two-"
"way links between tokens and ast nodes."
msgstr ""
@ -1770,7 +1796,7 @@ msgstr ""
"visions des lexèmes et des arbres syntaxiques en insérant des liens "
"bidirectionnels entre les deux."
#: library/ast.rst:2244
#: library/ast.rst:2252
msgid ""
"`LibCST <https://libcst.readthedocs.io/>`_ parses code as a Concrete Syntax "
"Tree that looks like an ast tree and keeps all formatting details. It's "
@ -1781,7 +1807,7 @@ msgstr ""
"abstraits et conservent tous les détails du formatage. Cette bibliothèque "
"est utile aux outils de réusinage et d'analyse de code."
#: library/ast.rst:2249
#: library/ast.rst:2257
msgid ""
"`Parso <https://parso.readthedocs.io>`_ is a Python parser that supports "
"error recovery and round-trip parsing for different Python versions (in "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-10-06 17:04+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -21,15 +21,17 @@ msgstr ""
":mod:`asynchat` --- Gestionnaire d'interfaces de connexion (*socket*) "
"commande/réponse asynchrones"
#: library/asynchat.rst:10
#: library/asynchat.rst:11
msgid "**Source code:** :source:`Lib/asynchat.py`"
msgstr "*Code source :** :source:`Lib/asynchat.py`"
#: library/asynchat.rst:12
msgid "Please use :mod:`asyncio` instead."
msgstr "Utilisez :mod:`asyncio` à la place."
#: library/asynchat.rst:13
msgid ""
":mod:`asynchat` will be removed in Python 3.12 (see :pep:`PEP 594 "
"<594#asynchat>` for details). Please use :mod:`asyncio` instead."
msgstr ""
#: library/asynchat.rst:19
#: library/asynchat.rst:22
msgid ""
"This module exists for backwards compatibility only. For new code we "
"recommend using :mod:`asyncio`."
@ -37,7 +39,7 @@ msgstr ""
"Ce module n'existe que pour des raisons de rétrocompatibilité. Pour du code "
"nouveau, l'utilisation de :mod:`asyncio` est recommandée."
#: library/asynchat.rst:22
#: library/asynchat.rst:25
msgid ""
"This module builds on the :mod:`asyncore` infrastructure, simplifying "
"asynchronous clients and servers and making it easier to handle protocols "
@ -64,7 +66,7 @@ msgstr ""
"d'objets :class:`asynchat.async_chat` à la réception de requêtes de "
"connexion."
#: library/asynchat.rst:37
#: library/asynchat.rst:40
msgid ""
"This class is an abstract subclass of :class:`asyncore.dispatcher`. To make "
"practical use of the code you must subclass :class:`async_chat`, providing "
@ -79,7 +81,7 @@ msgstr ""
"de :class:`asyncore.dispatcher` peuvent être utilisées, même si toutes "
"n'ont pas de sens dans un contexte de messages/réponse."
#: library/asynchat.rst:44
#: library/asynchat.rst:47
msgid ""
"Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of "
"events that are generated by an analysis of socket conditions after a :c:"
@ -94,7 +96,7 @@ msgstr ""
"objets :class:`async_chat` sont appelées par le *framework* de traitement "
"dévénements sans que le programmeur n'ait à le spécifier."
#: library/asynchat.rst:50
#: library/asynchat.rst:53
msgid ""
"Two class attributes can be modified, to improve performance, or possibly "
"even to conserve memory."
@ -102,15 +104,15 @@ msgstr ""
"Deux attributs de classe peuvent être modifiés, pour améliorer la "
"performance, ou potentiellement pour économiser de la mémoire."
#: library/asynchat.rst:56
#: library/asynchat.rst:59
msgid "The asynchronous input buffer size (default ``4096``)."
msgstr "La taille du tampon d'entrées asynchrones (``4096`` par défaut)."
#: library/asynchat.rst:61
#: library/asynchat.rst:64
msgid "The asynchronous output buffer size (default ``4096``)."
msgstr "La taille du tampon de sorties asynchrones (``4096`` par défaut)."
#: library/asynchat.rst:63
#: library/asynchat.rst:66
msgid ""
"Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to "
"define a :abbr:`FIFO (first-in, first-out)` queue of *producers*. A producer "
@ -137,7 +139,7 @@ msgstr ""
"d'un point d'arrêt, dans in transmission entrante depuis le point daccès "
"distant."
#: library/asynchat.rst:76
#: library/asynchat.rst:79
msgid ""
"To build a functioning :class:`async_chat` subclass your input methods :"
"meth:`collect_incoming_data` and :meth:`found_terminator` must handle the "
@ -149,7 +151,7 @@ msgstr ""
"`found_terminator` doivent gérer la donnée que le canal reçoit de manière "
"asynchrone. Ces méthodes sont décrites ci-dessous."
#: library/asynchat.rst:84
#: library/asynchat.rst:87
msgid ""
"Pushes a ``None`` on to the producer queue. When this producer is popped off "
"the queue it causes the channel to be closed."
@ -157,7 +159,7 @@ msgstr ""
"Pousse un ``None`` sur la pile de producteurs. Quand ce producteur est "
"récupéré dans la queue, le canal est fermé."
#: library/asynchat.rst:90
#: library/asynchat.rst:93
msgid ""
"Called with *data* holding an arbitrary amount of received data. The "
"default method, which must be overridden, raises a :exc:"
@ -166,7 +168,7 @@ msgstr ""
"Appelé avec *data* contenant une quantité arbitraire de données. La méthode "
"par défaut, qui doit être écrasée, lève une :exc:`NotImplementedError`."
#: library/asynchat.rst:97
#: library/asynchat.rst:100
msgid ""
"In emergencies this method will discard any data held in the input and/or "
"output buffers and the producer queue."
@ -174,7 +176,7 @@ msgstr ""
"En cas d'urgence, cette méthode va supprimer tout donnée présente dans les "
"tampons d'entrée et/ou de sortie dans la queue de producteurs."
#: library/asynchat.rst:103
#: library/asynchat.rst:106
msgid ""
"Called when the incoming data stream matches the termination condition set "
"by :meth:`set_terminator`. The default method, which must be overridden, "
@ -186,11 +188,11 @@ msgstr ""
"lève une :exc:`NotImplementedError`. Les données entrantes mise en tampon "
"devraient être disponible via un attribut de l'instance."
#: library/asynchat.rst:111
#: library/asynchat.rst:114
msgid "Returns the current terminator for the channel."
msgstr "Renvoie le terminateur courant pour le canal."
#: library/asynchat.rst:116
#: library/asynchat.rst:119
msgid ""
"Pushes data on to the channel's queue to ensure its transmission. This is "
"all you need to do to have the channel write the data out to the network, "
@ -203,10 +205,11 @@ msgstr ""
"schémas plus complexes qui implémentent de la cryptographie et du *chunking* "
"par exemple."
#: library/asynchat.rst:124
#: library/asynchat.rst:127
#, fuzzy
msgid ""
"Takes a producer object and adds it to the producer queue associated with "
"the channel. When all currently-pushed producers have been exhausted the "
"the channel. When all currently pushed producers have been exhausted the "
"channel will consume this producer's data by calling its :meth:`more` method "
"and send the data to the remote endpoint."
msgstr ""
@ -215,7 +218,7 @@ msgstr ""
"canal consomme les données de ce producteur en appelant sa méthode :meth:"
"`more` et envoie les données au point daccès distant."
#: library/asynchat.rst:132
#: library/asynchat.rst:135
msgid ""
"Sets the terminating condition to be recognized on the channel. ``term`` "
"may be any of three types of value, corresponding to three different ways to "
@ -225,19 +228,19 @@ msgstr ""
"n'importe lequel des trois types de valeurs, correspondant aux trois "
"différentes manières de gérer les données entrantes."
#: library/asynchat.rst:137
#: library/asynchat.rst:140
msgid "term"
msgstr "*term*"
#: library/asynchat.rst:137
#: library/asynchat.rst:140
msgid "Description"
msgstr "Description"
#: library/asynchat.rst:139
#: library/asynchat.rst:142
msgid "*string*"
msgstr "*string*"
#: library/asynchat.rst:139
#: library/asynchat.rst:142
msgid ""
"Will call :meth:`found_terminator` when the string is found in the input "
"stream"
@ -245,11 +248,11 @@ msgstr ""
"Appellera :meth:`found_terminator` quand la chaîne est trouvée dans le flux "
"d'entré"
#: library/asynchat.rst:142
#: library/asynchat.rst:145
msgid "*integer*"
msgstr "*integer*"
#: library/asynchat.rst:142
#: library/asynchat.rst:145
msgid ""
"Will call :meth:`found_terminator` when the indicated number of characters "
"have been received"
@ -257,15 +260,15 @@ msgstr ""
"Appellera :meth:`found_terminator` quand le nombre de caractère indiqué à "
"été reçu"
#: library/asynchat.rst:146
#: library/asynchat.rst:149
msgid "``None``"
msgstr "``None``"
#: library/asynchat.rst:146
#: library/asynchat.rst:149
msgid "The channel continues to collect data forever"
msgstr "Le canal continue de collecter des informations indéfiniment"
#: library/asynchat.rst:150
#: library/asynchat.rst:153
msgid ""
"Note that any data following the terminator will be available for reading by "
"the channel after :meth:`found_terminator` is called."
@ -273,11 +276,11 @@ msgstr ""
"Notez que toute donnée située après le marqueur de fin sera accessible en "
"lecture par le canal après que :meth:`found_terminator` ai été appelé."
#: library/asynchat.rst:157
#: library/asynchat.rst:160
msgid "asynchat Example"
msgstr "Exemple *asynchat*"
#: library/asynchat.rst:159
#: library/asynchat.rst:162
msgid ""
"The following partial example shows how HTTP requests can be read with :"
"class:`async_chat`. A web server might create an :class:"
@ -293,7 +296,7 @@ msgstr ""
"lignes vides à la fin des entêtes HTTP, et une option indique que les "
"entêtes sont en train d'être lues."
#: library/asynchat.rst:166
#: library/asynchat.rst:169
msgid ""
"Once the headers have been read, if the request is of type POST (indicating "
"that further data are present in the input stream) then the ``Content-Length:"
@ -305,7 +308,7 @@ msgstr ""
"alors l'entête ``Content-Length:`` est utilisé pour définir un marqueur de "
"fin numérique pour lire la bonne quantité de donné depuis le canal."
#: library/asynchat.rst:171
#: library/asynchat.rst:174
msgid ""
"The :meth:`handle_request` method is called once all relevant input has been "
"marshalled, after setting the channel terminator to ``None`` to ensure that "
@ -315,3 +318,6 @@ msgstr ""
"données pertinentes ont été rassemblées, après avoir définit le marqueur de "
"fin à ``None`` pour s'assurer que toute données étrangères envoyées par le "
"client web sont ignorées. ::"
#~ msgid "Please use :mod:`asyncio` instead."
#~ msgstr "Utilisez :mod:`asyncio` à la place."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -43,7 +43,7 @@ msgstr ""
#: library/asyncio-api-index.rst:24
msgid ":func:`create_task`"
msgstr ""
msgstr ":func:`create_task`"
#: library/asyncio-api-index.rst:25
msgid "Start an asyncio Task."
@ -91,7 +91,7 @@ msgstr ""
#: library/asyncio-api-index.rst:42
msgid ":func:`current_task`"
msgstr ""
msgstr ":func:`current_task`"
#: library/asyncio-api-index.rst:43
msgid "Return the current Task."
@ -99,7 +99,7 @@ msgstr ""
#: library/asyncio-api-index.rst:45
msgid ":func:`all_tasks`"
msgstr ""
msgstr ":func:`all_tasks`"
#: library/asyncio-api-index.rst:46
msgid "Return all tasks for an event loop."
@ -107,7 +107,7 @@ msgstr ""
#: library/asyncio-api-index.rst:48
msgid ":class:`Task`"
msgstr ""
msgstr ":class:`Task`"
#: library/asyncio-api-index.rst:49
msgid "Task object."
@ -124,7 +124,7 @@ msgstr ""
#: library/asyncio-api-index.rst:54
msgid ":func:`run_coroutine_threadsafe`"
msgstr ""
msgstr ":func:`run_coroutine_threadsafe`"
#: library/asyncio-api-index.rst:55
msgid "Schedule a coroutine from another OS thread."
@ -286,7 +286,7 @@ msgstr ""
#: library/asyncio-api-index.rst:150
msgid ":class:`StreamReader`"
msgstr ""
msgstr ":class:`StreamReader`"
#: library/asyncio-api-index.rst:151
msgid "High-level async/await object to receive network data."
@ -294,7 +294,7 @@ msgstr ""
#: library/asyncio-api-index.rst:153
msgid ":class:`StreamWriter`"
msgstr ""
msgstr ":class:`StreamWriter`"
#: library/asyncio-api-index.rst:154
msgid "High-level async/await object to send network data."
@ -372,7 +372,7 @@ msgstr "Exceptions"
#: library/asyncio-api-index.rst:206
msgid ":exc:`asyncio.TimeoutError`"
msgstr ""
msgstr ":exc:`asyncio.TimeoutError`"
#: library/asyncio-api-index.rst:207
msgid ""
@ -383,7 +383,7 @@ msgstr ""
#: library/asyncio-api-index.rst:211
msgid ":exc:`asyncio.CancelledError`"
msgstr ""
msgstr ":exc:`asyncio.CancelledError`"
#: library/asyncio-api-index.rst:212
msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`."

View File

@ -5,14 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"PO-Revision-Date: 2018-10-13 17:38+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-06-06 21:29-0400\n"
"Last-Translator: Nicolas Haller <nicolas@haller.im>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
#: library/asyncio-dev.rst:7
msgid "Developing with asyncio"
@ -23,45 +24,54 @@ msgid ""
"Asynchronous programming is different from classic \"sequential\" "
"programming."
msgstr ""
"La programmation asynchrone est différente de la programmation "
 séquentielle » classique."
#: library/asyncio-dev.rst:12
msgid ""
"This page lists common mistakes and traps and explains how to avoid them."
msgstr ""
"Cette page liste les pièges et erreurs communs que le développeur pourrait "
"rencontrer et décrit comment les éviter."
#: library/asyncio-dev.rst:19
msgid "Debug Mode"
msgstr ""
msgstr "Mode débogage"
#: library/asyncio-dev.rst:21
msgid ""
"By default asyncio runs in production mode. In order to ease the "
"development asyncio has a *debug mode*."
msgstr ""
"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le "
"développement, *asyncio* possède un « mode débogage »."
#: library/asyncio-dev.rst:24
msgid "There are several ways to enable asyncio debug mode:"
msgstr ""
msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :"
#: library/asyncio-dev.rst:26
msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``."
msgstr ""
"en réglant la variable denvironnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;"
#: library/asyncio-dev.rst:28
msgid "Using the :ref:`Python Development Mode <devmode>`."
msgstr ""
"en utilisant le mode développement de Python (:ref:`Python Development Mode "
"<devmode>`) ;"
#: library/asyncio-dev.rst:30
msgid "Passing ``debug=True`` to :func:`asyncio.run`."
msgstr ""
msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;"
#: library/asyncio-dev.rst:32
msgid "Calling :meth:`loop.set_debug`."
msgstr ""
msgstr "en appelant la méthode :meth:`loop.set_debug`."
#: library/asyncio-dev.rst:34
msgid "In addition to enabling the debug mode, consider also:"
msgstr ""
msgstr "En plus d'activer le mode débogage, vous pouvez également :"
#: library/asyncio-dev.rst:36
msgid ""
@ -69,6 +79,10 @@ msgid ""
"data:`logging.DEBUG`, for example the following snippet of code can be run "
"at startup of the application::"
msgstr ""
"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:"
"`asyncio logger <asyncio-logger>`) à :py:data:`logging.DEBUG` ; par exemple, "
"le fragment de code suivant peut être exécuté au démarrage de "
"l'application ::"
#: library/asyncio-dev.rst:42
msgid ""
@ -76,30 +90,44 @@ msgid ""
"warnings. One way of doing that is by using the :option:`-W` ``default`` "
"command line option."
msgstr ""
"configurer le module :mod:`warnings` afin d'afficher les avertissements de "
"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant l'option :"
"option:`-W` ``default`` sur la ligne de commande."
#: library/asyncio-dev.rst:47
msgid "When the debug mode is enabled:"
msgstr ""
msgstr "Lorsque le mode débogage est activé :"
# long ref
#: library/asyncio-dev.rst:49
msgid ""
"asyncio checks for :ref:`coroutines that were not awaited <asyncio-coroutine-"
"not-scheduled>` and logs them; this mitigates the \"forgotten await\" "
"pitfall."
msgstr ""
"*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues "
"<asyncio-coroutine-not-scheduled>` et les journalise ; cela atténue le "
"problème des « *await* oubliés » ;"
# thread safe comment traduire
#: library/asyncio-dev.rst:53
msgid ""
"Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:"
"`loop.call_at` methods) raise an exception if they are called from a wrong "
"thread."
msgstr ""
"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution "
"multiples (comme les méthodes :meth:`loop.call_soon` et :meth:`loop."
"call_at`) lèvent une exception si elles sont appelées par le mauvais fil "
"dexécution ;"
#: library/asyncio-dev.rst:57
msgid ""
"The execution time of the I/O selector is logged if it takes too long to "
"perform an I/O operation."
msgstr ""
"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une "
"opération prend trop de temps à s'effectuer ;"
#: library/asyncio-dev.rst:60
msgid ""
@ -107,10 +135,14 @@ msgid ""
"slow_callback_duration` attribute can be used to set the minimum execution "
"duration in seconds that is considered \"slow\"."
msgstr ""
"les fonctions de rappel prenant plus de 100 ms sont journalisées ; "
"l'attribut :attr:`loop.slow_callback_duration` peut être utilisé pour "
"changer la limite (en secondes) après laquelle une fonction de rappel est "
"considérée comme « lent »."
#: library/asyncio-dev.rst:68
msgid "Concurrency and Multithreading"
msgstr "Concourance et *multithreading*"
msgstr "Programmation concurrente et multi-fils"
#: library/asyncio-dev.rst:70
msgid ""
@ -120,12 +152,21 @@ msgid ""
"``await`` expression, the running Task gets suspended, and the event loop "
"executes the next Task."
msgstr ""
"Une boucle d'évènements s'exécute dans un fil dexécution (typiquement dans "
"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) "
"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours "
"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut "
"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, "
"elle se suspend et laisse la boucle dévènements traiter la tâche suivante."
#: library/asyncio-dev.rst:76
msgid ""
"To schedule a :term:`callback` from another OS thread, the :meth:`loop."
"call_soon_threadsafe` method should be used. Example::"
msgstr ""
"Pour planifier un :term:`rappel <callback>` depuis un autre fil d'exécution "
"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par "
"exemple ::"
#: library/asyncio-dev.rst:81
msgid ""
@ -134,6 +175,12 @@ msgid ""
"a callback. If there's a need for such code to call a low-level asyncio "
"API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::"
msgstr ""
"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans "
"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un "
"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors "
"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code "
"appelle les *API* bas niveau de *asyncio*, utilisez la méthode :meth:`loop."
"call_soon_threadsafe`. Par exemple ::"
#: library/asyncio-dev.rst:89
msgid ""
@ -141,12 +188,17 @@ msgid ""
"`run_coroutine_threadsafe` function should be used. It returns a :class:"
"`concurrent.futures.Future` to access the result::"
msgstr ""
"Pour planifier un objet concurrent depuis un autre fil d'exécution système, "
"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un objet :"
"class:`concurrent.futures.Future` pour accéder au résultat ::"
#: library/asyncio-dev.rst:102
msgid ""
"To handle signals and to execute subprocesses, the event loop must be run in "
"the main thread."
msgstr ""
"Pour pouvoir traiter les signaux et démarrer des processus enfants, la "
"boucle d'évènements doit être exécutée dans le fil principal."
#: library/asyncio-dev.rst:105
msgid ""
@ -155,23 +207,39 @@ msgid ""
"different OS thread without blocking the OS thread that the event loop runs "
"in."
msgstr ""
"La méthode :meth:`loop.run_in_executor` peut être utilisée avec :class:"
"`concurrent.futures.ThreadPoolExecutor` pour exécuter du code bloquant dans "
"un autre fil d'exécution, afin de ne pas bloquer le fil où la boucle "
"d'évènements se trouve."
#: library/asyncio-dev.rst:110
#, fuzzy
msgid ""
"There is currently no way to schedule coroutines or callbacks directly from "
"a different process (such as one started with :mod:`multiprocessing`). The :"
"ref:`Event Loop Methods <asyncio-event-loop>` section lists APIs that can "
"read from pipes and watch file descriptors without blocking the event loop. "
"In addition, asyncio's :ref:`Subprocess <asyncio-subprocess>` APIs provide a "
"way to start a process and communicate with it from the event loop. Lastly, "
"the aforementioned :meth:`loop.run_in_executor` method can also be used with "
"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
"ref:`asyncio-event-loop-methods` section lists APIs that can read from pipes "
"and watch file descriptors without blocking the event loop. In addition, "
"asyncio's :ref:`Subprocess <asyncio-subprocess>` APIs provide a way to start "
"a process and communicate with it from the event loop. Lastly, the "
"aforementioned :meth:`loop.run_in_executor` method can also be used with a :"
"class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
"different process."
msgstr ""
"Il n'y a actuellement aucune façon de planifier des coroutines ou des "
"rappels directement depuis un autre processus (comme, par exemple, un "
"processus démarré avec :mod:`multiprocessing`). La section :ref:`Méthodes de "
"la boucle d'évènements <asyncio-event-loop>` liste les *API* pouvant lire "
"les tubes (*pipes*) et surveiller les descripteurs de fichiers sans bloquer "
"la boucle d'évènements. De plus, les *API* :ref:`Subprocess <asyncio-"
"subprocess>` d'*asyncio* fournissent un moyen de démarrer un processus et de "
"communiquer avec lui depuis la boucle d'évènements. Enfin, la méthode :meth:"
"`loop.run_in_executor` peut également être utilisée avec :class:`concurrent."
"futures.ProcessPoolExecutor` pour exécuter du code dans un processus "
"différent."
#: library/asyncio-dev.rst:124
msgid "Running Blocking Code"
msgstr ""
msgstr "Exécution de code bloquant"
#: library/asyncio-dev.rst:126
msgid ""
@ -179,6 +247,11 @@ msgid ""
"function performs a CPU-intensive calculation for 1 second, all concurrent "
"asyncio Tasks and IO operations would be delayed by 1 second."
msgstr ""
"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas "
"être appelé directement. Par exemple, si une fonction effectue des calculs "
"utilisant le CPU intensivement pendant une seconde, toutes les tâches "
"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées "
"pour une seconde."
#: library/asyncio-dev.rst:131
msgid ""
@ -186,6 +259,10 @@ msgid ""
"different process to avoid blocking the OS thread with the event loop. See "
"the :meth:`loop.run_in_executor` method for more details."
msgstr ""
"Un exécuteur peut être utilisé pour traiter une tâche dans un fil "
"d'exécution ou un processus différent, afin d'éviter de bloquer le fil "
"d'exécution système dans lequel se trouve la boucle dévènements. Voir :meth:"
"`loop.run_in_executor` pour plus de détails."
#: library/asyncio-dev.rst:140
msgid "Logging"
@ -196,56 +273,79 @@ msgid ""
"asyncio uses the :mod:`logging` module and all logging is performed via the "
"``\"asyncio\"`` logger."
msgstr ""
"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de "
"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``."
#: library/asyncio-dev.rst:145
msgid ""
"The default log level is :py:data:`logging.INFO`, which can be easily "
"adjusted::"
msgstr ""
"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut "
"être ajusté facilement ::"
#: library/asyncio-dev.rst:154
msgid "Detect never-awaited coroutines"
#: library/asyncio-dev.rst:151
msgid ""
"Network logging can block the event loop. It is recommended to use a "
"separate thread for handling logs or use non-blocking IO. For example, see :"
"ref:`blocking-handlers`."
msgstr ""
#: library/asyncio-dev.rst:156
#: library/asyncio-dev.rst:159
msgid "Detect never-awaited coroutines"
msgstr "Détection des coroutines jamais attendues"
#: library/asyncio-dev.rst:161
msgid ""
"When a coroutine function is called, but not awaited (e.g. ``coro()`` "
"instead of ``await coro()``) or the coroutine is not scheduled with :meth:"
"`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::"
msgstr ""
"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue "
"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est "
"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:"
"`RuntimeWarning` ::"
#: library/asyncio-dev.rst:216
#: library/asyncio-dev.rst:221
msgid "Output::"
msgstr "Sortie ::"
#: library/asyncio-dev.rst:232
#: library/asyncio-dev.rst:237
msgid "Output in debug mode::"
msgstr "Affichage en mode débogage ::"
#: library/asyncio-dev.rst:189
#: library/asyncio-dev.rst:194
msgid ""
"The usual fix is to either await the coroutine or call the :meth:`asyncio."
"create_task` function::"
msgstr ""
"La façon habituelle de régler ce problème est d'attendre (*await*) la "
"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::"
#: library/asyncio-dev.rst:197
#: library/asyncio-dev.rst:202
msgid "Detect never-retrieved exceptions"
msgstr ""
msgstr "Détection des exceptions jamais récupérées"
#: library/asyncio-dev.rst:199
#: library/asyncio-dev.rst:204
msgid ""
"If a :meth:`Future.set_exception` is called but the Future object is never "
"awaited on, the exception would never be propagated to the user code. In "
"this case, asyncio would emit a log message when the Future object is "
"garbage collected."
msgstr ""
"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet "
"*Future* n'est pas attendu, l'exception n'est pas propagée au code "
"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque "
"l'objet *Future* est récupéré par le ramasse-miette."
#: library/asyncio-dev.rst:204
#: library/asyncio-dev.rst:209
msgid "Example of an unhandled exception::"
msgstr ""
msgstr "Exemple d'une exception non-gérée ::"
#: library/asyncio-dev.rst:227
#: library/asyncio-dev.rst:232
msgid ""
":ref:`Enable the debug mode <asyncio-debug-mode>` to get the traceback where "
"the task was created::"
msgstr ""
":ref:`Activez le mode débogage <asyncio-debug-mode>` pour récupérer la trace "
"d'appels indiquant où la tâche a été créée ::"

File diff suppressed because it is too large Load Diff

View File

@ -5,60 +5,70 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 10:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2022-08-22 22:57-0400\n"
"Last-Translator: Nicolas Haller <nicolas@haller.im>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.1.1\n"
#: library/asyncio-future.rst:8
msgid "Futures"
msgstr "Futurs"
msgstr "Futures"
#: library/asyncio-future.rst:10
msgid ""
"**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/"
"base_futures.py`"
msgstr ""
"**Code source :** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/"
"base_futures.py`"
#: library/asyncio-future.rst:15
msgid ""
"*Future* objects are used to bridge **low-level callback-based code** with "
"high-level async/await code."
msgstr ""
"Les objets *Future* sont utilisés comme passerelles entre du **code bas "
"niveau basé sur des fonctions de rappel** et du code haut niveau utilisant "
"*async* et *await*."
#: library/asyncio-future.rst:20
msgid "Future Functions"
msgstr ""
msgstr "Fonctions pour *Future*"
#: library/asyncio-future.rst:24
msgid "Return ``True`` if *obj* is either of:"
msgstr ""
msgstr "Renvoie ``True`` si *obj* est soit :"
#: library/asyncio-future.rst:26
msgid "an instance of :class:`asyncio.Future`,"
msgstr ""
msgstr "une instance de :class:`asyncio.Future` ;"
#: library/asyncio-future.rst:27
msgid "an instance of :class:`asyncio.Task`,"
msgstr ""
msgstr "une instance de :class:`asyncio.Task` ;"
#: library/asyncio-future.rst:28
msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute."
msgstr ""
"un objet se comportant comme *Future* et possédant un attribut "
"``_asyncio_future_blocking``."
#: library/asyncio-future.rst:36
msgid "Return:"
msgstr ""
msgstr "Renvoie :"
#: library/asyncio-future.rst:38
msgid ""
"*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a "
"Future-like object (:func:`isfuture` is used for the test.)"
msgstr ""
"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou "
"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;"
#: library/asyncio-future.rst:42
msgid ""
@ -66,28 +76,40 @@ msgid ""
"`iscoroutine` is used for the test); in this case the coroutine will be "
"scheduled by ``ensure_future()``."
msgstr ""
"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine (:"
"func:`iscoroutine` est utilisée pour le test). Dans ce cas, lexécution de "
"la coroutine sera planifiée par ``ensure_future()`` ;"
#: library/asyncio-future.rst:47
msgid ""
"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:"
"func:`inspect.isawaitable` is used for the test.)"
msgstr ""
"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être "
"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test."
#: library/asyncio-future.rst:50
msgid "If *obj* is neither of the above a :exc:`TypeError` is raised."
msgstr ""
"Si *obj* ne correspond à aucun des critères ci-dessus, une exception :exc:"
"`TypeError` est levée."
#: library/asyncio-future.rst:54
msgid ""
"See also the :func:`create_task` function which is the preferred way for "
"creating new Tasks."
msgstr ""
"Voir aussi la fonction :func:`create_task` qui est la manière privilégiée "
"pour créer des nouvelles tâches."
#: library/asyncio-future.rst:57
#, fuzzy
msgid ""
"Save a reference to the result of this function, to avoid a task "
"disappearing mid execution."
"disappearing mid-execution."
msgstr ""
"Gardez une référence au résultat de cette fonction pour éviter de voir une "
"tâche disparaitre au milieu de son exécution."
#: library/asyncio-future.rst:60
msgid "The function accepts any :term:`awaitable` object."
@ -98,88 +120,115 @@ msgid ""
"Deprecation warning is emitted if *obj* is not a Future-like object and "
"*loop* is not specified and there is no running event loop."
msgstr ""
"Un ``DeprecationWarning`` est levé si *obj* n'est pas un objet se comportant "
"comme un *Future*, si *loop* n'est pas spécifié et s'il n'y a pas de boucle "
"d'évènements en cours d'exécution."
#: library/asyncio-future.rst:70
msgid ""
"Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio."
"Future` object."
msgstr ""
"Encapsule un objet :class:`concurrent.futures.Future` dans un objet :class:"
"`asyncio.Future`."
#: library/asyncio-future.rst:73
msgid ""
"Deprecation warning is emitted if *future* is not a Future-like object and "
"*loop* is not specified and there is no running event loop."
msgstr ""
"Un ``DeprecationWarning`` est levé si *future* n'est pas un objet se "
"comportant comme un *Future*, si *loop* n'est pas spécifié et s'il n'y a pas "
"de boucle d'évènements en cours d'exécution."
#: library/asyncio-future.rst:79
msgid "Future Object"
msgstr ""
msgstr "Objet *Future*"
#: library/asyncio-future.rst:83
msgid ""
"A Future represents an eventual result of an asynchronous operation. Not "
"thread-safe."
msgstr ""
"Un *Future* représente le résultat final d'une opération asynchrone. Il "
"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution."
#: library/asyncio-future.rst:86
#, fuzzy
msgid ""
"Future is an :term:`awaitable` object. Coroutines can await on Future "
"objects until they either have a result or an exception set, or until they "
"are cancelled."
"are cancelled. A Future can be awaited multiple times and the result is same."
msgstr ""
"*Future* est un objet qui peut être attendu (:term:`awaitable`). Les "
"coroutines peuvent attendre les objets *Future* jusqu'à ce qu'ils renvoient "
"un résultat, ils lèvent une exception ou qu'ils soient annulés."
#: library/asyncio-future.rst:90
#: library/asyncio-future.rst:91
msgid ""
"Typically Futures are used to enable low-level callback-based code (e.g. in "
"protocols implemented using asyncio :ref:`transports <asyncio-transports-"
"protocols>`) to interoperate with high-level async/await code."
msgstr ""
"Les *Futures* sont habituellement utilisés pour permettre à du code bas "
"niveau basé sur des fonctions de rappel (par exemple : les protocoles "
"utilisant *asyncio* :ref:`transports <asyncio-transports-protocols>`) "
"d'interagir avec du code haut niveau utilisant *async* et *await*."
#: library/asyncio-future.rst:95
#: library/asyncio-future.rst:96
msgid ""
"The rule of thumb is to never expose Future objects in user-facing APIs, and "
"the recommended way to create a Future object is to call :meth:`loop."
"create_future`. This way alternative event loop implementations can inject "
"their own optimized implementations of a Future object."
msgstr ""
"Une bonne règle empirique est de ne jamais exposer des objets *Future* dans "
"des *API* destinées à l'utilisateur. La façon privilégiée de créer des "
"objets *Future* est d'appeler la méthode :meth:`loop.create_future`. Cela "
"permet aux implémentations alternatives de la boucle d'évènements d'utiliser "
"leur propre implémentation de l'objet *Future*."
#: library/asyncio-future.rst:101
#: library/asyncio-future.rst:102
msgid "Added support for the :mod:`contextvars` module."
msgstr "Ajout du support du module :mod:`contextvars`."
#: library/asyncio-future.rst:104
#: library/asyncio-future.rst:105
msgid ""
"Deprecation warning is emitted if *loop* is not specified and there is no "
"running event loop."
msgstr ""
"Un ``DeprecationWarning`` est levé si *loop* n'est pas spécifié et s'il n'y "
"a pas de boucle d'évènements en cours d'exécution."
#: library/asyncio-future.rst:110
#: library/asyncio-future.rst:111
msgid "Return the result of the Future."
msgstr ""
msgstr "Renvoie le résultat du *Future*."
#: library/asyncio-future.rst:112
#: library/asyncio-future.rst:113
msgid ""
"If the Future is *done* and has a result set by the :meth:`set_result` "
"method, the result value is returned."
msgstr ""
"Si le *Future* est « terminé » et a un résultat défini par la méthode :meth:"
"`set_result`, ce résultat est renvoyé."
#: library/asyncio-future.rst:115
#: library/asyncio-future.rst:116
msgid ""
"If the Future is *done* and has an exception set by the :meth:"
"`set_exception` method, this method raises the exception."
msgstr ""
"Si le *Future* est « terminé » et a une exception définie par la méthode :"
"meth:`set_exception`, cette méthode lève l'exception."
#: library/asyncio-future.rst:206
#, fuzzy
#: library/asyncio-future.rst:207
msgid ""
"If the Future has been *cancelled*, this method raises a :exc:"
"`CancelledError` exception."
msgstr ""
"Si la tâche a été *annulée*, cette méthode lève une exception :exc:"
"Si le *Future* a été *annulé*, cette méthode lève une exception :exc:"
"`CancelledError`."
#: library/asyncio-future.rst:121
#, fuzzy
#: library/asyncio-future.rst:122
msgid ""
"If the Future's result isn't yet available, this method raises a :exc:"
"`InvalidStateError` exception."
@ -187,166 +236,206 @@ msgstr ""
"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève "
"une exception :exc:`InvalidStateError`."
#: library/asyncio-future.rst:126
#, fuzzy
#: library/asyncio-future.rst:127
msgid "Mark the Future as *done* and set its result."
msgstr "Marque le futur comme terminé et définit son résultat."
msgstr "Marque le *Future* comme « terminé » et définit son résultat."
#: library/asyncio-future.rst:135
#: library/asyncio-future.rst:136
msgid ""
"Raises a :exc:`InvalidStateError` error if the Future is already *done*."
msgstr ""
"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »."
#: library/asyncio-future.rst:133
#, fuzzy
#: library/asyncio-future.rst:134
msgid "Mark the Future as *done* and set an exception."
msgstr "Marque le futur comme terminé et définit une exception."
msgstr "Marque le *Future* comme « terminé » et définit une exception."
#: library/asyncio-future.rst:140
#: library/asyncio-future.rst:141
msgid "Return ``True`` if the Future is *done*."
msgstr ""
msgstr "Renvoie ``True`` si le *Future* est « terminé »."
#: library/asyncio-future.rst:142
#: library/asyncio-future.rst:143
msgid ""
"A Future is *done* if it was *cancelled* or if it has a result or an "
"exception set with :meth:`set_result` or :meth:`set_exception` calls."
msgstr ""
"Un *Future* est « terminé » s'il a été « annulé » ou si un résultat ou une "
"exception a été définie par les méthodes :meth:`set_result` ou :meth:"
"`set_exception`."
#: library/asyncio-future.rst:148
#: library/asyncio-future.rst:149
msgid "Return ``True`` if the Future was *cancelled*."
msgstr ""
msgstr "Renvoie ``True`` si le *Future* a été « annulé »."
#: library/asyncio-future.rst:150
#: library/asyncio-future.rst:151
msgid ""
"The method is usually used to check if a Future is not *cancelled* before "
"setting a result or an exception for it::"
msgstr ""
"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est "
"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::"
#: library/asyncio-future.rst:158
#: library/asyncio-future.rst:159
msgid "Add a callback to be run when the Future is *done*."
msgstr ""
"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »."
#: library/asyncio-future.rst:160
#: library/asyncio-future.rst:161
msgid "The *callback* is called with the Future object as its only argument."
msgstr ""
"L'argument *callback* est appelé avec l'objet *Future* comme seul argument."
#: library/asyncio-future.rst:163
#: library/asyncio-future.rst:164
msgid ""
"If the Future is already *done* when this method is called, the callback is "
"scheduled with :meth:`loop.call_soon`."
msgstr ""
"Si le *Future* est déjà « terminé » lorsque la méthode est appelée, "
"l'exécution de la fonction de rappel est planifiée avec :meth:`loop."
"call_soon`."
#: library/asyncio-future.rst:166
#: library/asyncio-future.rst:167
msgid ""
"An optional keyword-only *context* argument allows specifying a custom :"
"class:`contextvars.Context` for the *callback* to run in. The current "
"context is used when no *context* is provided."
msgstr ""
"L'argument nommé optionnel *context* permet de spécifier une classe :class:"
"`contextvars.Context` personnalisée dans laquelle la fonction de rappel "
"sexécutera. Le contexte actuel est utilisé si *context* n'est pas fourni."
#: library/asyncio-future.rst:170
#: library/asyncio-future.rst:171
msgid ""
":func:`functools.partial` can be used to pass parameters to the callback, e."
"g.::"
msgstr ""
":func:`functools.partial` peut être utilisée pour passer des paramètres à la "
"fonction de rappel ::"
#: library/asyncio-future.rst:177
#: library/asyncio-future.rst:178
msgid ""
"The *context* keyword-only parameter was added. See :pep:`567` for more "
"details."
msgstr ""
"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails."
#: library/asyncio-future.rst:183
#: library/asyncio-future.rst:184
msgid "Remove *callback* from the callbacks list."
msgstr "Retire *callback* de la liste de fonctions de rappel."
#: library/asyncio-future.rst:185
#: library/asyncio-future.rst:186
msgid ""
"Returns the number of callbacks removed, which is typically 1, unless a "
"callback was added more than once."
msgstr ""
"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie "
"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois."
#: library/asyncio-future.rst:190
#: library/asyncio-future.rst:191
msgid "Cancel the Future and schedule callbacks."
msgstr ""
msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel."
#: library/asyncio-future.rst:192
#: library/asyncio-future.rst:193
msgid ""
"If the Future is already *done* or *cancelled*, return ``False``. Otherwise, "
"change the Future's state to *cancelled*, schedule the callbacks, and return "
"``True``."
msgstr ""
"Si le *Future* est déjà « terminé » ou « annulé », renvoie ``False``. "
"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des "
"fonctions de rappel et renvoie ``True``."
#: library/asyncio-future.rst:196
msgid "Added the ``msg`` parameter."
msgstr ""
#: library/asyncio-future.rst:197
msgid "Added the *msg* parameter."
msgstr "Ajout du paramètre *msg*."
#: library/asyncio-future.rst:201
#: library/asyncio-future.rst:202
msgid "Return the exception that was set on this Future."
msgstr ""
msgstr "Renvoie l'exception définie pour ce *Future*."
#: library/asyncio-future.rst:203
#: library/asyncio-future.rst:204
msgid ""
"The exception (or ``None`` if no exception was set) is returned only if the "
"Future is *done*."
msgstr ""
"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé "
"seulement si le *Future* est « terminé »."
#: library/asyncio-future.rst:209
#, fuzzy
#: library/asyncio-future.rst:210
msgid ""
"If the Future isn't *done* yet, this method raises an :exc:"
"`InvalidStateError` exception."
msgstr ""
"Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :"
"exc:`InvalidStateError`."
"Si le *Future* n'est pas encore « terminé », cette méthode lève une "
"exception :exc:`InvalidStateError`."
#: library/asyncio-future.rst:214
#: library/asyncio-future.rst:215
msgid "Return the event loop the Future object is bound to."
msgstr ""
msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché."
#: library/asyncio-future.rst:221
#: library/asyncio-future.rst:222
msgid ""
"This example creates a Future object, creates and schedules an asynchronous "
"Task to set result for the Future, and waits until the Future has a result::"
msgstr ""
"Cet exemple crée un objet *Future*, puis crée et planifie lexécution d'une "
"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce "
"que le *Future* ait un résultat ::"
#: library/asyncio-future.rst:256
#: library/asyncio-future.rst:257
msgid ""
"The Future object was designed to mimic :class:`concurrent.futures.Future`. "
"Key differences include:"
msgstr ""
"L'objet *Future* est conçu pour imiter la classe :class:`concurrent.futures."
"Future`. Les principales différences sont :"
#: library/asyncio-future.rst:259
#: library/asyncio-future.rst:260
msgid ""
"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot "
"be awaited."
msgstr ""
"contrairement au *Future asyncio*, les instances de :class:`concurrent."
"futures.Future` ne peuvent pas être attendues ;"
#: library/asyncio-future.rst:262
#: library/asyncio-future.rst:263
msgid ""
":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not "
"accept the *timeout* argument."
msgstr ""
":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` "
"n'acceptent pas d'argument *timeout* ;"
#: library/asyncio-future.rst:265
#: library/asyncio-future.rst:266
msgid ""
":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :"
"exc:`InvalidStateError` exception when the Future is not *done*."
msgstr ""
":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` lèvent une "
"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas "
 terminé » ;"
#: library/asyncio-future.rst:269
#: library/asyncio-future.rst:270
msgid ""
"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not "
"called immediately. They are scheduled with :meth:`loop.call_soon` instead."
msgstr ""
"les fonctions de rappel enregistrées à l'aide de :meth:`asyncio.Future."
"add_done_callback` ne sont pas exécutées immédiatement mais planifiées avec :"
"meth:`loop.call_soon` ;"
#: library/asyncio-future.rst:273
#: library/asyncio-future.rst:274
msgid ""
"asyncio Future is not compatible with the :func:`concurrent.futures.wait` "
"and :func:`concurrent.futures.as_completed` functions."
msgstr ""
"les *Future asyncio* ne sont pas compatibles avec les fonctions :func:"
"`concurrent.futures.wait` et :func:`concurrent.futures.as_completed` ;"
#: library/asyncio-future.rst:277
#: library/asyncio-future.rst:278
msgid ""
":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :"
"func:`concurrent.futures.cancel` does not."
msgstr ""
":meth:`asyncio.Future.cancel` accepte un argument optionnel ``msg`` mais "
"pas :func:`concurrent.futures.cancel`."

Some files were not shown because too many files have changed in this diff Show More