Compare commits

...

203 Commits
3.9 ... 3.11

Author SHA1 Message Date
Christophe Nanteuil 26ccd93ef1 merge.py corrigé (#35)
'3.11'.find('.')

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#35
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-02-12 21:32:23 +00:00
Julien Palard c45606574a Make merge (#34)
Pour https://github.com/python/cpython/pull/101852

Reviewed-on: AFPy/python-docs-fr#34
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2023-02-12 21:11:06 +00:00
Julien Palard be3fe26412 merge.py 3.11 (#25)
C'est encore un `merge.py 3.11` sans intervention manuelle : j'essaye de tenir la 3.11 à jour à l'approche de la PyConFr.

Reviewed-on: AFPy/python-docs-fr#25
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2023-02-12 15:17:38 +00:00
Christophe Nanteuil 343aa3118d allow to specify any commit to merge.py (#33)
For debugging purpose.

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#33
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-02-12 10:36:18 +00:00
eviau 9e57ea00c8 Tentative : màj de library/os.po (#31)
En lien avec #28

Co-authored-by: eviau <info@eviau.net>
Co-authored-by: Julien Palard <julien@palard.fr>
Reviewed-on: AFPy/python-docs-fr#31
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: eviau <eviau@noreply.localhost>
Co-committed-by: eviau <eviau@noreply.localhost>
2023-02-09 11:27:27 +00:00
eviau f9d4f69f20 Petites suggestions pour que `make verifs` fonctionne de nouveau (#30)
Co-authored-by: eviau <info@eviau.net>
Reviewed-on: AFPy/python-docs-fr#30
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: eviau <eviau@noreply.localhost>
Co-committed-by: eviau <eviau@noreply.localhost>
2023-02-08 08:49:38 +00:00
Julien Palard 5df229eee6 Fix headers, and enforce them. (#29)
Reviewed-on: AFPy/python-docs-fr#29
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2023-02-07 22:52:58 +00:00
Christophe Nanteuil 6ac12519a1 fuzzies tutorial (#26)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#26
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-02-07 09:12:11 +00:00
eviau f6a45a8cb7 màj du lien vers le guide de contribution (#27)
Voici ma première suggestion suite au déménagement vers git.afpy.org !

Co-authored-by: eviau <info@eviau.net>
Reviewed-on: AFPy/python-docs-fr#27
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: eviau <eviau@noreply.localhost>
Co-committed-by: eviau <eviau@noreply.localhost>
2023-02-07 07:53:27 +00:00
Christophe Nanteuil 75f7e91fcb Amélioration du Makefile (#23)
- ajout du nettoyage de locales/$(LANGUAGE)/LC_MESSAGES/ dans la cible 'clean'
- variable supplémentaire pour préciser en ligne de commande la gestion des
  erreurs par Sphinx
- séparation dans l'appel au Makefile de cpython du paramètre JOBS pour qu'il
  soit pris en compte (en lien avec une PR vers cpython)
- suppression de la variable SERVE_PORT devenue inutile depuis le commit
  da21f1dbe0

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#23
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-02-04 07:26:16 +00:00
Christophe Nanteuil 1e0489fcee Howto/logging-cookbook (#24)
utilisation de l'apostrophe typographique.
compléments de traduction

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#24
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-02-04 07:25:07 +00:00
Julien Palard 35ea246d59 Make merge (#22)
Où je répare mes bêtise du précédent merge.

cf. AFPy/python-docs-fr#21 et l'analyse de @ChristopheNan :)

Reviewed-on: AFPy/python-docs-fr#22
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2023-01-23 21:54:21 +00:00
Julien Palard 26c991fc20 Make merge (#21)
J'ai juste exécuté `python merge.py 3.11`.

Reviewed-on: AFPy/python-docs-fr#21
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2023-01-15 21:42:07 +00:00
Christophe Nanteuil 423ff1c51d Pavé sur Enum (#19)
En parallèle sur cpython :
[replace last value by highest value for Flag auto](https://github.com/python/cpython/pull/100709)

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#19
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-01-15 21:24:39 +00:00
Christophe Nanteuil 061932d5b3 Fin de la traduction de howto/descriptor (#20)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#20
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-01-14 19:04:46 +00:00
Christophe Nanteuil 8d0da0421c Revue de dataclasses (#17)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#17
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-01-05 10:40:45 +00:00
Christophe Nanteuil c8b12122c8 fuzzys de bugs.po (#14)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#14
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-01-02 20:56:42 +00:00
Christophe Nanteuil 14b4b656b3 fuzzy de tutorial/venv (#18)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#18
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2023-01-02 20:55:20 +00:00
Christophe Nanteuil d517d9467f fuzzy du glossaire (#13)
et relecture.

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#13
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-12-27 20:20:05 +00:00
Christophe Nanteuil 16f5a57396 relecture de howto (#16)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#16
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-12-27 20:16:56 +00:00
Christophe Nanteuil 218619208a fuzzies de using (#15)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#15
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-12-15 23:19:35 +00:00
Christophe Nanteuil 26941a0cb1 Relecture et fuzzy de reference/datamodel.po (#9)
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#9
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-12-10 17:43:45 +00:00
Christophe Nanteuil 258387733a Traduction de base class en classe mère (#11)
Actuellement *base class* est traduit en *classe de base*. Je propose
d'utiliser *classe ancêtre*, les deux versions existant dans la littérature,
mais *de base* pouvant laisser penser qu'il s'agit de la classe la plus
loin dans l'héritage possible.

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#11
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-12-06 09:20:23 +00:00
alexisig 586728da11 Typo dans la description de total_ordering (#12)
Reviewed-on: AFPy/python-docs-fr#12
Co-authored-by: alexisig <alexis.athlani@gmail.com>
Co-committed-by: alexisig <alexis.athlani@gmail.com>
2022-11-22 11:32:37 +00:00
Julien Palard 6f8ad70e25 Add sphinx-lint and awk-based line length detector to make verifs. (#6)
Reviewed-on: AFPy/python-docs-fr#6
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2022-11-21 21:14:49 +00:00
Julien Palard 5d3f94ec82 FIX: docutils don't like it like that. (#10)
Closes #8

Reviewed-on: AFPy/python-docs-fr#10
Co-authored-by: Julien Palard <julien@palard.fr>
Co-committed-by: Julien Palard <julien@palard.fr>
2022-11-20 11:08:33 +00:00
jeanas b4dfab63c7 Mise à jour du CONTRIBUTING.rst (#3)
closes #2

Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>
Reviewed-on: AFPy/python-docs-fr#3
Co-authored-by: jeanas <jean@abou-samra.fr>
Co-committed-by: jeanas <jean@abou-samra.fr>
2022-11-18 14:45:21 +00:00
Christophe Nanteuil bb4000d922 poursuite des fuzzys de reference (#4)
- traitement des fuzzy
- traduction de *generator function* par *fonction génératrice*

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#4
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
2022-11-18 09:20:58 +00:00
Julien Palard 63e1402326
We don't have Github actions here. 2022-11-17 16:19:23 +01:00
Jules Lasne 3c444ac29b
Traduction de library/sys.po (#1529) 2022-11-17 15:22:15 +01:00
logik a05a34e89a
Traduction de library/inspect.po (#1494) 2022-11-17 15:20:28 +01:00
Jeff D edc109555c
Traduction de library/graphlib.po (#1664) 2022-11-17 10:22:33 +01:00
Christophe Nanteuil 5f7bd797dc
passage en 3.11 : fuzzies tutorial (#1920) 2022-11-16 23:23:29 +01:00
freallearn d6b4473472
library/xml.etree.elementtree.po (#1813)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
Closes https://github.com/python/python-docs-fr/issues/1811
2022-11-16 22:49:52 +01:00
Victor d9c2596f48
msvcrt 15/11 début (#1933) 2022-11-16 16:56:34 +01:00
Ezlo 1ee97ce209
Traduction partielle de using/configure.po (#1823) 2022-11-16 16:55:51 +01:00
Marco7507 cb4cb9892d
Fix #1932 (#1941) 2022-11-15 17:34:28 +01:00
J.Nexus cddbc3c368
Traduction de library/gettext.po (#1927) 2022-11-15 17:04:30 +01:00
Rylan a0f16dc601
Fix #1926 (#1930)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
2022-11-15 17:03:51 +01:00
Tom af017bfb00
Traduction de library/importlib.resources.abc.po (#1931)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
Co-authored-by: Jean Abou Samra <jean@abou-samra.fr>
2022-11-15 17:00:41 +01:00
edith 4c370b6844
Complétion de library/cmd.po (#1918) 2022-11-15 08:50:31 +01:00
Julien Palard 5086d574d5
sphinx-lint: Enable all tests (but line-too-long). (#1924) 2022-11-14 23:51:37 +01:00
Julien Palard 61327bb767
We're doing triple bacticks now? (#1923) 2022-11-14 23:17:16 +01:00
Julien Palard 50416a027c
Hello sphinx-lint. (#1922) 2022-11-14 16:08:57 +01:00
Christophe Nanteuil cc7066f94d
Passage en 3.11: fuzzy dans reference (#1921) 2022-11-14 15:17:15 +01:00
edith da21f1dbe0
màj: utilisation de htmlserve au lieu de serve dans le Makefile (#1919) 2022-11-13 15:29:30 +01:00
Vincent Poulailleau 648077d02d
Update branch in CONTRIBUTING.rst link (#1916) 2022-11-01 09:37:48 +01:00
DERICK TEMFACK db9ba5e00b
ftplib (#1911) 2022-10-27 22:37:39 +02:00
Julien Palard 79d5e318f3
Fix issues found by sphinx-lint 2022-10-27 22:37:27 +02:00
Julien Palard a4d6eb4aea
Drop powrap from make verifs. (#1909)
Closes #1841
2022-10-27 22:37:08 +02:00
Julien Palard 43c0e9d57c
FIX forward porting issues introduced between 3.10 and 3.11. 2022-09-14 18:11:50 +02:00
Philippe Galvan baf812e8eb
Complément de traduction library/random.po (#1906)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-09-13 11:20:01 +02:00
Nicolas Haller a21bd96145
Traduction de library/asyncio-future.po (#1907)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-09-13 11:19:00 +02:00
Jean Abou-Samra 69651bfabf
Quelques fuzzies et mini-trads (#1902)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-09-13 11:18:21 +02:00
Julien Palard cfb96157b8
FIX: Turtle module constant should not be translated. (#1901)
* FIX: Turtle module constant should not be translated.

* Oops default roles.
2022-09-13 11:14:14 +02:00
Jean Abou-Samra bf0ee96f7b
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-09-13 11:13:49 +02:00
Nicolas Haller 201bd365c2
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-09-13 11:13:26 +02:00
Jean-Christophe Helary 75dc1cbfc6
petites fautes (#1894) 2022-09-13 11:12:45 +02:00
Nils Van Zuijlen ab293c0c5a
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-09-13 11:12:33 +02:00
Christophe Nanteuil a268535b8b
Traduction de library/argparse.po (#1892)
* fuzzies
* coquille pour le paragraphe concernant le paramètre type
2022-09-13 11:11:38 +02:00
Jules Lasne 51ba3affba
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-09-13 11:10:49 +02:00
Mathieu Dupuy 76302b2f4b
faq: 2 fuzzies (#1889)
* faq: 2 fuzzies

Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-09-13 11:09:09 +02:00
Antoine 3de521f4ae
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-09-13 11:08:09 +02:00
Jean Abou-Samra aa14b264b2
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-09-13 11:08:00 +02:00
Jean Abou-Samra 5e146fa117
Quelques fuzzies (#1873)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-09-13 11:07:45 +02:00
Mathieu Dupuy ef2ccc4fcd
using/windows.po (#1886)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
2022-09-13 10:59:45 +02:00
Mathieu Dupuy ee440330a2
tutorial: quelques fuzzies (#1888)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-09-13 10:55:10 +02:00
Melcore 54e03cb1a4
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:54:34 +02:00
Mathieu Dupuy 00f5b923dd
using/mac.po: 1 fuzzy (#1887) 2022-05-24 18:54:30 +02:00
PhilippeGalvan a3eb19c3ca
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-24 18:54:01 +02:00
Julien Palard e4166c45dc
Mark partially translated entry as fuzzy. 2022-05-23 02:10:42 +02:00
Julien Palard a5875af279
Mark partially translated entry as fuzzy. 2022-05-23 01:55:17 +02:00
Jean Abou Samra c4b77fbe1e
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:34:27 +02:00
Mathieu Dupuy 23951780c2
library/json.po: fuzzies (#1878) 2022-05-23 00:54:52 +02:00
Mathieu Dupuy 5595763302
whatsnew/3.10.po: fuzzies (#1875)
Co-authored-by: Vincent Poulailleau <vpoulailleau@gmail.com>
2022-05-23 00:54:51 +02:00
Nicolas Haller a5c7f01b2c
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-23 00:54:51 +02:00
Mathieu Dupuy 01ebc4723a
library/csv.po: some fuzzies + new blocks (#1877)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-05-23 00:54:51 +02:00
Loc Cosnier 19a2eb8927
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-23 00:54:51 +02:00
Mathieu Dupuy d96fcc2b98
library/errors.po: 1 fuzzy (#1876) 2022-05-23 00:54:50 +02:00
Loc Cosnier 3b6ee8fedd
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-23 00:54:47 +02:00
Vincent Poulailleau 41073d4143
auto fill reStructuredText-only strings 2022-05-23 00:54:18 +02:00
Mathieu Dupuy a716bffb16
howto: fuzzies (#1869) 2022-05-23 00:54:18 +02:00
Mathieu Dupuy bed19e4e18
library/path.po: entrées manquantes (#1868)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-23 00:54:18 +02:00
Mathieu Dupuy dd8f1bbc42
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-23 00:54:17 +02:00
Thierry Pellé 025f8ba360
Traduction de library/html.parser.po (#1864)
Co-Authored-By: Jean Abou Samra <jean@abou-samra.fr>
2022-05-23 00:54:17 +02:00
Christophe Nanteuil d82ad414b3
Reprise des fuzzies. RAS (#1865) 2022-05-23 00:54:17 +02:00
Nicolas Haller b4b4af37ff
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-23 00:54:17 +02:00
edith 06b9fb928c
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-23 00:54:16 +02:00
Christophe Nanteuil 60a57ca1ef
Traduction de howto/logging-cookbook (#1850)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-05-23 00:54:16 +02:00
Mathieu Dupuy 096da53573
unfuzzy a string (#1858)
Le changement upstream est une correction de grammaire : 63298930fb
2022-05-23 00:54:16 +02:00
Thierry Pellé 165f63cd8c
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-05-23 00:54:16 +02:00
freallearn 466a2ba4d8
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-05-23 00:54:15 +02:00
Mathieu Dupuy 7b6e288f54
unfuzz an entry (#1856)
le changement en anglais upstream n'affecte pas la traduction française (python/cpython@9a0d941df4)
2022-05-23 00:54:15 +02:00
Christophe Nanteuil d6d620f124
fuzzys et padpo (#1855) 2022-05-23 00:54:15 +02:00
Jean-Michel Laprise f8e21a900e
Vérifications de fuzzy et corrections de style sur tutorial/controlflow.po (#1849) 2022-05-23 00:54:15 +02:00
Yannick Gingras b1efa2165a
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-05-23 00:54:14 +02:00
Emmanuel Leblond aff3fed5ba
Correction de contresens de traduction de os.utime (#1851) 2022-05-23 00:54:14 +02:00
Jean-Michel Laprise d6cec5f9fb
Mise à jour de copyright.po (#1843) 2022-05-23 00:54:14 +02:00
Thierry Pellé d47c245a5f
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-05-23 00:54:14 +02:00
Julien Palard ba66481997
Make merge 2022-05-23 00:54:07 +02:00
Jean Abou Samra e4c6328b99
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-05-23 00:07:55 +02:00
Yannick Gingras bce308dc9b
Traduction partielle de whatsnew/3.11.po (#1852)
* Premier jet sur la traduction du What's New de 3.11

* Seconde partie de la traduction du What's New de 3.11

* 3e jet pour la traduction du What's New de 3.11

* Intégration des commentaires des relecteurs

Co-authored-by: Jean-Michel Laprise <jmichel.dev@gmail.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* rewrap de whatsnew/3.11.po

Co-authored-by: Jean-Michel Laprise <jmichel.dev@gmail.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-04-26 10:43:01 +02:00
Christophe Nanteuil ccc28cfdec Mise à jour du guide de contribution pour coller à 3.11 2022-04-12 18:17:06 +02:00
Yannick Gingras aa7c25fa84
traduction finale de library/atexit.po (#1832)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-04-05 11:00:00 +02:00
Yannick Gingras 2b462d76ca
traduction finale de library/tarfile.po (#1830)
Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-04-05 10:59:23 +02:00
Julien Palard 5609d64509
TIL about TELUGU, don't know what to do with it yet. 2022-04-05 10:46:39 +02:00
Julien Palard 5e2a64db9c
Wrapping comments. 2022-03-24 07:12:27 +01:00
Julien Palard 09c0e53be3
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-24 07:10:43 +01:00
Julien Palard fecaae68a8
Make merge 2022-03-23 18:44:13 +01:00
Jean Abou-Samra 3db1d961d6
Correction d'erreurs de syntaxe reST (#1824) 2022-03-06 12:13:54 +01:00
Jules Lasne 3090428412
Progress on whatsnew/3.9.po and whatsnew/3.10.po (#1822)
Automerge of PR #1822 by @Seluj78

Co-authored-by: Jean Abou-Samra <jean@abou-samra.fr>
2022-02-24 10:51:20 +01:00
Jules Lasne 3760a022c7
Fixed fuzzies in installing/index.po (#1821)
Automerge of PR #1821 by @Seluj78
2022-02-23 19:02:30 +01:00
Mathieu Dupuy dd4eb13f58
corrige formattage cassé (#1820) 2022-02-22 20:31:07 +01:00
Matthieu Marrast 3c93dc8c39
Fix typo dans library/functions.po (#1819)
Automerge of PR #1819 by @matthieumarrast

Correction d'une typo dans `functions.po`
2022-02-18 13:18:05 +01:00
Ezlo db25581063
library/enum.po (#1809)
* library/enum.po

* Corrections de library/enum.po

* powrap library/enum.po

* [padpo] Corrections erreurs sur library/enum.po

* Update library/enum.po

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

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2022-02-09 23:13:12 +01:00
Christophe Nanteuil d3dc3685b4
Possibilité de spécifier le port sur lequel servir la doc produite (#1810) 2022-02-06 15:45:57 +01:00
Fipaddict 3287e870ff
Traduction tutorial/introduction.po (#1807) 2022-02-04 09:51:42 +01:00
Julien Palard 04bb5b82fd
FIX typo reported by Guest40 on IRC. (#1806)
Automerge of PR #1806 by @JulienPalard

Merci Guest40 de meteo.fr, bien vu !
2022-01-27 22:52:47 +01:00
Julien Palard 2479b6ba06
Make merge (#1799) 2021-12-31 11:41:52 +01:00
HS-157 2ea7cf8b10
Vérification des fuzzy pour library/pathlib.po (#1786) 2021-12-24 15:17:41 +01:00
Yannick Gingras 29678c81ce
Traduction finale du What's New de 3.10 (#1785)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-12-20 17:34:09 +01:00
Antoine 852064213f
library/logging (#1796)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
2021-12-20 12:40:24 +01:00
zed 1ca11cf0f0
Fuzzy et warnings - library/functions (#1780) 2021-12-18 14:58:30 +01:00
Fipaddict ef607be180
Traduction faq/library.po (#1789)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-12-18 14:42:14 +01:00
Julien Palard 3ecf3058c6
FIX: Found one while reading, grepped for the others. (#1793)
Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>
2021-12-17 07:53:03 +01:00
Antoine 78b1ab4c42
Fuzzys et corrections mineures (#1795) 2021-12-17 07:43:14 +01:00
Sébastien Helleu 6f13a7a5d3
Correction de typos (#1791)
* Correction de typos

* Correction de "multiplateformes"
2021-12-16 19:51:49 +01:00
Antoine 05446b1df2
library/logging.po (#1790)
* permier jet

* ok

* pospell

* Suggestions de christopheNan.

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

* Indentation.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-12-15 12:01:58 +01:00
Antoine 5f1dd86c9a
Traduction de library/ctypes (#1760)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
2021-12-01 22:17:18 +01:00
Christophe Nanteuil 9882154d71
Traduction de 'to sort' (#1783) 2021-12-01 19:20:34 +01:00
Julien Palard 76b5c8ea62
Make merge (#1782)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-11-29 14:13:01 +01:00
Yannick Gingras 99ffbb6746
Seconde partie de whatsnew/3.10 (#1777)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-11-27 17:48:35 +01:00
Fipaddict 0006363477
Prise en compte de Fuzzy et corrections grammaticales (#1773)
Co-authored-by: Julien Palard <julien@palard.fr>
2021-11-25 13:50:48 +01:00
zed 88e4e6443c
Traduction - library/audioop (#1762) 2021-11-23 09:39:06 +01:00
PhilippeGalvan 6676a40140
Update library/shelve.po translation (#1779)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-11-23 00:23:17 +01:00
Yannick Gingras 09105403eb
Première partie de whatsnew/3.10.po (#1761)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: PhilippeGalvan <git.philippeG@outlook.com>
2021-11-22 07:22:52 +01:00
Antoine 53f4e7bfad
M.-à-j 3.10 ; corrections des liens et des tags. (#1756) 2021-11-21 23:05:06 +01:00
Jean-Abou-Samra d8e39bf9cd
Suppression de .tx/ (#1775)
Autrefois, m'a-t-on dit, la traduction était synchronisée avec
Transifex. Ce n'est plus fait de nos jours.
2021-11-09 13:46:09 +01:00
Antoine 28b0c58e60
Fuzzies et traductions mineures de library/multiprocessing* (#1755)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-11-09 08:48:10 +01:00
Jean-Abou-Samra 638f8e64a2
Traduction de library/zipimport.po (#1771) 2021-11-09 08:39:48 +01:00
Jean-Abou-Samra e397ed58ff
Nouvelle mise à jour de EXCLUDED (#1769) 2021-11-07 17:24:35 +01:00
Jean-Abou-Samra 7f50edf589
Des fuzzies, toujours des fuzzies… (#1768) 2021-11-07 17:02:33 +01:00
Julien Palard 4955f79c65
Make merge (#1766)
* Make merge

* Avoid a newline at each run of merge.py.
2021-11-05 23:32:47 +01:00
Julien Palard ff88ce44c3
Make wrap to actually wrap, not just check. (#1765) 2021-11-04 18:14:17 +01:00
Fipaddict 51120f11d3
Fuzzies et traductions mineures sur glossary.po (#1758)
* Fuzzies et traductions mineures sur glossary.po

* Update glossary.po

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>

* Update glossary.po

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>

* Update glossary.po

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>

* Update glossary.po

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>

* Revert "Update glossary.po"

This reverts commit 73f0227e77c3f6062411d15b061946c5f1d7fa47.

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>
2021-11-01 21:56:05 +01:00
Christophe Nanteuil e5e5006aec
traduction de reference/compound_stmts.po (#1750)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-10-31 07:37:32 +01:00
Antoine 9aeda18cd3
Relecture de tutorial/datastructures (#1753)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-30 14:32:20 +02:00
Nicolas PAYART eac1fed73f
Fix link to the AFPY website's forums (#1752)
Automerge of PR #1752 by @koleo

Add missing "g" in "discuss.afpy.org" link in the README
2021-10-30 10:06:59 +02:00
lythari 8acf233c16
traduction 100% de library/dataclasses.po (#1749) 2021-10-29 15:11:03 +02:00
Jean-Abou-Samra 5084a5c86a
Traduction de library/__main__.po (#1751)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-29 08:37:05 +02:00
lythari fe68872fc6
Quelques traductions de c-api/buffer (#1745) 2021-10-27 21:36:21 +02:00
Benoit de Chezelles 5e3fd6d73a
Premiere traduction de bew, sur whatsnew/3.9.po (#1747)
Automerge of PR #1747 by @bew
2021-10-27 20:57:42 +02:00
Christophe Nanteuil 893edefecc
traduction faq/programming.po (#1738) 2021-10-27 19:49:12 +02:00
lythari 911912715b
Traduction de c-api/bool Fuzzy (première traduction) (#1741) 2021-10-27 19:40:30 +02:00
Christophe Nanteuil 63209615b6
Pattern Matching (#1710)
J'ai fait plusieurs choix qui diffèrent du style de traduction habituel.
Concernant le vocabulaire :

pattern matching → filtrage par motif (conforme wikipedia)
guard → une garde (conforme wikipedia)
soft keyword → mot-clé ad-hoc (mon choix)
mapping → tableau associatif pour un premier jet. Dans le glossaire, nous avons
choisi *tableau de correspondances*.

Ensuite dans les descriptions, j'ai traduit *match* ou *pattern* par filtre.

Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
2021-10-27 19:39:53 +02:00
Jean-Abou-Samra d5c80d44f9
Traduction de reference/datamodel.po (#1723)
* Traduction de reference/datamodel.po

* Relecture de Zepmanbc

* Suggestion de Christophe Nanteuil

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

* Correction des backticks

* Formulation qui plaît à Sphinx

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

* powrap reference/datamodel.po

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-10-25 14:05:33 +02:00
Jean-Abou-Samra 8fdedae000
Traduction de using/cmdline.po (#1735)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-10-23 20:29:06 +02:00
Jean-Abou-Samra 7ee9f0c378
Traduction de using/unix.po (#1736)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-23 15:33:32 +02:00
Jean-Abou-Samra e024e948d3
Traduction de library/bisect.po (#1721)
Automerge of PR #1721 by @Jean-Abou-Samra
#1720

Closes #1720.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-22 15:36:56 +02:00
Jean-Abou-Samra cb43975d96
Traduction de library/ensurepip.po (#1719) 2021-10-22 15:36:22 +02:00
Jean-Abou-Samra 78a89988a1
Traduction de faq/programming.rst (#1717)
Co-authored-by: Julien Palard <julien@palard.fr>
2021-10-22 15:34:35 +02:00
Zepmanbc cce81d7f7b
Traduction de howto/annotations.po (#1709)
Co-authored-by: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-22 15:27:22 +02:00
Jean-Abou-Samra b48ce306a5
Traduction de library/keyword.po (#1737) 2021-10-22 14:58:06 +02:00
Julien Palard 2afee90322
Mdk/merge (#1734)
* Make merge

* Move merge to its own script.

* No longer needed.

* Use git ls-files.
2021-10-22 14:56:00 +02:00
Jean-Abou-Samra f2d50c8810
Mise à jour de EXCLUDED (#1733)
Puisque CONTRIBUTING.rst recommande de ne pas traduire distutils/ et
installing/, ce commit les ajoute à EXCLUDED pour que Potodo les
ignore, ainsi que quelques modules marqués « .. deprecated:: »
upstream.
2021-10-21 14:53:28 +02:00
Jean-Abou-Samra a5aa864de7
Traduction de reference/expressions.po (#1725) 2021-10-20 15:44:54 +02:00
Jean-Abou-Samra 5f63c38fc1
Suppression de build/ dans make clean (#1730)
Le but de make clean est de repartir à zéro, donc je propose de le
faire vraiment en supprimant, en plus des fichiers .mo et des fichiers
qui marquent les dépendances pour pospell, tout le dossier build/ avec
la documentation générée par Sphinx. C'est utile lorsque Sphinx oublie
de mettre à jour certaines choses, ou lorsque l'on se demande si c'est
le cas.
2021-10-20 15:32:30 +02:00
Jean-Abou-Samra c7e1088a95
Fuzzies dans faq/ et distributing/ (#1729) 2021-10-20 00:04:51 +02:00
Jean-Abou-Samra 9b64cb5f8f
Traduction de tutorial/controlflow.po (#1715)
Automerge of PR #1715 by @Jean-Abou-Samra
#1714

J'ai essayé de suivre les termes proposés dans #1710.

Closes #1714.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-20 00:01:45 +02:00
Jean-Abou-Samra 30507a7466
Traduction de library/tempfile.po (#1728)
Automerge of PR #1728 by @Jean-Abou-Samra
#1727

Closes #1727.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-10-19 23:52:28 +02:00
Jean-Abou-Samra bc8acb3cc6
Traduction de sphinx.po (#1713) 2021-10-17 10:01:54 +02:00
zed 7bc5f3bb3f
lib/doctest.po : de zéro à 72% (#1663)
(cherry picked from commit cfd51475b1)
2021-10-16 11:30:09 +02:00
Julien Palard ec12a7bae6
Translating extending/newtypes_tutorial.po (#1605)
Automerge of PR #1605 by @JulienPalard

Je pense que je vais m'arrêter là pour le moment sur ce fichier, si j'attaque le reste ce sera pour une autre péèrre.
2021-09-25 16:12:09 +02:00
Julien Palard 3392ebaa93
Use our own cpython clone. (#1675) 2021-09-25 16:09:15 +02:00
Julien Palard 5fa489367e
Some fuzzy in using/. (#1696)
Automerge of PR #1696 by @JulienPalard
2021-09-25 16:07:46 +02:00
Julien Palard 70de7f1586
Fuzzies in tutorial/whatsnow.po (#1697)
Automerge of PR #1697 by @JulienPalard

Ils ont juste mis Web en minuscule upstream.
2021-09-25 15:56:52 +02:00
Julien Palard 9da5a8db7b
Fuzzies in tutorial/interpreter.po (#1698)
Automerge of PR #1698 by @JulienPalard

(je fais une PR par fichier pour qu'ils soit marqués comme reservés dans potodo)
2021-09-25 15:56:13 +02:00
Julien Palard 7b46ea0906
Fuzzies in tutorial/index.po (#1699)
Automerge of PR #1699 by @JulienPalard

Juste le "Web" passé en minuscule"
2021-09-25 15:55:28 +02:00
Julien Palard 83caaf6a2c
Fuzzies in tutorial/floatingpoint.po (#1700)
Automerge of PR #1700 by @JulienPalard
2021-09-25 15:32:10 +02:00
Julien Palard e3abf1a9d6
Fuzzies in tutorial/errors.po (#1701)
Automerge of PR #1701 by @JulienPalard

Beaucoup de fuzzies dans ce fichier viennent du fait qu'ils ont mis en italique beaucoup de "clause machin" (try, except, else, finally).

Mais en français on les avait déjà mis en police à pas fixe, donc je n'y ai pas touché, sauf à un endroit ou c'était en italique, alors j'ai mis en police a pas fix pour garder la cohérence.
2021-09-25 15:31:22 +02:00
Julien Palard 1067c77e2e
Fuzzies in tutorial/appetite.po (#1702)
Automerge of PR #1702 by @JulienPalard
2021-09-25 15:30:15 +02:00
Yannick Gingras d6d81ddce2
Traduction de whatsnew/3.9.po (#1652) 2021-09-25 10:57:43 +02:00
Julien Palard 17d5f9cebe
Make merge (#1695)
* Make merge

* FIX: spelling for pospell.

* Uniformisation des entêtes po.
2021-09-24 10:20:01 +02:00
Jean-Abou-Samra 0086ed1f76
Mise à jour de BRANCH dans le Makefile (#1693)
Sans cela, make spell vérifie bien plus de fichiers que nécessaire car
un bon nombre de modifications ont été effectuées entre 3.9 et une
branche courante fondée sur 3.10.
2021-09-23 16:16:02 +02:00
Julien Palard de347cca22
Avoid having this sha1 at two different places. (#1688) 2021-09-22 09:59:09 +02:00
Jean-Abou-Samra 3266bae14e
Traduction de library/dataclasses.po (#1687)
* Traduction de library/dataclasses.po

* Suggestions de Christophe Nanteuil

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

* powrap library/dataclasses.po

* Petite clarification

* Correction d'une coquille

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-09-22 09:57:31 +02:00
Jean-Abou-Samra 073a3a277e
Traduction de library/fileinput.po (#1690)
Automerge of PR #1690 by @Jean-Abou-Samra
#1689

Closes #1689

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-09-20 14:32:23 +02:00
Jean-Abou-Samra 6254b89f8c
Traduction de library/ast.po (#1691)
Automerge of PR #1691 by @Jean-Abou-Samra
#1167

Closes #1167

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-09-16 23:10:35 +02:00
Christophe Nanteuil 5a1fdec404
espaces insécables entre guillemets (#1686) 2021-09-16 12:45:56 +02:00
Jean-Abou-Samra c2f8b3ad64
Suppression de make progress (#1692)
make progress était incohérent avec make todo car il manquait
l'exclusion des fichiers qui ne sont pas à traduire.  Comme potodo fait
maintenant le même boulot et plus (la progression est affichée depuis la
version 0.18.0), make progress est devenu inutile.

Closes #1685
2021-09-16 12:33:51 +02:00
Jean-Abou-Samra e9937880c7
Fuzzies un peu partout (#1678)
* Fuzzies un peu partout

Essentiellement pour nettoyer la liste 'make todo'. La plupart des
corrections sont triviales (lorsque upstream a reçu une correction de
faute de frappe). Il y a quelques chaînes nouvellement traduites.

* Relecture de Julien Palard
2021-09-08 12:07:55 +02:00
Jean-Abou-Samra 5439375dd6
Amélioration de CONTRIBUTING.rst sur Poutils (#1682)
Mentionne le paquet Poutils qui permet d'installer tous les outils à la
fois, et ajoute une note sur l'installation du bon dictionnaire Hunspell
sous Debian.

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Julien Palard <julien@palard.fr>
2021-09-08 11:49:26 +02:00
Julien Palard 248e695415
Fix case in terms. (#1684) 2021-09-07 14:05:26 +02:00
Jean-Abou-Samra c263bb411a
Traduction de library/pickle.po (#1676)
Closes #1620.

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

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-09-07 09:54:56 +02:00
Jean-Abou-Samra 85c99a0703
Traduction de library/gc.po (#1677)
(De 0% à 92%.)

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

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-09-07 09:48:43 +02:00
Jean-Abou-Samra 28f90d0bbd
Pas de -W explicite pour Sphinx (#1680)
CPython ajoute déjà -W dans son Makefile. Depuis le commit
f98c1623ec90508937afc1b58556e38214d70892 ("Doc: -W flag for sphinx-build
can be disabled" par Julien Palard), c'est même configurable à l'aide de
la variable SPHINXERRORHANDLING.

Avec le présent commit, cette variable
fonctionne aussi dans notre traduction, ce qui facilite la traduction
car cela permet d'obtenir tous les avertissements en une fois avec
« make SPHINXERRORHANDLING= » ou bien « make SPHINXERRORHANDLING="-W
--keep-going" », au lieu de voir un nouvel avertissement arrêter la
compilation à chaque fois. Ce serait bien d'avoir --keep-going par
défaut, mais je ne l'ajoute pas ici car il serait sûrement encore mieux
de le mettre dans CPython directement.
2021-09-06 11:11:48 +02:00
Julien Palard f8399b0cdd
Traduction de library/json.po (#1674)
Automerge of PR #1674 by @JulienPalard

Remplace https://github.com/python/python-docs-fr/pull/1596/ (upstream n'a plus le repo).

Co-authored-by: Julien Palard <julien@palard.fr>
2021-08-05 13:32:47 +02:00
Antoine e0943ec2df
Multiprocessing (#1671)
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2021-07-24 15:46:19 +02:00
Antoine 58210fa611
MàJ LISEZMOI à 3.10 (#1672) 2021-07-18 17:31:35 +02:00
Christophe Nanteuil 16fd567886
relecture de faq/design.po et fuzzy (#1594)
* relecture de faq/design.po et fuzzy

* coquilles

* relecture de faq/design.po et fuzzy

* coquilles

* Apply suggestions from code review

Début de prise en compte des remarques de @awecx.

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>
2021-07-17 16:40:14 +02:00
Louis-Justin TALLOT e49a4fcec1
Better wording in library/string.po (#1669)
Automerge of PR #1669 by @LouisJustinTALLOT
2021-07-14 11:32:53 +02:00
Louis-Justin TALLOT 092523e21b
Typo fix in library/multiprocessing (#1668) 2021-06-29 15:25:55 +02:00
Julien Palard 36c751e00e
make merge for 3.10. 2021-06-22 10:05:23 +02:00
435 changed files with 93541 additions and 56638 deletions

2
.gitattributes vendored
View File

@ -7,5 +7,5 @@
# chmod a+x ~/.local/bin/podiff
# git config diff.podiff.textconv podiff
*.po diff=podiff
*.po diff=podiff merge=po3way
*.pot diff=podiff

1
.github/FUNDING.yml vendored
View File

@ -1 +0,0 @@
liberapay: python-docs-fr

View File

@ -1,12 +0,0 @@
---
name: Réservation
about: Juste réserver un fichier po (je veux être le seul à travailler dessus).
title: Je travaille sur DOSSIER/FICHIER.po
labels: reservation
assignees: ''
---
<!---
Attention, une réservation n'est effective qu'un mois, renouvelez-la si nécessaire en commentant dessus.
-->

View File

@ -1,15 +0,0 @@
{
"problemMatcher": [
{
"owner": "pospell",
"pattern": [
{
"regexp": "^(.*):(\\d+):(.*)$",
"file": 1,
"line": 2,
"message": 3
}
]
}
]
}

26
.github/stale.yml vendored
View File

@ -1,26 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 14
# Issues with these labels will never be considered stale
exemptLabels:
- meta
- on hold
- EASY
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Cette issue/pull request a été automatiquement marquée comme innactive car elle n'a pas eu d'activité récente.
Elle sera fermée si il ne se passe rien dans les 14 jours qui viennent. Merci pour votre contribution
This issue/pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: true
# Comment to post when removing the stale label.
unmarkComment: >
Cette issue n'est plus innactive !
This issue isn't stale anymore!

View File

@ -1,94 +0,0 @@
---
name: Tests
on:
push:
branches:
- '*.*'
pull_request:
branches:
- '*.*'
jobs:
checks:
strategy:
matrix:
tool:
- 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'
- name: Grammaire
package: padpo
command: 'padpo -i $CHANGED_PO_FILES 2>&1 | grep -v -Ff padpo.ignore'
name: ${{ matrix.tool.name }} (${{ matrix.tool.package }})
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Register problem matchers
run: echo "::add-matcher::.github/problem-matchers/pospell.json"
- uses: lots0logs/gh-action-get-changed-files@2.1.4
id: changed_files
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-python@v2
with:
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 }}
- name: Run ${{ matrix.tool.package }}
env:
ADDED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.added), ' ') }}
MODIFIED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.modified), ' ') }}
run: |
CHANGED_PO_FILES=$(printf "%s %s\n" "$ADDED_FILES" "$MODIFIED_FILES" | tr ' ' '\n' | grep '.po$'; true)
if [ -n "$CHANGED_PO_FILES" ]
then
echo "Running on:" $CHANGED_PO_FILES
${{ matrix.tool.command }}
else
echo "No changed po files, nothing to check."
fi
sphinx:
name: 'Génération de la doc (sphinx)'
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: '~/cpython/'
key: '1'
- uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Clone cpython
run: |
if [ ! -d ~/cpython ]; then
git clone https://github.com/python/cpython ~/cpython/
else
git -C ~/cpython fetch
fi
- name: Prepare build hierarchy
run: |
mkdir -p ~/locales/fr/LC_MESSAGES/
cp -uv --parents *.po */*.po ~/locales/fr/LC_MESSAGES/
git -C ~/cpython checkout 895591c1f0bdec5ad357fe6a5fd0875990061357
- 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 venv
- name: sphinx-build
run: make -C $HOME/cpython/Doc SPHINXOPTS="-qW -j4 -D locale_dirs=$HOME/locales -D language=fr -D gettext_compact=0" autobuild-dev-html

2331
.tx/config

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,16 @@
Maintenance
-----------
Les commandes suivantes doivent être exécutées à partir de la racine d'un clone
de ``python-docs-fr`` et certaines s'attendent à trouver un clone de CPython
à jour à proximité :
.. code-block:: bash
~/
├── python-docs-fr/
└── cpython/
Pour cloner CPython, vous pouvez utiliser :
.. code-block:: bash
git clone --depth 1 --no-single-branch https://github.com/python/cpython.git
Ceci évite de télécharger tout l'historique (inutile pour générer la
documentation) mais récupère néanmoins toutes les branches.
.. code-block:: bash
make merge
Dans certains cas on a besoin de propager des traductions d'une branche
à l'autre :
- d'une ancienne branche vers une nouvelle branche : lors du passage
d'une version à l'autre de CPython, lorsque quelqu'un a une PR sur une
ancienne version (*forward porting*) ;
- d'une nouvelle branche vers des anciennes branches : pour propager
de temps en temps le travail sur d'anciennes versions (rétroportage
ou *backporting*).
Pour forward-porter un ou plusieurs commits, il vaut mieux utiliser ``git
cherry-pick -x LE_SHA``, ça garde l'auteur, le sha1 d'origine, et
toutes les modifications.
@ -43,9 +18,9 @@ toutes les modifications.
Pour rétroporter « en gros » on utilise ``pomerge``\ : on le fait lire
sur une branche, puis écrire sur une autre, par exemple pour copier de
la 3.8 à la 3.7 :
.. code-block:: bash
git fetch
git checkout 3.8
git reset --hard upstream/3.8
@ -56,10 +31,10 @@ la 3.8 à la 3.7 :
git add --patch
git commit --message="Backporting from 3.8"
git push --set-upstream origin HEAD
Notes :
- j'utilise ``git fetch`` au début pour avoir *upstream/3.7* et
*upstream/3.8* à jour localement, ainsi je peux travailler sans
toucher au réseau jusqu'au ``git push``, mais chacun fait comme il
@ -84,4 +59,3 @@ Notes :
en général, je n'ajoute pas les différences d'ordre dans les entêtes,
mais un ``git add --update`` irait très bien ;
- attention au fichier *dict* auquel il peut manquer des lignes.

View File

@ -1,80 +1,205 @@
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 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.
Étape par étape :
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
# Clonez votre fork Github avec `git` en utilisant ssh
git clone git@github.com:VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git
cat <<EOF > ~/.local/bin/podiff
#!/bin/sh
grep -v '^#:' "\$1"
EOF
# ou bien avec HTTPS
git clone https://github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git
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.
.. _cloner:
Première étape : créer et peupler son dépôt
===========================================
Si ce n'est pas déjà fait, créez un compte sur `le serveur Git de
l'AFPy <https://git.afpy.org/>`_. Puis, allez sur le dépôt
`python-docs-fr <https://git.afpy.org/AFPy/python-docs-fr>`_ et
cliquez sur le bouton « Bifurcation » en haut à droite. Vous créez
ainsi sur Gitea une copie privée du projet où vous avez le droit de
faire des modifications.
À ce stade, il est recommandé, bien que facultatif, de vous créer une
clé SSH si vous n'en avez pas encore, et de l'ajouter à votre compte
Gitea. Pour générer la clé, consultez `le guide de GitLab
<https://docs.gitlab.com/ee/user/ssh.html>`_ ou `celui de GitHub
<https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh>`_.
Pour l'ajouter à votre compte Gitea, il suffit d'aller dans le menu de
votre compte en haut à droite et de cliquer sur « Configuration »,
puis d'aller dans l'onglet « Clés SSH / GPG », et de copier la clé
SSH.
Si vous le préférez, vous pouvez également vous passer de cette
configuration et utiliser le HTTPS à la place du SSH. Néanmoins,
sachez que vous devrez taper votre nom d'utilisateur et votre mot de
passe Gitea à chaque fois que vous ouvrez ou modifiez une
contribution.
Enfin, faites une copie locale du dépôt sur votre ordinateur afin de
pouvoir éditer les fichiers, avec ces commandes :
.. code-block:: bash
# Clonez votre copie sur Gitea avec `git` en utilisant SSH :
git clone git@git.afpy.org:VOTRE_NOM_DE_COMPTE_GITEA/python-docs-fr.git
# ... ou bien avec HTTPS :
git clone https://git.afpy.org/VOTRE_NOM_DE_COMPTE_GITEA/python-docs-fr.git
# Allez dans le répertoire cloné
cd python-docs-fr/
# Ajoutez le dépôt officiel (nommé upstream),
# ceci permet à *git* de savoir quoi et où est *upstream*
git remote add upstream https://github.com/python/python-docs-fr.git
# ceci permet à `git` de savoir quoi et où est *upstream*
git remote add upstream https://git.afpy.org/AFPy/python-docs-fr.git
*fork* personnel sur une autre forge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Deuxième étape : choisir et réserver le fichier sur lequel travailler
=====================================================================
Si vous n'avez pas de compte Github, il est possible *fork* ce dépôt sur 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.
Note liminaire
--------------
.. code-block:: bash
Il est vivement conseillé de ne pas travailler sur fichiers des
répertoires *c-api/*, *whatsnew/*, *distutils/* et *install/* :
# Clonez en HTTPS le dépôt
git clone https://github.com/python/python-docs-fr
- *c-api/* car c'est une partie très technique ;
# Allez dans le répertoire cloné
cd python-docs-fr/
- *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 ;
# Renommez *origin* en *upstream* pour avoir une référence vers le dépôt officiel
# Il permettra de récupérer les nouveaux commits
git remote rename origin upstream
- *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.
# Rajoutez le *remote* de votre forge (en HTTPS ou SSH)
git remote add origin <url>
Trouver un fichier sur lequel travailler
----------------------------------------
# Envoyez le dépôt sur votre forge et définir par défaut
git push -u origin
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).
Réservation d'un fichier
~~~~~~~~~~~~~~~~~~~~~~~~
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.
*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
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.
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é.
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 +207,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,34 +230,37 @@ 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.9 ». 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.11 ». On met donc à jour notre version locale.
.. code-block:: bash
git fetch upstream
On crée ensuite la branche, en la basant sur « upstream/3.9 », fraîchement récupérée.
On crée ensuite la branche, en la basant sur « upstream/3.11 », fraîchement récupérée.
Il est pratique de nommer cette branche en fonction du
fichier sur lequel on travaille. Par exemple, si vous travaillez sur
« library/sys.po », vous pouvez nommer votre branche « library-sys ».
.. code-block:: bash
git checkout -b library-sys upstream/3.9
git checkout -b library-sys upstream/3.11
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,36 +271,28 @@ 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 aider à ne pas faire de fautes d'orthographe, vous pouvez vérifier que tous les mots utilisés sont
bien dans le dictionnaire (ça ne vérifie pas la grammaire, pour cela utilisez `padpo (beta)`_). En cas
de doute, un `glossaire`_ répertorie déjà les traductions retenues pour certains termes techniques ou faux amis
en anglais.
.. code-block:: bash
make spell
Vous pouvez aussi réindenter les fichiers avec :
.. code-block:: bash
make wrap
Et pour faire les deux à la fois, lancez :
Après avoir modifié les fichiers, vérifiez que vous respectez les
`conventions`_ du projet. Pour vous y aider, la commande :
.. code-block:: bash
make verifs
vérifie la longueur des lignes et l'orthographe (mais pas la
grammaire, pour cela utilisez `padpo (beta)`_). En cas de doute, un
`glossaire`_ répertorie déjà les traductions retenues pour certains
termes techniques ou faux amis en anglais.
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
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
compilation ne devrait pas échouer.
.. code-block:: bash
@ -180,33 +305,37 @@ documentation local :
.. code-block:: bash
make serve
make htmlview
La documentation est publiée l'adresse `<http://localhost:8000/library/sys.html>`_
(ou tout autre port indiqué par la sortie de la commande précédente). Vous pouvez
recommencer les étapes de cette section autant de fois que nécessaire.
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.
Poedit donne beaucoup d'avertissements, par exemple pour vous informer que
« la traduction devrait commencer par une majuscule » car c'est le cas pour
la source. Ces avertissements ne sont pas tous fondés. En cas de doute,
*affichez et relisez la page HTML produite* avec ``make serve``.
*affichez et relisez la page HTML produite* avec ``make htmlview``.
*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
@ -224,7 +353,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
@ -252,7 +381,7 @@ GitHub puis relancer ``powrap`` :
git push
Sur une autre forge
+++++++++++++++++++
-------------------
Quand vous avez poussé vos modifications, il y a plusieurs possibilités.
@ -297,45 +426,22 @@ de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le
rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues.
Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une
branche de version (3.8, 3.9, etc.), seulement récupéré les
branche de version (3.9, 3.10, etc.), seulement récupéré les
modifications à partir d'elles.
Toutes les traductions sont faites sur la dernière version.
Nous ne traduisons jamais sur une version plus ancienne. Par exemple,
si la dernière version de python est Python 3.9, nous ne voulons pas
traduire directement sur la version Python 3.5.
si la dernière version de python est Python 3.10, nous ne voulons pas
traduire directement sur la version Python 3.6.
Si nécessaire, les traductions seraient rétroportées sur les versions
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 par la commande **à 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/* et *install/* car ces pages seront bientôt obsolètes.
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
@ -343,7 +449,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
@ -354,7 +460,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
@ -367,13 +473,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
@ -381,20 +487,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 :
@ -425,7 +531,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
@ -436,20 +542,20 @@ 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>```.
`` :term:`dictionary` `` en `` :term:`dictionnaire <dictionary>` ``.
Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque
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 »,
@ -471,6 +577,7 @@ argument argument (à ne pas confondre avec *paramètre*)
backslash antislash, *backslash*
backtrace trace d'appels, trace de pile
backport rétroporter
base class classe mère
bound lier
bug bogue
built-in natif
@ -478,6 +585,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
@ -529,11 +637,13 @@ roughly approximativement, à peu près (on ne traduit pas
setter mutateur
simple quote guillemet simple
socket connecteur ou interface de connexion
sort trier (préféré), ordonner, classer
specify définir, préciser (plutôt que « spécifier »)
statement instruction
subprocess sous-processus
support prendre en charge, implémenter (« supporter »
n'a pas le même sens en français)
token (parsing) lexème
thread fil d'exécution
traceback trace d'appels, trace de pile
tuple *n*-uplet (avec *n* en italique), on peut
@ -547,12 +657,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) :
@ -561,8 +671,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 ;
@ -577,10 +687,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
@ -605,7 +715,7 @@ simplement fonctionner :
- etc.
Comment définir la touche de composition ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------------
Cela dépend de votre système d'exploitation et de votre clavier.
@ -624,7 +734,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 :
@ -642,8 +752,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>`_,
@ -659,7 +769,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
@ -670,7 +780,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. :: ».
@ -686,7 +796,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,
@ -697,7 +807,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
@ -710,7 +820,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 ;
@ -723,70 +833,33 @@ 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
--------------------------------
Potodo
~~~~~~
| Permet de d'identifier les parties de la documention qu'il reste à traduire.
| Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement
``python3.6`` ou plus.
| `Lien vers le dépôt <https://github.com/AFPy/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.
| Installez-le à l'aide de *pip* (``pip install pogrep``).
| `Lien vers le dépôt <https://github.com/AFPy/pogrep>`__
Padpo (beta)
~~~~~~~~~~~~
| Analyseur de code qui vérifie la grammaire et l'orthographe et la syntaxe
du fichier .po.
| Installez-le à l'aide de *pip* (``pip install padpo``) dans un environnement
``python3.7`` ou plus.
| `Lien vers le dépôt <https://github.com/AFPy/padpo>`__
Powrap
~~~~~~
| Formateur de fichier .po.
| Installez-le à l'aide de *pip* (``pip install powrap``).
| `Lien vers le dépôt <https://github.com/AFPy/powrap>`__
Affichage des modifications par Git
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Migration vers Gitea
====================
Le résultat de ``git diff`` est souvent encombré de changements inutiles de numéros
de ligne, comme :
En novembre 2022, le dépôt de cette traduction a migré de GitHub à une
instance de Gitea hébergée par l'AFPy. Si vous contribuiez auparavant
sur GitHub, voici comment s'y prendre pour la migration :
.. code-block:: diff
- Suivez le guide `plus haut <cloner_>`_ pour faire une copie (*fork*)
du dépôt sur Gitea. De manière facultative mais recommandée, ajoutez
votre clé SSH à votre profil Gitea comme expliqué ci-dessus (vous
aviez probablement une clé sur GitHub, auquel cas il suffit de
réutiliser la même, qui doit se trouver dans le fichier
``~/.ssh/id_ed25519.pub`` ou un nom similaire).
-#: ../Doc/library/sys.rst:406
+#: ../Doc/library/sys.rst:408
- Exécutez ces deux commandes pour mettre à jour votre dépôt local
afin qu'il interagisse avec Gitea au lieu de GitHub :
.. code-block:: bash
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``.
git remote set-url upstream https://git.afpy.org/AFPy/python-docs-fr.git
git remote set-url origin git@git.afpy.org:VOTRE_NOM_DE_COMPTE_GITEA/python-docs-fr.git
.. code-block:: bash
Si vous avez choisi d'utiliser le HTTPS à la place du SSH, remplacez
la deuxième ligne par :
cat <<EOF > ~/.local/bin/podiff
#!/bin/sh
grep -v '^#:' "\$1"
EOF
.. code-block:: bash
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.
git remote set-url origin https://git.afpy.org/VOTRE_NOM_DE_COMPTE_GITEA/python-docs-fr.git

172
Makefile
View File

@ -3,13 +3,12 @@
# Here is what you can do:
#
# - make # Automatically build an HTML local version
# - make todo # To list remaining tasks
# - make todo # To list remaining tasks and show current progression
# - make verifs # To check for correctness: wrapping, spelling
# - make wrap # To check for wrapping
# - make wrap # To rewrap modified files
# - make spell # To check for spelling
# - make merge # To merge pot from upstream
# - make clean # To remove build artifacts
# - make fuzzy # To find fuzzy strings
# - make progress # To compute current progression
#
# Modes are: autobuild-stable, autobuild-dev, and autobuild-html,
# documented in gen/src/3.6/Doc/Makefile as we're only delegating the
@ -21,14 +20,42 @@
# 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 := eec8e61992fb654d4cf58de4d727c18622b8303e
CPYTHON_PATH := ../cpython/
CPYTHON_CURRENT_COMMIT := 1b736838e6ae1b4ef42cdd27c2708face908f92c
LANGUAGE := fr
BRANCH := 3.9
BRANCH := 3.11
EXCLUDED := whatsnew/ c-api/
EXCLUDED := \
whatsnew/2.?.po \
whatsnew/3.[0-8].po \
c-api/ \
distutils/ \
install/ \
library/2to3.po \
library/distutils.po \
library/imp.po \
library/tkinter.tix.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
@ -38,6 +65,7 @@ PYTHON := $(shell which python3)
MODE := html
POSPELL_TMP_DIR := .pospell/
JOBS := auto
SPHINXERRORHANDLING = -W
# Detect OS
@ -58,60 +86,41 @@ endif
.PHONY: all
all: ensure_prerequisites
git -C $(CPYTHON_PATH) checkout $(CPYTHON_CURRENT_COMMIT)
git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT) || (git -C venv/cpython fetch && git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT))
mkdir -p locales/$(LANGUAGE)/LC_MESSAGES/
$(CP_CMD) -u --parents *.po */*.po locales/$(LANGUAGE)/LC_MESSAGES/
$(MAKE) -C $(CPYTHON_PATH)/Doc/ \
SPHINXOPTS='-W -j$(JOBS) \
-D locale_dirs=$(abspath locales) \
$(MAKE) -C venv/cpython/Doc/ \
JOBS='$(JOBS)' \
SPHINXOPTS='-D locale_dirs=$(abspath locales) \
-D language=$(LANGUAGE) \
-D gettext_compact=0 \
-D gettext_compact=0 \
-D latex_engine=xelatex \
-D latex_elements.inputenc= \
-D latex_elements.fontenc=' \
SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \
$(MODE)
@echo "Build success, open file://$(abspath $(CPYTHON_PATH))/Doc/build/html/index.html or run 'make serve' to see them."
@echo "Build success, open file://$(abspath venv/cpython/)/Doc/build/html/index.html or run 'make htmlview' to see them."
# We clone cpython/ inside venv/ because venv/ is the only directory
# excluded by cpython' Sphinx configuration.
venv/cpython/.git/HEAD:
git clone https://github.com/python/cpython venv/cpython
.PHONY: ensure_prerequisites
ensure_prerequisites:
@if [ -z $(CPYTHON_PATH) ]; then \
echo "Your CPYTHON_PATH is empty, please provide one."; \
exit 1; \
fi
@if ! [ -d $(CPYTHON_PATH) ]; then \
echo "Building the translation requires a cpython clone."; \
echo "Please provide the path to a clone using the CPYTHON_PATH variable."; \
echo "(Currently CPYTHON_PATH is $(CPYTHON_PATH)."; \
echo "So you may want to run:"; \
echo ""; \
echo " git clone $(UPSTREAM) $(CPYTHON_PATH)"; \
exit 1; \
fi
@if [ -n "$$(git -C $(CPYTHON_PATH) status --porcelain)" ]; then \
echo "Your cpython clone at $(CPYTHON_PATH) is not clean."; \
echo "In order to avoid breaking things, please clean it first."; \
exit 1; \
fi
ensure_prerequisites: venv/cpython/.git/HEAD
@if ! (blurb help >/dev/null 2>&1 && sphinx-build --version >/dev/null 2>&1); then \
git -C $(CPYTHON_PATH) checkout $(BRANCH); \
echo "You're missing dependencies, please enable a venv and install:"; \
git -C venv/cpython/ checkout $(BRANCH); \
echo "You're missing dependencies please install:"; \
echo ""; \
echo " python -m pip install -r requirements.txt -r $(CPYTHON_PATH)/Doc/requirements.txt"; \
echo " python -m pip install -r requirements.txt -r venv/cpython/Doc/requirements.txt"; \
exit 1; \
fi
.PHONY: serve
serve:
$(MAKE) -C $(CPYTHON_PATH)/Doc/ serve
.PHONY: progress
progress:
@$(PYTHON) -c 'import sys; print("{:.1%}".format(int(sys.argv[1]) / int(sys.argv[2])))' \
$(shell msgcat *.po */*.po | msgattrib --translated | grep -c '^msgid') \
$(shell msgcat *.po */*.po | grep -c '^msgid')
.PHONY: htmlview
htmlview: MODE=htmlview
htmlview: all
.PHONY: todo
todo: ensure_prerequisites
@ -119,8 +128,8 @@ todo: ensure_prerequisites
.PHONY: wrap
wrap: ensure_prerequisites
@echo "Verify wrapping"
powrap --check --quiet *.po **/*.po
@echo "Re wrapping modified files"
powrap -m
SRCS = $(shell git diff --name-only $(BRANCH) | grep '.po$$')
# foo/bar.po => $(POSPELL_TMP_DIR)/foo/bar.po.out
@ -129,44 +138,51 @@ DESTS = $(addprefix $(POSPELL_TMP_DIR)/,$(addsuffix .out,$(SRCS)))
.PHONY: spell
spell: ensure_prerequisites $(DESTS)
.PHONY: line-length
line-length:
@echo "Searching for long lines..."
@awk '{if (length(gensub(/శ్రీనివాస్/, ".", "g", $$0)) > 80 && length(gensub(/[^ ]/, "", "g")) > 1) {print FILENAME ":" FNR, "line too long:", $$0; ERRORS+=1}} END {if (ERRORS>0) {exit 1}}' *.po */*.po
.PHONY: sphinx-lint
sphinx-lint:
@echo "Checking all files using sphinx-lint..."
@sphinx-lint --enable all --disable line-too-long *.po */*.po
$(POSPELL_TMP_DIR)/%.po.out: %.po dict
@echo "Pospell checking $<..."
mkdir -p $(@D)
@mkdir -p $(@D)
pospell -p dict -l fr_FR $< && touch $@
.PHONY: fuzzy
fuzzy: ensure_prerequisites
potodo -f --exclude venv .venv $(EXCLUDED)
.PHONY: verifs
verifs: wrap spell
.PHONY: check-headers
check-headers:
@grep -L '^# Copyright (C) [0-9-]*, Python Software Foundation' *.po */*.po | while read -r file;\
do \
echo "Please update the po comment in $$file"; \
done
@grep -L '^"Project-Id-Version: Python 3\\n"$$' *.po */*.po | while read -r file;\
do \
echo "Please update the 'Project-Id-Version' header in $$file"; \
done
@grep -L '^"Language: fr\\n"$$' *.po */*.po | while read -r file;\
do \
echo "Please update the 'Language' header in $$file"; \
done
@grep -L '^"Language-Team: FRENCH <traductions@lists.afpy.org>\\n"' *.po */*.po | while read -r file;\
do \
echo "Please update the 'Language-Team' header in $$file"; \
done
.PHONY: merge
merge: ensure_prerequisites
@echo "Merge from $(UPSTREAM)"
git -C $(CPYTHON_PATH) checkout $(BRANCH)
git -C $(CPYTHON_PATH) pull --ff-only
(cd $(CPYTHON_PATH)/Doc; sphinx-build -Q -b gettext -D gettext_compact=0 . ../pot)
find $(CPYTHON_PATH)/pot/ -name '*.pot' |\
while read -r POT; \
do \
PO="./$$(echo "$$POT" | sed "s#$(CPYTHON_PATH)/pot/##; s#\.pot\$$#.po#")"; \
mkdir -p "$$(dirname "$$PO")"; \
if [ -f "$$PO" ]; \
then \
msgmerge --backup=off --force-po -U "$$PO" "$$POT"; \
else \
msgcat -o "$$PO" "$$POT"; \
fi \
done
rm -fr $(CPYTHON_PATH)/pot/
sed -i 's|^#: .*Doc/|#: |' *.po */*.po
powrap -m
@printf "\n%s %s\n" "Replace CPYTHON_CURRENT_COMMIT in Makefile by: " $(shell git -C $(CPYTHON_PATH) rev-parse HEAD)
@printf 'To add, you can use:\n git status -s | grep "^ M .*\.po" | cut -d" " -f3 | while read -r file; do if [ $$(git diff "$$file" | wc -l) -gt 13 ]; then git add "$$file"; fi ; done\n'
.PHONY: verifs
verifs: spell line-length sphinx-lint check-headers
.PHONY: clean
clean:
@echo "Cleaning *.mo and $(POSPELL_TMP_DIR)"
rm -fr $(POSPELL_TMP_DIR)
rm -fr $(POSPELL_TMP_DIR) locales/$(LANGUAGE)/LC_MESSAGES/
find -name '*.mo' -delete
@echo "Cleaning build directory"
$(MAKE) -C venv/cpython/Doc/ clean

View File

@ -1,15 +1,6 @@
Traduction française de la documentation Python
===============================================
|build| |progression|
.. |build| image:: https://travis-ci.org/python/python-docs-fr.svg?branch=3.9
:target: https://travis-ci.org/python/python-docs-fr
:width: 45%
.. |progression| image:: https://img.shields.io/badge/dynamic/json.svg?label=fr&query=%24.fr&url=http%3A%2F%2Fgce.zhsj.me%2Fpython/newest
:width: 45%
Ce projet est réalisé en collaboration avec l'`AFPy
<https://www.afpy.org>`_ (Association Francophone Python), dont le but est la
promotion du langage de développement Python dans l'ensemble des
@ -26,16 +17,16 @@ Vous pouvez contribuer :
- en proposant des *pull requests* Github (solution recommandée) ;
- en remontant des erreurs et propositions d'amélioration sur
le `forum de l'AFPy <https://discuss.afpy.or/c/traduction/>`_ ou sur la
le `forum de l'AFPy <https://discuss.afpy.org/c/traduction/>`_ ou sur la
`liste de diffusion <https://lists.afpy.org/mailman/listinfo/traductions>`_ ;
- en devenant `membre <https://www.afpy.org/adhesions>`_ de l'AFPy ou
`mécène <https://liberapay.com/python-docs-fr>`_ du projet.
Consultez le
`guide <https://github.com/python/python-docs-fr/blob/3.9/CONTRIBUTING.rst>`_
`guide <https://git.afpy.org/AFPy/python-docs-fr/src/branch/3.11/CONTRIBUTING.rst>`_
pour apprendre les conventions à respecter.
Le `coordinateur <https://www.python.org/dev/peps/pep-0545/#language-team>` de
Le `coordinateur <https://www.python.org/dev/peps/pep-0545/#language-team>`_ de
cette traduction est `Julien Palard (mdk) <https://mdk.fr/>`_.
Vous pouvez obtenir de l'aide sur le canal
`irc://irc.libera.chat/#python-fr <https://web.libera.chat/#python-fr>`_
@ -72,6 +63,12 @@ Historique du projet
- vers 2000 : `lancement du projet <https://julienpalard.frama.io/write-the-docs-paris-19/#/2>`_ ;
- vers 2012 : `reprise <https://github.com/AFPy/python_doc_fr>`_ par l'`AFPy <https://www.afpy.org/>`_ ;
- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_.
- 2016 : 15 % de la documentation traduite ;
- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_ ;
- 2019 : 30 % de la documentation traduite ;
- 2021 : 50 % de la documentation traduite.
.. image:: https://julienpalard.frama.io/write-the-docs-paris-19/fr_translation_percent.png
:target: https://framagit.org/JulienPalard/write-the-docs-paris-19
:alt: Progression de la traduction
Une `vidéo <https://youtu.be/S2_Xui95erI>`_ de `Jules Lasne <https://github.com/Seluj78>`_ montre l'évolution du dépôt.

View File

@ -20,3 +20,4 @@ Loc Cosnier
Yannick Gingras
Martin Chlumsky
Stephan Michaud
Edith Viau

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: 2023-01-15 22:33+0100\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!"

192
bugs.po
View File

@ -5,15 +5,15 @@ 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: 2021-05-26 23:13+0200\n"
"Last-Translator: Antoine Wecxsteen\n"
"POT-Creation-Date: 2023-02-12 11:56+0100\n"
"PO-Revision-Date: 2022-12-11 17:39+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 3.2.1\n"
#: bugs.rst:5
msgid "Dealing with Bugs"
@ -51,16 +51,22 @@ msgid ""
msgstr ""
"Si vous trouvez un bogue dans cette documentation ou si vous désirez "
"proposer une amélioration, si cela concerne aussi la documentation en "
"anglais, ouvrez un rapport sur le :ref:`tracker <using-the-tracker>` "
"anglais, ouvrez un rapport sur le :ref:`traqueur <using-the-tracker>` "
"décrivant en anglais le bogue et où vous l'avez trouvé. Si le problème ne "
"touche que la traduction en français, ouvrez un ticket sur https://github."
"com/python/python-docs-fr/issues, ou venez nous en toucher un mot sur le "
"canal #python-fr sur *libera.chat* (https://kiwiirc.com/nextclient/#irc://"
"irc.libera.chat/#python-fr). Si vous avez une suggestion de correction, "
"merci de l'inclure également."
"touche que la traduction en français, ouvrez un ticket sur https://git.afpy."
"org/AFPy/python-docs-fr/issues, ou venez nous en toucher un mot sur le canal "
"#python-fr sur *libera.chat* (https://kiwiirc.com/nextclient/#irc://irc."
"libera.chat/#python-fr). Si vous avez une suggestion de correction, merci de "
"l'inclure également."
#: bugs.rst:22
msgid ""
"You can also open a discussion item on our `Documentation Discourse forum "
"<https://discuss.python.org/c/documentation/26>`_."
msgstr ""
#: bugs.rst:25
msgid ""
"If you're short on time, you can also email documentation bug reports to "
"docs@python.org (behavioral bugs can be sent to python-list@python.org). "
"'docs@' is a mailing list run by volunteers; your request will be noticed, "
@ -72,11 +78,11 @@ msgstr ""
"volontaires, votre requête sera vue, mais elle peut prendre un moment pour "
"être traitée."
#: bugs.rst:30
#: bugs.rst:33
msgid "`Documentation bugs`_"
msgstr "`Bogues de documentation`_"
#: bugs.rst:30
#: bugs.rst:33
msgid ""
"A list of documentation bugs that have been submitted to the Python issue "
"tracker."
@ -84,18 +90,18 @@ msgstr ""
"Liste des bogues de documentation soumis à l'outil de suivi des problèmes "
"Python."
#: bugs.rst:33
#: bugs.rst:36
msgid "`Issue Tracking <https://devguide.python.org/tracker/>`_"
msgstr "`Outil de suivi des problèmes <https://devguide.python.org/tracker/>`_"
#: bugs.rst:33
#: bugs.rst:36
msgid ""
"Overview of the process involved in reporting an improvement on the tracker."
msgstr ""
"Vue d'ensemble du processus pour proposer une amélioration avec l'outil de "
"suivi."
#: bugs.rst:35
#: bugs.rst:39
msgid ""
"`Helping with Documentation <https://devguide.python.org/docquality/#helping-"
"with-documentation>`_"
@ -103,84 +109,98 @@ msgstr ""
"`Aider avec la documentation <https://devguide.python.org/docquality/"
"#helping-with-documentation>`_"
#: bugs.rst:36
#: bugs.rst:39
msgid ""
"Comprehensive guide for individuals that are interested in contributing to "
"Python documentation."
msgstr "Guide complet pour qui souhaite contribuer à la documentation Python."
#: bugs.rst:41
msgid ""
"`Documentation Translations <https://devguide.python.org/documenting/"
"#translating>`_"
msgstr ""
"`Aider avec la documentation <https://devguide.python.org/documenting/"
"#translating>`_"
#: bugs.rst:42
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:48
msgid "Using the Python issue tracker"
msgstr "Utilisation du gestionnaire de tickets Python"
#: bugs.rst:43
#: bugs.rst:50
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."
"Les rapports concernant un problème relatif à Python lui-même doivent être "
"soumis *via* l'outil de suivi des problèmes de GitHub (https://github.com/"
"python/cpython/issues). Le gestionnaire de tickets propose un formulaire Web "
"permettant de saisir des informations pertinentes à soumettre aux "
"développeurs."
#: bugs.rst:47
#: bugs.rst:55
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 "
"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; "
"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; "
"il se peut que le problème soit déjà résolu dans la prochaine version, ou "
"que des informations complémentaires soient attendues (auquel cas votre "
"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
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."
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 "
"pas déjà un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », "
"ou, si vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* "
"dans la barre latérale. Il n'est pas possible de soumettre un rapport de "
"bogue de manière anonyme."
#: bugs.rst:59
msgid ""
"Being now logged in, you can submit a bug. Select the \"Create New\" link "
"in the sidebar to open the bug reporting form."
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."
"contribution est la bienvenue !). Pour ce faire, cherchez dans le "
"gestionnaire de tickets grâce à la boîte de recherche en haut de la page."
#: 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."
"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 ""
"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."
"Si le problème que vous soumettez n'est pas déjà dans la liste, connectez-"
"vous à GitHub. Si vous n'avez pas déjà un compte GitHub, créez un nouveau "
"compte en cliquant sur le lien « Sign Up ». Il n'est pas possible de "
"soumettre un rapport de bogue de manière anonyme."
#: bugs.rst:67
msgid ""
"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 connecté, vous pouvez rapporter un problème. Sélectionnez le bouton "
"*New issue* dans la barre en haut pour ouvrir un nouveau formulaire de "
"rapport."
#: bugs.rst:70
msgid "The submission form has two fields, \"Title\" and \"Comment\"."
msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*."
#: bugs.rst:72
msgid ""
"For the \"Title\" field, enter a *very* short description of the problem; "
"less than ten words is good."
msgstr ""
"Dans le champ *Title*, entrez une *très* brève description du problème "
"rencontré ; tâchez de vous limiter à dix mots."
#: bugs.rst:75
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 "
"extension modules were involved, and what hardware and software platform you "
@ -192,17 +212,17 @@ msgstr ""
"plateforme matérielle et logicielle vous utilisiez (en incluant les "
"informations de versions)."
#: bugs.rst:72
#: bugs.rst:80
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 "
"Chaque rapport 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."
"notification à chaque action concernant le rapport."
#: bugs.rst:81
#: bugs.rst:89
msgid ""
"`How to Report Bugs Effectively <https://www.chiark.greenend.org.uk/"
"~sgtatham/bugs.html>`_"
@ -210,7 +230,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:88
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,15 +239,15 @@ msgstr ""
"bogue utile. Il décrit quel genre d'information est utile et pourquoi elle "
"est utile."
#: bugs.rst:84
#: bugs.rst:92
msgid ""
"`Bug Report Writing Guidelines <https://developer.mozilla.org/en-US/docs/"
"Mozilla/QA/Bug_writing_guidelines>`_"
"`Bug Writing Guidelines <https://bugzilla.mozilla.org/page.cgi?id=bug-"
"writing.html>`_"
msgstr ""
"`Guide pour la rédaction de rapports de bogues <https://developer.mozilla."
"org/en-US/docs/Mozilla/QA/Bug_writing_guidelines>`_"
"`Guide pour la rédaction de rapports de bogues <https://bugzilla.mozilla.org/"
"page.cgi?id=bug-writing.html>`_"
#: bugs.rst:84
#: bugs.rst:92
msgid ""
"Information about writing a good bug report. Some of this is specific to "
"the Mozilla project, but describes general good practices."
@ -235,11 +255,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:98
msgid "Getting started contributing to Python yourself"
msgstr "Commencer à contribuer à Python vous-même"
#: bugs.rst:92
#: bugs.rst:100
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 +273,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: 2023-01-15 22:33+0100\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

@ -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: 2023-01-15 22:33+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"
@ -20,101 +20,196 @@ msgstr "Version des API et ABI"
#: c-api/apiabiversion.rst:9
msgid ""
"``PY_VERSION_HEX`` is the Python version number encoded in a single integer."
"CPython exposes its version number in the following macros. Note that these "
"correspond to the version code is **built** with, not necessarily the "
"version used at **run time**."
msgstr ""
#: c-api/apiabiversion.rst:13
msgid ""
"See :ref:`stable` for a discussion of API and ABI stability across versions."
msgstr ""
#: c-api/apiabiversion.rst:17
#, fuzzy
msgid "The ``3`` in ``3.4.1a2``."
msgstr "``PY_MAJOR_VERSION`` (le ``3`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:21
#, fuzzy
msgid "The ``4`` in ``3.4.1a2``."
msgstr "``PY_MINOR_VERSION`` (le ``4`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:25
#, fuzzy
msgid "The ``1`` in ``3.4.1a2``."
msgstr "``PY_MICRO_VERSION`` (le ``1`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:29
#, fuzzy
msgid ""
"The ``a`` in ``3.4.1a2``. This can be ``0xA`` for alpha, ``0xB`` for beta, "
"``0xC`` for release candidate or ``0xF`` for final."
msgstr ""
"``PY_RELEASE_LEVEL`` (``0xA`` pour alpha, ``0xB`` pour bêta, ``0xC`` pour "
"une version candidate et ``0xF`` pour final), dans ce cas c'est alpha."
#: c-api/apiabiversion.rst:35
#, fuzzy
msgid "The ``2`` in ``3.4.1a2``. Zero for final releases."
msgstr ""
"``PY_RELEASE_SERIAL`` (le ``2`` au ``3.4.1a2``, zéro pour des versions "
"finales)"
#: c-api/apiabiversion.rst:39
#, fuzzy
msgid "The Python version number encoded in a single integer."
msgstr ""
"``PY_VERSION_HEX`` est le numéro de version de Python encodé en un seul "
"entier."
#: c-api/apiabiversion.rst:11
#: c-api/apiabiversion.rst:41
#, fuzzy
msgid ""
"For example if the ``PY_VERSION_HEX`` is set to ``0x030401a2``, the "
"underlying version information can be found by treating it as a 32 bit "
"The underlying version information can be found by treating it as a 32 bit "
"number in the following manner:"
msgstr ""
"Par exemple si le ``PY_VERSION_HEX` est défini à ``0x030401a2``, la "
"version d'information sous-jacente peut être trouvée en la traitant comme un "
"nombre sous 32 bits de la manière suivante:"
#: c-api/apiabiversion.rst:16
#: c-api/apiabiversion.rst:45
msgid "Bytes"
msgstr "Bytes"
#: c-api/apiabiversion.rst:16
#: c-api/apiabiversion.rst:45
msgid "Bits (big endian order)"
msgstr "Bits (ordre gros-boutiste)"
#: c-api/apiabiversion.rst:16
#: c-api/apiabiversion.rst:45
msgid "Meaning"
msgstr "Signification"
#: c-api/apiabiversion.rst:18
msgid "``1``"
msgstr "``1``"
#: c-api/apiabiversion.rst:45
msgid "Value for ``3.4.1a2``"
msgstr ""
#: c-api/apiabiversion.rst:18
msgid "``1-8``"
#: c-api/apiabiversion.rst:47
msgid "1"
msgstr ""
#: c-api/apiabiversion.rst:47
#, fuzzy
msgid "1-8"
msgstr "``1-8``"
#: c-api/apiabiversion.rst:18
msgid "``PY_MAJOR_VERSION`` (the ``3`` in ``3.4.1a2``)"
msgstr "``PY_MAJOR_VERSION`` (le ``3`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:47
msgid "``PY_MAJOR_VERSION``"
msgstr ""
#: c-api/apiabiversion.rst:21
msgid "``2``"
msgstr "``2``"
#: c-api/apiabiversion.rst:47
msgid "``0x03``"
msgstr ""
#: c-api/apiabiversion.rst:21
msgid "``9-16``"
#: c-api/apiabiversion.rst:49
msgid "2"
msgstr ""
#: c-api/apiabiversion.rst:49
#, fuzzy
msgid "9-16"
msgstr "``9-16``"
#: c-api/apiabiversion.rst:21
msgid "``PY_MINOR_VERSION`` (the ``4`` in ``3.4.1a2``)"
msgstr "``PY_MINOR_VERSION`` (le ``4`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:49
msgid "``PY_MINOR_VERSION``"
msgstr ""
#: c-api/apiabiversion.rst:24
msgid "``3``"
msgstr "``3``"
#: c-api/apiabiversion.rst:49
msgid "``0x04``"
msgstr ""
#: c-api/apiabiversion.rst:24
msgid "``17-24``"
#: c-api/apiabiversion.rst:51
msgid "3"
msgstr ""
#: c-api/apiabiversion.rst:51
#, fuzzy
msgid "17-24"
msgstr "``17-24``"
#: c-api/apiabiversion.rst:24
msgid "``PY_MICRO_VERSION`` (the ``1`` in ``3.4.1a2``)"
msgstr "``PY_MICRO_VERSION`` (le ``1`` dans ``3.4.1a2``)"
#: c-api/apiabiversion.rst:51
msgid "``PY_MICRO_VERSION``"
msgstr ""
#: c-api/apiabiversion.rst:27
msgid "``4``"
msgstr "``4``"
#: c-api/apiabiversion.rst:51
msgid "``0x01``"
msgstr ""
#: c-api/apiabiversion.rst:27
msgid "``25-28``"
#: c-api/apiabiversion.rst:53
msgid "4"
msgstr ""
#: c-api/apiabiversion.rst:53
#, fuzzy
msgid "25-28"
msgstr "``25-28``"
#: c-api/apiabiversion.rst:27
msgid ""
"``PY_RELEASE_LEVEL`` (``0xA`` for alpha, ``0xB`` for beta, ``0xC`` for "
"release candidate and ``0xF`` for final), in this case it is alpha."
#: c-api/apiabiversion.rst:53
msgid "``PY_RELEASE_LEVEL``"
msgstr ""
"``PY_RELEASE_LEVEL`` (``0xA`` pour alpha, ``0xB`` pour bêta, ``0xC`` pour "
"une version candidate et ``0xF`` pour final), dans ce cas c'est alpha."
#: c-api/apiabiversion.rst:32
msgid "``29-32``"
#: c-api/apiabiversion.rst:53
msgid "``0xA``"
msgstr ""
#: c-api/apiabiversion.rst:55
#, fuzzy
msgid "29-32"
msgstr "``29-32``"
#: c-api/apiabiversion.rst:32
msgid ""
"``PY_RELEASE_SERIAL`` (the ``2`` in ``3.4.1a2``, zero for final releases)"
#: c-api/apiabiversion.rst:55
msgid "``PY_RELEASE_SERIAL``"
msgstr ""
"``PY_RELEASE_SERIAL`` (le ``2`` au ``3.4.1a2``, zéro pour des versions "
"finales)"
#: c-api/apiabiversion.rst:36
msgid "Thus ``3.4.1a2`` is hexversion ``0x030401a2``."
#: c-api/apiabiversion.rst:55
msgid "``0x2``"
msgstr ""
#: c-api/apiabiversion.rst:58
#, fuzzy
msgid ""
"Thus ``3.4.1a2`` is hexversion ``0x030401a2`` and ``3.10.0`` is hexversion "
"``0x030a00f0``."
msgstr "Ainsi ``3.4.1a2`` est une hexane-version ``0x030401a2``."
#: c-api/apiabiversion.rst:38
#: c-api/apiabiversion.rst:61
msgid "Use this for numeric comparisons, e.g. ``#if PY_VERSION_HEX >= ...``."
msgstr ""
#: c-api/apiabiversion.rst:63
msgid "This version is also available via the symbol :data:`Py_Version`."
msgstr ""
#: c-api/apiabiversion.rst:67
msgid ""
"The Python runtime version number encoded in a single constant integer, with "
"the same format as the :c:macro:`PY_VERSION_HEX` macro. This contains the "
"Python version used at run time."
msgstr ""
#: c-api/apiabiversion.rst:73
msgid "All the given macros are defined in :source:`Include/patchlevel.h`."
msgstr ""
"Toutes les macros données sont définies dans :source:`Include/patchlevel.h`."
#~ msgid "``1``"
#~ msgstr "``1``"
#~ msgid "``2``"
#~ msgstr "``2``"
#~ msgid "``3``"
#~ msgstr "``3``"
#~ msgid "``4``"
#~ msgstr "``4``"

File diff suppressed because it is too large Load Diff

View File

@ -5,14 +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: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2021-11-04 18:14+0100\n"
"PO-Revision-Date: 2021-10-27 19:19+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
#: c-api/bool.rst:6
msgid "Boolean Objects"
@ -32,11 +33,12 @@ msgstr ""
"disponibles."
#: c-api/bool.rst:16
#, fuzzy
msgid ""
"Return true if *o* is of type :c:data:`PyBool_Type`. This function always "
"succeeds."
msgstr "Renvoie vrai si *o* est de type :c:data:`PyBook_Type`."
msgstr ""
"Renvoie vrai si *o* est de type :c:data:`PyBook_Type`. Cette fonction "
"réussit systématiquement."
#: c-api/bool.rst:22
msgid ""

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: 2018-10-04 12:18+0200\n"
"Last-Translator: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\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"
"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\n"
#: c-api/buffer.rst:11
msgid "Buffer Protocol"
@ -455,7 +455,7 @@ msgstr "oui"
#: c-api/buffer.rst:323 c-api/buffer.rst:325
msgid "if needed"
msgstr ""
msgstr "si nécessaire"
#: c-api/buffer.rst:278 c-api/buffer.rst:298 c-api/buffer.rst:302
#: c-api/buffer.rst:327 c-api/buffer.rst:331 c-api/buffer.rst:335
@ -513,7 +513,7 @@ msgstr ""
#: c-api/buffer.rst:321
msgid "readonly"
msgstr ""
msgstr "lecture seule"
#: c-api/buffer.rst:321
msgid "format"
@ -529,7 +529,7 @@ msgstr "0"
#: c-api/buffer.rst:329 c-api/buffer.rst:337
msgid "1 or 0"
msgstr ""
msgstr "0 ou 1"
#: c-api/buffer.rst:342
msgid "Complex arrays"
@ -642,6 +642,8 @@ msgid ""
"Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer."
"format`. On error, raise an exception and return -1."
msgstr ""
"Retourne l'\\ :c:data:`~Py_buffer.itemsize` du :c:data:`~Py_buffer.format`. "
"En cas d'erreur, lève une exception et retourne -1."
#: c-api/buffer.rst:475
msgid ""
@ -677,33 +679,43 @@ msgstr ""
#: c-api/buffer.rst:504
msgid ""
"Copy data from *src* to *dest* buffer. Can convert between C-style and or "
"Fortran-style buffers."
msgstr ""
#: c-api/buffer.rst:507
msgid "``0`` is returned on success, ``-1`` on error."
msgstr ""
#: c-api/buffer.rst:511
msgid ""
"Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style "
"if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the "
"given shape with the given number of bytes per element."
msgstr ""
#: c-api/buffer.rst:511
#: c-api/buffer.rst:518
msgid ""
"Handle buffer requests for an exporter that wants to expose *buf* of size "
"*len* with writability set according to *readonly*. *buf* is interpreted as "
"a sequence of unsigned bytes."
msgstr ""
#: c-api/buffer.rst:515
#: c-api/buffer.rst:522
msgid ""
"The *flags* argument indicates the request type. This function always fills "
"in *view* as specified by flags, unless *buf* has been designated as read-"
"only and :c:macro:`PyBUF_WRITABLE` is set in *flags*."
msgstr ""
#: c-api/buffer.rst:519
#: c-api/buffer.rst:526
msgid ""
"On success, set ``view->obj`` to a new reference to *exporter* and return 0. "
"Otherwise, raise :c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` "
"and return ``-1``;"
msgstr ""
#: c-api/buffer.rst:523
#: c-api/buffer.rst:530
msgid ""
"If this function is used as part of a :ref:`getbufferproc <buffer-structs>`, "
"*exporter* MUST be set to the exporting object and *flags* must be passed "

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-22 23:13+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,28 @@ 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
msgid "Macro version of :c:func:`PyByteArray_AsString`."
#: c-api/bytearray.rst:80
#, fuzzy
msgid "Similar to :c:func:`PyByteArray_AsString`, but without error checking."
msgstr "Version macro de :c:func:`PyByteArray_AsString`."
#: c-api/bytearray.rst:87
msgid "Macro version of :c:func:`PyByteArray_Size`."
msgstr "Version macro de :c:func:`PyByteArray_Size`."
#: c-api/bytearray.rst:85
msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking."
msgstr ""
#~ 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-22 23:13+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
@ -258,7 +258,7 @@ msgid "Return the length of the bytes in bytes object *o*."
msgstr ""
#: c-api/bytes.rst:137
msgid "Macro form of :c:func:`PyBytes_Size` but without error checking."
msgid "Similar to :c:func:`PyBytes_Size`, but without error checking."
msgstr ""
#: c-api/bytes.rst:142
@ -273,7 +273,7 @@ msgid ""
msgstr ""
#: c-api/bytes.rst:154
msgid "Macro form of :c:func:`PyBytes_AsString` but without error checking."
msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking."
msgstr ""
#: c-api/bytes.rst:159
@ -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: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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,142 +237,142 @@ 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 "
"*tp_call* or vectorcall. In order to do as litle conversion as possible, "
"*tp_call* or vectorcall. In order to do as little conversion as possible, "
"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: 2023-01-15 22:33+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"
@ -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 "
@ -139,18 +139,20 @@ msgid ""
"Import a pointer to a C object from a capsule attribute in a module. The "
"*name* parameter should specify the full name to the attribute, as in "
"``module.attribute``. The *name* stored in the capsule must match this "
"string exactly. If *no_block* is true, import the module without blocking "
"(using :c:func:`PyImport_ImportModuleNoBlock`). If *no_block* is false, "
"import the module conventionally (using :c:func:`PyImport_ImportModule`)."
"string exactly."
msgstr ""
#: c-api/capsule.rst:110
#: c-api/capsule.rst:108
msgid ""
"Return the capsule's internal *pointer* on success. On failure, set an "
"exception and return ``NULL``."
msgstr ""
#: c-api/capsule.rst:116
#: c-api/capsule.rst:111
msgid "*no_block* has no effect anymore."
msgstr ""
#: c-api/capsule.rst:117
msgid ""
"Determines whether or not *capsule* is a valid capsule. A valid capsule is "
"non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` "
@ -159,40 +161,40 @@ msgid ""
"compared.)"
msgstr ""
#: c-api/capsule.rst:122
#: c-api/capsule.rst:123
msgid ""
"In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls "
"to any of the accessors (any function starting with :c:func:`PyCapsule_Get`) "
"are guaranteed to succeed."
msgstr ""
#: c-api/capsule.rst:126
#: c-api/capsule.rst:127
msgid ""
"Return a nonzero value if the object is valid and matches the name passed "
"in. Return ``0`` otherwise. This function will not fail."
msgstr ""
#: c-api/capsule.rst:132
#: c-api/capsule.rst:133
msgid "Set the context pointer inside *capsule* to *context*."
msgstr ""
#: c-api/capsule.rst:141 c-api/capsule.rst:158
#: c-api/capsule.rst:142 c-api/capsule.rst:159
msgid ""
"Return ``0`` on success. Return nonzero and set an exception on failure."
msgstr ""
#: c-api/capsule.rst:139
#: c-api/capsule.rst:140
msgid "Set the destructor inside *capsule* to *destructor*."
msgstr ""
#: c-api/capsule.rst:146
#: c-api/capsule.rst:147
msgid ""
"Set the name inside *capsule* to *name*. If non-``NULL``, the name must "
"outlive the capsule. If the previous *name* stored in the capsule was not "
"``NULL``, no attempt is made to free it."
msgstr ""
#: c-api/capsule.rst:155
#: c-api/capsule.rst:156
msgid ""
"Set the void pointer inside *capsule* to *pointer*. The pointer may not be "
"``NULL``."

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-02-15 00:30+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -56,29 +56,100 @@ msgid "Return the number of free variables in *co*."
msgstr "Renvoie le nombre de variables libres dans *co*."
#: c-api/code.rst:38
#, fuzzy
msgid ""
"Return a new code object. If you need a dummy code object to create a "
"frame, use :c:func:`PyCode_NewEmpty` instead. Calling :c:func:`PyCode_New` "
"directly can bind you to a precise Python version since the definition of "
"the bytecode changes often."
"directly will bind you to a precise Python version since the definition of "
"the bytecode changes often. The many arguments of this function are inter-"
"dependent in complex ways, meaning that subtle changes to values are likely "
"to result in incorrect execution or VM crashes. Use this function only with "
"extreme care."
msgstr ""
"Renvoie un nouvel objet *code*. Si vous avez besoin d'un objet code factice "
"pour créer une *frame*, utilisez plutôt :c:func:`PyCode_NewEmpty`. Appeler :"
"c:func:`PyCode_New` peut vous lier directement à une version spécifique de "
"Python, le *bytecode* étant sujet à modifications."
#: c-api/code.rst:45
msgid ""
"Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for "
"positional-only arguments."
#: c-api/code.rst:55
msgid "Added ``exceptiontable`` parameter."
msgstr ""
#: c-api/code.rst:51
#: c-api/code.rst:50
msgid ""
"Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for "
"positional-only arguments. The same caveats that apply to ``PyCode_New`` "
"also apply to this function."
msgstr ""
#: c-api/code.rst:60
#, fuzzy
msgid ""
"Return a new empty code object with the specified filename, function name, "
"and first line number. It is illegal to :func:`exec` or :func:`eval` the "
"resulting code object."
"and first line number. The resulting code object will raise an ``Exception`` "
"if executed."
msgstr ""
"Renvoie un nouvel objet *code* avec le nom de fichier, le nom de fonction, "
"et le numéro de première ligne donnés. Il n'est pas permis d'utiliser :func:"
"`exec` ou :func:`eval` sur l'objet renvoyé."
#: c-api/code.rst:66
msgid ""
"Return the line number of the instruction that occurs on or before "
"``byte_offset`` and ends after it. If you just need the line number of a "
"frame, use :c:func:`PyFrame_GetLineNumber` instead."
msgstr ""
#: c-api/code.rst:69
msgid ""
"For efficiently iterating over the line numbers in a code object, use `the "
"API described in PEP 626 <https://peps.python.org/pep-0626/#out-of-process-"
"debuggers-and-profilers>`_."
msgstr ""
#: c-api/code.rst:74
msgid ""
"Sets the passed ``int`` pointers to the source code line and column numbers "
"for the instruction at ``byte_offset``. Sets the value to ``0`` when "
"information is not available for any particular element."
msgstr ""
#: c-api/code.rst:78
msgid "Returns ``1`` if the function succeeds and 0 otherwise."
msgstr ""
#: c-api/code.rst:82
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong "
"reference to a :c:type:`PyBytesObject` representing the bytecode in a code "
"object. On error, ``NULL`` is returned and an exception is raised."
msgstr ""
#: c-api/code.rst:87
msgid ""
"This ``PyBytesObject`` may be created on-demand by the interpreter and does "
"not necessarily represent the bytecode actually executed by CPython. The "
"primary use case for this function is debuggers and profilers."
msgstr ""
#: c-api/code.rst:95
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the local "
"variables. On error, ``NULL`` is returned and an exception is raised."
msgstr ""
#: c-api/code.rst:104
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the local "
"variables that are referenced by nested functions. On error, ``NULL`` is "
"returned and an exception is raised."
msgstr ""
#: c-api/code.rst:113
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the free "
"variables. On error, ``NULL`` is returned and an exception is raised."
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: 2021-09-23 16:16+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,15 +30,22 @@ msgstr ""
#: c-api/codec.rst:15
msgid ""
"Unregister a codec search function and clear the registry's cache. If the "
"search function is not registered, do nothing. Return 0 on success. Raise an "
"exception and return -1 on error."
msgstr ""
#: c-api/codec.rst:23
msgid ""
"Return ``1`` or ``0`` depending on whether there is a registered codec for "
"the given *encoding*. This function always succeeds."
msgstr ""
#: c-api/codec.rst:20
#: c-api/codec.rst:28
msgid "Generic codec based encoding API."
msgstr ""
#: c-api/codec.rst:22
#: c-api/codec.rst:30
msgid ""
"*object* is passed through the encoder function found for the given "
"*encoding* using the error handling method defined by *errors*. *errors* "
@ -46,11 +53,11 @@ msgid ""
"exc:`LookupError` if no encoder can be found."
msgstr ""
#: c-api/codec.rst:29
#: c-api/codec.rst:37
msgid "Generic codec based decoding API."
msgstr ""
#: c-api/codec.rst:31
#: c-api/codec.rst:39
msgid ""
"*object* is passed through the decoder function found for the given "
"*encoding* using the error handling method defined by *errors*. *errors* "
@ -58,11 +65,11 @@ msgid ""
"exc:`LookupError` if no encoder can be found."
msgstr ""
#: c-api/codec.rst:38
#: c-api/codec.rst:46
msgid "Codec lookup API"
msgstr ""
#: c-api/codec.rst:40
#: c-api/codec.rst:48
msgid ""
"In the following functions, the *encoding* string is looked up converted to "
"all lower-case characters, which makes encodings looked up through this "
@ -70,41 +77,41 @@ msgid ""
"`KeyError` is set and ``NULL`` returned."
msgstr ""
#: c-api/codec.rst:47
#: c-api/codec.rst:55
msgid "Get an encoder function for the given *encoding*."
msgstr ""
#: c-api/codec.rst:51
#: c-api/codec.rst:59
msgid "Get a decoder function for the given *encoding*."
msgstr ""
#: c-api/codec.rst:55
#: c-api/codec.rst:63
msgid ""
"Get an :class:`~codecs.IncrementalEncoder` object for the given *encoding*."
msgstr ""
#: c-api/codec.rst:59
#: c-api/codec.rst:67
msgid ""
"Get an :class:`~codecs.IncrementalDecoder` object for the given *encoding*."
msgstr ""
#: c-api/codec.rst:63
#: c-api/codec.rst:71
msgid ""
"Get a :class:`~codecs.StreamReader` factory function for the given "
"*encoding*."
msgstr ""
#: c-api/codec.rst:67
#: c-api/codec.rst:75
msgid ""
"Get a :class:`~codecs.StreamWriter` factory function for the given "
"*encoding*."
msgstr ""
#: c-api/codec.rst:71
#: c-api/codec.rst:79
msgid "Registry API for Unicode encoding error handlers"
msgstr ""
#: c-api/codec.rst:75
#: c-api/codec.rst:83
msgid ""
"Register the error handling callback function *error* under the given "
"*name*. This callback function will be called by a codec when it encounters "
@ -112,7 +119,7 @@ msgid ""
"error parameter in the call to the encode/decode function."
msgstr ""
#: c-api/codec.rst:80
#: c-api/codec.rst:88
msgid ""
"The callback gets a single argument, an instance of :exc:"
"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` or :exc:"
@ -125,39 +132,39 @@ msgid ""
"should be resumed."
msgstr ""
#: c-api/codec.rst:90
#: c-api/codec.rst:98
msgid "Return ``0`` on success, ``-1`` on error."
msgstr ""
#: c-api/codec.rst:94
#: c-api/codec.rst:102
msgid ""
"Lookup the error handling callback function registered under *name*. As a "
"special case ``NULL`` can be passed, in which case the error handling "
"callback for \"strict\" will be returned."
msgstr ""
#: c-api/codec.rst:100
#: c-api/codec.rst:108
msgid "Raise *exc* as an exception."
msgstr ""
#: c-api/codec.rst:104
#: c-api/codec.rst:112
msgid "Ignore the unicode error, skipping the faulty input."
msgstr ""
#: c-api/codec.rst:108
#: c-api/codec.rst:116
msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``."
msgstr ""
#: c-api/codec.rst:112
#: c-api/codec.rst:120
msgid "Replace the unicode encode error with XML character references."
msgstr ""
#: c-api/codec.rst:116
#: c-api/codec.rst:124
msgid ""
"Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` "
"and ``\\U``)."
msgstr ""
#: c-api/codec.rst:121
#: c-api/codec.rst:129
msgid "Replace the unicode encode error with ``\\N{...}`` escapes."
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: 2023-01-15 22:33+0100\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"
@ -74,8 +74,9 @@ msgstr ""
"`Py_complex` en C."
#: c-api/complex.rst:51
#, fuzzy
msgid ""
"Return the negation of the complex number *complex*, using the C :c:type:"
"Return the negation of the complex number *num*, using the C :c:type:"
"`Py_complex` representation."
msgstr ""
"Renvoie l'opposé du nombre complexe *complex*, sous la forme d'un :c:type:"
@ -173,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-02-24 17:33+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+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"
@ -50,66 +50,61 @@ msgstr ""
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`` and "
"``format != NULL``."
"into str. Both functions require that ``str != NULL``, ``size > 0``, "
"``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
msgid ""
"If the platform doesn't have :c:func:`vsnprintf` and the buffer size needed "
"to avoid truncation exceeds *size* by more than 512 bytes, Python aborts "
"with a :c:func:`Py_FatalError`."
msgstr ""
#: c-api/conversion.rst:37
#: c-api/conversion.rst:34
msgid ""
"The return value (*rv*) for these functions should be interpreted as follows:"
msgstr ""
#: c-api/conversion.rst:39
#: 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:43
#: 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:47
#: 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:51
#: c-api/conversion.rst:49
msgid ""
"The following functions provide locale-independent string to number "
"conversions."
msgstr ""
#: c-api/conversion.rst:56
#: 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:62
#: 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:66
#: 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 "
@ -118,7 +113,7 @@ msgid ""
"ValueError, and return ``-1.0``."
msgstr ""
#: c-api/conversion.rst:73
#: 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 "
@ -129,50 +124,50 @@ msgid ""
"the first character after the converted value."
msgstr ""
#: c-api/conversion.rst:81
#: 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:90
#: 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:93
#: 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:98
#: 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:101
#: 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:104
#: 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:107
#: 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:111
#: 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 "
@ -180,20 +175,20 @@ msgid ""
"respectively."
msgstr ""
#: c-api/conversion.rst:115
#: 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:124
#: 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:130
#: 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,8 +5,8 @@ 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: 2020-06-28 15:17+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"Language: fr\n"
@ -34,7 +34,7 @@ msgstr ""
"`DateTime`. Avant d'utiliser une de ces fonctions, le fichier d'en-tête :"
"file:`datetime.h` doit être inclus dans vos sources (veuillez noter qu'il "
"n'est pas inclus par le fichier :file:`Python.h`) et la macro :c:macro:"
"`PyDateTime_IMPORT` doit-être invoquée, généralement lors de la fonction "
"`PyDateTime_IMPORT` doit être invoquée, généralement lors de la fonction "
"d'initialisation du module. La macro crée un pointeur vers une structure C "
"et place celui-ci dans une variable statique, :c:data:`PyDateTimeAPI`, qui "
"est utilisée par les macros suivantes."
@ -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,23 +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:200
#: 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:205
#: 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:210
#: 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:215
#: 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:194
#: 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:210
#, fuzzy
msgid ""
"Macros to extract fields from time objects. The argument must be an "
@ -286,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:218
#: c-api/datetime.rst:248
#, fuzzy
msgid ""
"Macros to extract fields from time delta objects. The argument must be an "
@ -297,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:224
#: 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:231
#: 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:238
#: 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:243
#: 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:247
#: 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()`."
@ -324,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:253
#: 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

@ -1,212 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2021, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-18 17:40+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: c-api/decimal.rst:7
msgid "Decimal capsule API"
msgstr ""
#: c-api/decimal.rst:9
msgid ""
"Capsule API functions can be used in the same manner as regular library "
"functions, provided that the API has been initialized."
msgstr ""
#: c-api/decimal.rst:14
msgid "Initialize"
msgstr ""
#: c-api/decimal.rst:16
msgid ""
"Typically, a C extension module that uses the decimal API will do these "
"steps in its init function:"
msgstr ""
#: c-api/decimal.rst:34
msgid "Type checking, predicates, accessors"
msgstr ""
#: c-api/decimal.rst:38
msgid ""
"Return 1 if ``dec`` is a Decimal, 0 otherwise. This function does not set "
"any exceptions."
msgstr ""
#: c-api/decimal.rst:44
msgid "Return 1 if ``dec`` is ``NaN``, ``sNaN`` or ``Infinity``, 0 otherwise."
msgstr ""
#: c-api/decimal.rst:55 c-api/decimal.rst:64
msgid ""
"Set TypeError and return -1 if ``dec`` is not a Decimal. It is guaranteed "
"that this is the only failure mode, so if ``dec`` has already been type-"
"checked, no errors can occur and the function can be treated as a simple "
"predicate."
msgstr ""
#: c-api/decimal.rst:53
msgid "Return 1 if ``dec`` is ``NaN`` or ``sNaN``, 0 otherwise."
msgstr ""
#: c-api/decimal.rst:62
msgid "Return 1 if ``dec`` is ``Infinity``, 0 otherwise."
msgstr ""
#: c-api/decimal.rst:71
msgid ""
"Return the number of digits in the coefficient. For ``Infinity``, the "
"number of digits is always zero. Typically, the same applies to ``NaN`` and "
"``sNaN``, but both of these can have a payload that is equivalent to a "
"coefficient. Therefore, ``NaNs`` can have a nonzero return value."
msgstr ""
#: c-api/decimal.rst:76
msgid ""
"Set TypeError and return -1 if ``dec`` is not a Decimal. It is guaranteed "
"that this is the only failure mode, so if ``dec`` has already been type-"
"checked, no errors can occur and the function can be treated as a simple "
"accessor."
msgstr ""
#: c-api/decimal.rst:82
msgid "Exact conversions between decimals and primitive C types"
msgstr ""
#: c-api/decimal.rst:84
msgid ""
"This API supports conversions for decimals with a coefficient up to 38 "
"digits."
msgstr ""
#: c-api/decimal.rst:87
msgid "Data structures"
msgstr ""
#: c-api/decimal.rst:89
msgid ""
"The conversion functions use the following status codes and data structures:"
msgstr ""
#: c-api/decimal.rst:110
msgid ""
"The status cases are explained below. ``sign`` is 0 for positive and 1 for "
"negative. ``((uint128_t)hi << 64) + lo`` is the coefficient, ``exp`` is the "
"exponent."
msgstr ""
#: c-api/decimal.rst:113
msgid ""
"The data structure is called \"triple\" because the decimal triple (sign, "
"coeff, exp) is an established term and (``hi``, ``lo``) represents a single "
"``uint128_t`` coefficient."
msgstr ""
#: c-api/decimal.rst:216
msgid "Functions"
msgstr "Fonctions"
#: c-api/decimal.rst:122
msgid ""
"Convert a decimal to a triple. As above, it is guaranteed that the only "
"Python failure mode is a TypeError, checks can be omitted if the type is "
"known."
msgstr ""
#: c-api/decimal.rst:126
msgid ""
"For simplicity, the usage of the function and all special cases are "
"explained in code form and comments:"
msgstr ""
#: c-api/decimal.rst:180
msgid ""
"Create a decimal from a triple. The following rules must be observed for "
"initializing the triple:"
msgstr ""
#: c-api/decimal.rst:183
msgid "``triple.sign`` must always be 0 (for positive) or 1 (for negative)."
msgstr ""
#: c-api/decimal.rst:185
msgid ""
"``MPD_TRIPLE_QNAN``: ``triple.exp`` must be 0. If ``triple.hi`` or ``triple."
"lo`` are nonzero, create a ``NaN`` with a payload."
msgstr ""
#: c-api/decimal.rst:188
msgid ""
"``MPD_TRIPLE_SNAN``: ``triple.exp`` must be 0. If ``triple.hi`` or ``triple."
"lo`` are nonzero, create an ``sNaN`` with a payload."
msgstr ""
#: c-api/decimal.rst:191
msgid ""
"``MPD_TRIPLE_INF``: ``triple.exp``, ``triple.hi`` and ``triple.lo`` must be "
"zero."
msgstr ""
#: c-api/decimal.rst:193
msgid ""
"``MPD_TRIPLE_NORMAL``: ``MPD_MIN_ETINY + 38 < triple.exp < MPD_MAX_EMAX - "
"38``. ``triple.hi`` and ``triple.lo`` can be chosen freely."
msgstr ""
#: c-api/decimal.rst:196
msgid "``MPD_TRIPLE_ERROR``: It is always an error to set this tag."
msgstr ""
#: c-api/decimal.rst:199
msgid ""
"If one of the above conditions is not met, the function returns ``NaN`` if "
"the ``InvalidOperation`` trap is not set in the thread local context. "
"Otherwise, it sets the ``InvalidOperation`` exception and returns NULL."
msgstr ""
#: c-api/decimal.rst:203
msgid ""
"Additionally, though extremely unlikely give the small allocation sizes, the "
"function can set ``MemoryError`` and return ``NULL``."
msgstr ""
#: c-api/decimal.rst:208
msgid "Advanced API"
msgstr ""
#: c-api/decimal.rst:210
msgid ""
"This API enables the use of ``libmpdec`` functions. Since Python is "
"compiled with hidden symbols, the API requires an external libmpdec and the "
"``mpdecimal.h`` header."
msgstr ""
#: c-api/decimal.rst:220
msgid ""
"Return a new decimal that can be used in the ``result`` position of "
"``libmpdec`` functions."
msgstr ""
#: c-api/decimal.rst:225
msgid ""
"Get a pointer to the internal ``mpd_t`` of the decimal. Decimals are "
"immutable, so this function must only be used on a new Decimal that has been "
"created by PyDec_Alloc()."
msgstr ""
#: c-api/decimal.rst:231
msgid "Get a pointer to the constant internal ``mpd_t`` of the decimal."
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: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2018-02-15 00:32+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -31,10 +31,11 @@ msgid "The type object for the built-in descriptor types."
msgstr "L'objet *type* des descripteurs natifs."
#: c-api/descriptor.rst:35
#, fuzzy
msgid ""
"Return true if the descriptor objects *descr* describes a data attribute, or "
"false if it describes a method. *descr* must be a descriptor object; there "
"is no error checking."
"Return non-zero if the descriptor objects *descr* describes a data "
"attribute, or ``0`` if it describes a method. *descr* must be a descriptor "
"object; there is no error checking."
msgstr ""
"Renvoie vrai si le descripteur *descr* décrit un attribut de donnée, ou faux "
"s'il décrit une méthode. *descr* doit être un objet descripteur. Il n'y a "

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: 2023-01-15 22:33+0100\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 ""
@ -116,27 +116,33 @@ msgid ""
"`PyDict_GetItemWithError()` instead."
msgstr ""
#: c-api/dict.rst:108
#: c-api/dict.rst:105
msgid ""
"Calling this API without :term:`GIL` held had been allowed for historical "
"reason. It is no longer allowed."
msgstr ""
#: c-api/dict.rst:112
msgid ""
"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. "
"Return ``NULL`` **with** an exception set if an exception occurred. Return "
"``NULL`` **without** an exception set if the key wasn't present."
msgstr ""
#: c-api/dict.rst:116
#: 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:119
#: c-api/dict.rst:123
msgid ""
"Note that exceptions which occur while calling :meth:`__hash__` and :meth:"
"`__eq__` methods and creating a temporary string object will get suppressed. "
"To get error reporting use :c:func:`PyDict_GetItemWithError()` instead."
msgstr ""
#: c-api/dict.rst:127
#: c-api/dict.rst:131
msgid ""
"This is the same as the Python-level :meth:`dict.setdefault`. If present, "
"it returns the value corresponding to *key* from the dictionary *p*. If the "
@ -146,35 +152,35 @@ msgid ""
"the insertion."
msgstr ""
#: c-api/dict.rst:137
#: c-api/dict.rst:141
msgid ""
"Return a :c:type:`PyListObject` containing all the items from the dictionary."
msgstr ""
#: c-api/dict.rst:142
#: c-api/dict.rst:146
msgid ""
"Return a :c:type:`PyListObject` containing all the keys from the dictionary."
msgstr ""
#: c-api/dict.rst:147
#: c-api/dict.rst:151
msgid ""
"Return a :c:type:`PyListObject` containing all the values from the "
"dictionary *p*."
msgstr ""
#: c-api/dict.rst:155
#: c-api/dict.rst:159
msgid ""
"Return the number of items in the dictionary. This is equivalent to "
"``len(p)`` on a dictionary."
msgstr ""
#: c-api/dict.rst:161
#: c-api/dict.rst:165
msgid ""
"Iterate over all key-value pairs in the dictionary *p*. The :c:type:"
"`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 "
@ -182,18 +188,18 @@ msgid ""
"structure is sparse, the offsets are not consecutive."
msgstr ""
#: c-api/dict.rst:172
#: c-api/dict.rst:176
msgid "For example::"
msgstr "Par exemple ::"
#: c-api/dict.rst:182
#: c-api/dict.rst:186
msgid ""
"The dictionary *p* should not be mutated during iteration. It is safe to "
"modify the values of the keys as you iterate over the dictionary, but only "
"so long as the set of keys does not change. For example::"
msgstr ""
#: c-api/dict.rst:207
#: c-api/dict.rst:211
msgid ""
"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. "
"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` "
@ -203,7 +209,7 @@ msgid ""
"or ``-1`` if an exception was raised."
msgstr ""
#: c-api/dict.rst:217
#: c-api/dict.rst:221
msgid ""
"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a."
"update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back "
@ -212,7 +218,7 @@ msgid ""
"exception was raised."
msgstr ""
#: c-api/dict.rst:226
#: c-api/dict.rst:230
msgid ""
"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. "
"*seq2* must be an iterable object producing iterable objects of length 2, "

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-19 16:59+0100\n"
"PO-Revision-Date: 2018-10-18 09:48+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 12:00+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\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 "
@ -37,7 +37,7 @@ msgstr ""
"fichiers et les flux utilisent le nouveau module :mod:`io`, qui définit "
"plusieurs couches au dessus des entrées/sorties bas niveau sans tampon du "
"système d'exploitation. Les fonctions définies ci-dessous, écrites en C, "
"encapsulent ces nouvelles APi pour les rendre plus faciles d'utilisation et "
"encapsulent ces nouvelles API pour les rendre plus faciles d'utilisation et "
"sont majoritairement pensées pour signaler des erreurs internes dans "
"l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:"
"`io` à la place."
@ -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: 2023-01-15 22:33+0100\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,20 +110,138 @@ 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."
#: c-api/float.rst:82
msgid "Pack and Unpack functions"
msgstr ""
#: c-api/float.rst:84
msgid ""
"The pack and unpack functions provide an efficient platform-independent way "
"to store floating-point values as byte strings. The Pack routines produce a "
"bytes string from a C :c:expr:`double`, and the Unpack routines produce a C :"
"c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) specifies "
"the number of bytes in the bytes string."
msgstr ""
#: c-api/float.rst:90
msgid ""
"On platforms that appear to use IEEE 754 formats these functions work by "
"copying bits. On other platforms, the 2-byte format is identical to the IEEE "
"754 binary16 half-precision format, the 4-byte format (32-bit) is identical "
"to the IEEE 754 binary32 single precision format, and the 8-byte format to "
"the IEEE 754 binary64 double precision format, although the packing of INFs "
"and NaNs (if such things exist on the platform) isn't handled correctly, and "
"attempting to unpack a bytes string containing an IEEE INF or NaN will raise "
"an exception."
msgstr ""
#: c-api/float.rst:99
msgid ""
"On non-IEEE platforms with more precision, or larger dynamic range, than "
"IEEE 754 supports, not all values can be packed; on non-IEEE platforms with "
"less precision, or smaller dynamic range, not all values can be unpacked. "
"What happens in such cases is partly accidental (alas)."
msgstr ""
#: c-api/float.rst:107
msgid "Pack functions"
msgstr ""
#: c-api/float.rst:109
msgid ""
"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:"
"`int` argument, non-zero if you want the bytes string in little-endian "
"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero if you "
"want big-endian format (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` "
"constant can be used to use the native endian: it is equal to ``1`` on big "
"endian processor, or ``0`` on little endian processor."
msgstr ""
#: c-api/float.rst:116
msgid ""
"Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, "
"most likely :exc:`OverflowError`)."
msgstr ""
#: c-api/float.rst:119
msgid "There are two problems on non-IEEE platforms:"
msgstr ""
#: c-api/float.rst:121
msgid "What this does is undefined if *x* is a NaN or infinity."
msgstr ""
#: c-api/float.rst:122
msgid "``-0.0`` and ``+0.0`` produce the same bytes string."
msgstr ""
#: c-api/float.rst:126
msgid "Pack a C double as the IEEE 754 binary16 half-precision format."
msgstr ""
#: c-api/float.rst:130
msgid "Pack a C double as the IEEE 754 binary32 single precision format."
msgstr ""
#: c-api/float.rst:134
msgid "Pack a C double as the IEEE 754 binary64 double precision format."
msgstr ""
#: c-api/float.rst:138
msgid "Unpack functions"
msgstr ""
#: c-api/float.rst:140
msgid ""
"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:"
"expr:`int` argument, non-zero if the bytes string is in little-endian format "
"(exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-"
"endian (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` constant can be "
"used to use the native endian: it is equal to ``1`` on big endian processor, "
"or ``0`` on little endian processor."
msgstr ""
#: c-api/float.rst:147
msgid ""
"Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:"
"`PyErr_Occurred` is true (and an exception is set, most likely :exc:"
"`OverflowError`)."
msgstr ""
#: c-api/float.rst:151
msgid ""
"Note that on a non-IEEE platform this will refuse to unpack a bytes string "
"that represents a NaN or infinity."
msgstr ""
#: c-api/float.rst:156
msgid "Unpack the IEEE 754 binary16 half-precision format as a C double."
msgstr ""
#: c-api/float.rst:160
msgid "Unpack the IEEE 754 binary32 single precision format as a C double."
msgstr ""
#: c-api/float.rst:164
msgid "Unpack the IEEE 754 binary64 double precision format as a C double."
msgstr ""
#~ msgid ""
#~ "Clear the float free list. Return the number of items that could not be "
#~ "freed."

124
c-api/frame.po Normal file
View File

@ -0,0 +1,124 @@
# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-23 00:48+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
#: c-api/frame.rst:4
msgid "Frame Objects"
msgstr ""
#: c-api/frame.rst:8
msgid "The C structure of the objects used to describe frame objects."
msgstr ""
#: c-api/frame.rst:10
msgid "There are no public members in this structure."
msgstr ""
#: c-api/frame.rst:12
msgid ""
"The members of this structure were removed from the public C API. Refer to "
"the :ref:`What's New entry <pyframeobject-3.11-hiding>` for details."
msgstr ""
#: c-api/frame.rst:17
msgid ""
"The :c:func:`PyEval_GetFrame` and :c:func:`PyThreadState_GetFrame` functions "
"can be used to get a frame object."
msgstr ""
#: c-api/frame.rst:20
msgid "See also :ref:`Reflection <reflection>`."
msgstr ""
#: c-api/frame.rst:24
msgid ""
"The type of frame objects. It is the same object as :py:class:`types."
"FrameType` in the Python layer."
msgstr ""
#: c-api/frame.rst:29
msgid ""
"Previously, this type was only available after including ``<frameobject.h>``."
msgstr ""
#: c-api/frame.rst:34
msgid "Return non-zero if *obj* is a frame object."
msgstr ""
#: c-api/frame.rst:38
msgid ""
"Previously, this function was only available after including ``<frameobject."
"h>``."
msgstr ""
#: c-api/frame.rst:43
msgid "Get the *frame* next outer frame."
msgstr ""
#: c-api/frame.rst:45
msgid ""
"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame."
msgstr ""
#: c-api/frame.rst:53
msgid "Get the *frame*'s ``f_builtins`` attribute."
msgstr ""
#: c-api/frame.rst:86
msgid "Return a :term:`strong reference`. The result cannot be ``NULL``."
msgstr ""
#: c-api/frame.rst:62
msgid "Get the *frame* code."
msgstr ""
#: c-api/frame.rst:104
msgid "Return a :term:`strong reference`."
msgstr ""
#: c-api/frame.rst:66
msgid "The result (frame code) cannot be ``NULL``."
msgstr ""
#: c-api/frame.rst:73
msgid ""
"Get the generator, coroutine, or async generator that owns this frame, or "
"``NULL`` if this frame is not owned by a generator. Does not raise an "
"exception, even if the return value is ``NULL``."
msgstr ""
#: c-api/frame.rst:77
msgid "Return a :term:`strong reference`, or ``NULL``."
msgstr ""
#: c-api/frame.rst:84
msgid "Get the *frame*'s ``f_globals`` attribute."
msgstr ""
#: c-api/frame.rst:93
msgid "Get the *frame*'s ``f_lasti`` attribute."
msgstr ""
#: c-api/frame.rst:95
msgid "Returns -1 if ``frame.f_lasti`` is ``None``."
msgstr ""
#: c-api/frame.rst:102
msgid "Get the *frame*'s ``f_locals`` attribute (:class:`dict`)."
msgstr ""
#: c-api/frame.rst:111
msgid "Return the line number that *frame* is currently executing."
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-03-23 18:39+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"
@ -52,67 +52,72 @@ msgid ""
"The function's docstring and name are retrieved from the code object. "
"*__module__* is retrieved from *globals*. The argument defaults, annotations "
"and closure are set to ``NULL``. *__qualname__* is set to the same value as "
"the function's name."
"the code object's ``co_qualname`` field."
msgstr ""
#: c-api/function.rst:44
#: c-api/function.rst:45
msgid ""
"As :c:func:`PyFunction_New`, but also allows setting the function object's "
"``__qualname__`` attribute. *qualname* should be a unicode object or "
"``NULL``; if ``NULL``, the ``__qualname__`` attribute is set to the same "
"value as its ``__name__`` attribute."
"value as the code object's ``co_qualname`` field."
msgstr ""
#: c-api/function.rst:54
#: c-api/function.rst:55
msgid "Return the code object associated with the function object *op*."
msgstr ""
#: c-api/function.rst:59
#: c-api/function.rst:60
msgid "Return the globals dictionary associated with the function object *op*."
msgstr ""
#: c-api/function.rst:64
#: c-api/function.rst:65
msgid ""
"Return the *__module__* attribute of the function object *op*. This is "
"normally a string containing the module name, but can be set to any other "
"object by Python code."
"Return a :term:`borrowed reference` to the *__module__* attribute of the "
"function object *op*. It can be *NULL*."
msgstr ""
#: c-api/function.rst:71
#: c-api/function.rst:68
msgid ""
"This is normally a string containing the module name, but can be set to any "
"other object by Python code."
msgstr ""
#: c-api/function.rst:74
msgid ""
"Return the argument default values of the function object *op*. This can be "
"a tuple of arguments or ``NULL``."
msgstr ""
#: c-api/function.rst:77
#: c-api/function.rst:80
msgid ""
"Set the argument default values for the function object *op*. *defaults* "
"must be ``Py_None`` or a tuple."
msgstr ""
#: c-api/function.rst:94 c-api/function.rst:108
#: c-api/function.rst:97 c-api/function.rst:111
msgid "Raises :exc:`SystemError` and returns ``-1`` on failure."
msgstr ""
#: c-api/function.rst:85
#: c-api/function.rst:88
msgid ""
"Return the closure associated with the function object *op*. This can be "
"``NULL`` or a tuple of cell objects."
msgstr ""
#: c-api/function.rst:91
#: c-api/function.rst:94
msgid ""
"Set the closure associated with the function object *op*. *closure* must be "
"``Py_None`` or a tuple of cell objects."
msgstr ""
#: c-api/function.rst:99
#: c-api/function.rst:102
msgid ""
"Return the annotations of the function object *op*. This can be a mutable "
"dictionary or ``NULL``."
msgstr ""
#: c-api/function.rst:105
#: c-api/function.rst:108
msgid ""
"Set the annotations for the function object *op*. *annotations* must be a "
"dictionary or ``Py_None``."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"POT-Creation-Date: 2022-03-23 18:39+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
@ -60,14 +60,31 @@ msgid ""
"initialized, it must call :c:func:`PyObject_GC_Track`."
msgstr ""
#: c-api/gcsupport.rst:37
#: c-api/gcsupport.rst:36
msgid ""
"Similarly, the deallocator for the object must conform to a similar pair of "
"rules:"
msgstr ""
#: c-api/gcsupport.rst:39
msgid ""
"Before fields which refer to other containers are invalidated, :c:func:"
"`PyObject_GC_UnTrack` must be called."
msgstr ""
#: c-api/gcsupport.rst:42
msgid ""
"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`."
msgstr ""
#: c-api/gcsupport.rst:45
msgid ""
"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least a :"
"c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from its "
"subclass or subclasses."
msgstr ""
#: c-api/gcsupport.rst:41
#: c-api/gcsupport.rst:49
msgid ""
"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call "
"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the "
@ -78,26 +95,26 @@ msgid ""
"include the :const:`Py_TPFLAGS_HAVE_GC` flag."
msgstr ""
#: c-api/gcsupport.rst:51
#: c-api/gcsupport.rst:59
msgid ""
"Analogous to :c:func:`PyObject_New` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:57
#: c-api/gcsupport.rst:65
msgid ""
"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:63
#: c-api/gcsupport.rst:71
msgid ""
"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the "
"resized object or ``NULL`` on failure. *op* must not be tracked by the "
"collector yet."
msgstr ""
#: c-api/gcsupport.rst:69
#: c-api/gcsupport.rst:77
msgid ""
"Adds the object *op* to the set of container objects tracked by the "
"collector. The collector can run at unexpected times so objects must be "
@ -106,55 +123,38 @@ msgid ""
"usually near the end of the constructor."
msgstr ""
#: c-api/gcsupport.rst:78
#: c-api/gcsupport.rst:86
msgid ""
"Returns non-zero if the object implements the garbage collector protocol, "
"otherwise returns 0."
msgstr ""
#: c-api/gcsupport.rst:81
#: c-api/gcsupport.rst:89
msgid ""
"The object cannot be tracked by the garbage collector if this function "
"returns 0."
msgstr ""
#: c-api/gcsupport.rst:86
#: c-api/gcsupport.rst:94
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* is "
"being currently tracked by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:89
#: c-api/gcsupport.rst:97
msgid "This is analogous to the Python function :func:`gc.is_tracked`."
msgstr ""
#: c-api/gcsupport.rst:96
#: c-api/gcsupport.rst:104
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* has "
"been already finalized by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:99
#: c-api/gcsupport.rst:107
msgid "This is analogous to the Python function :func:`gc.is_finalized`."
msgstr ""
#: c-api/gcsupport.rst:103
msgid ""
"Similarly, the deallocator for the object must conform to a similar pair of "
"rules:"
msgstr ""
#: c-api/gcsupport.rst:106
msgid ""
"Before fields which refer to other containers are invalidated, :c:func:"
"`PyObject_GC_UnTrack` must be called."
msgstr ""
#: c-api/gcsupport.rst:109
msgid ""
"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`."
msgstr ""
#: c-api/gcsupport.rst:114
msgid ""
"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:"
@ -239,3 +239,45 @@ msgid ""
"collector will call this method if it detects that this object is involved "
"in a reference cycle."
msgstr ""
#: c-api/gcsupport.rst:191
msgid "Controlling the Garbage Collector State"
msgstr ""
#: c-api/gcsupport.rst:193
msgid ""
"The C-API provides the following functions for controlling garbage "
"collection runs."
msgstr ""
#: c-api/gcsupport.rst:198
msgid ""
"Perform a full garbage collection, if the garbage collector is enabled. "
"(Note that :func:`gc.collect` runs it unconditionally.)"
msgstr ""
#: c-api/gcsupport.rst:201
msgid ""
"Returns the number of collected + unreachable objects which cannot be "
"collected. If the garbage collector is disabled or already collecting, "
"returns ``0`` immediately. Errors during garbage collection are passed to :"
"data:`sys.unraisablehook`. This function does not raise exceptions."
msgstr ""
#: c-api/gcsupport.rst:211
msgid ""
"Enable the garbage collector: similar to :func:`gc.enable`. Returns the "
"previous state, 0 for disabled and 1 for enabled."
msgstr ""
#: c-api/gcsupport.rst:219
msgid ""
"Disable the garbage collector: similar to :func:`gc.disable`. Returns the "
"previous state, 0 for disabled and 1 for enabled."
msgstr ""
#: c-api/gcsupport.rst:227
msgid ""
"Query the state of the garbage collector: similar to :func:`gc.isenabled`. "
"Returns the current state, 0 for disabled and 1 for enabled."
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: 2023-01-15 22:33+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"
@ -270,9 +270,16 @@ msgid ""
"h`, is::"
msgstr ""
#: c-api/import.rst:264
#: c-api/import.rst:262
msgid ""
"This pointer is initialized to point to an array of :c:type:`struct _frozen` "
"The new ``is_package`` field indicates whether the module is a package or "
"not. This replaces setting the ``size`` field to a negative value."
msgstr ""
#: c-api/import.rst:268
#, fuzzy
msgid ""
"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 "
@ -284,7 +291,7 @@ msgstr ""
"tableau. Du code tiers peut jouer avec pour construire dynamiquement une "
"collection de module figés."
#: c-api/import.rst:272
#: c-api/import.rst:276
msgid ""
"Add a single module to the existing table of built-in modules. This is a "
"convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning "
@ -294,7 +301,7 @@ msgid ""
"before :c:func:`Py_Initialize`."
msgstr ""
#: c-api/import.rst:282
#: c-api/import.rst:286
msgid ""
"Structure describing a single entry in the list of built-in modules. Each "
"of these structures gives the name and initialization function for a module "
@ -304,13 +311,20 @@ msgid ""
"structure is defined in :file:`Include/import.h` as::"
msgstr ""
#: c-api/import.rst:297
#: c-api/import.rst:301
msgid ""
"Add a collection of modules to the table of built-in modules. The *newtab* "
"array must end with a sentinel entry which contains ``NULL`` for the :attr:"
"`name` field; failure to provide the sentinel value can result in a memory "
"fault. Returns ``0`` on success or ``-1`` if insufficient memory could be "
"allocated to extend the internal table. In the event of failure, no modules "
"are added to the internal table. This should be called before :c:func:"
"are added to the internal table. This must be called before :c:func:"
"`Py_Initialize`."
msgstr ""
#: c-api/import.rst:308
msgid ""
"If Python is initialized multiple times, :c:func:`PyImport_AppendInittab` "
"or :c:func:`PyImport_ExtendInittab` must be called before each Python "
"initialization."
msgstr ""

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: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+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"
@ -158,6 +158,95 @@ msgid ""
msgstr ""
#: c-api/intro.rst:110
#, fuzzy
msgid "Return the absolute value of ``x``."
msgstr "Renvoie la valeur absolue de *x*."
#: c-api/intro.rst:116
msgid ""
"Ask the compiler to always inline a static inline function. The compiler can "
"ignore it and decides to not inline the function."
msgstr ""
#: c-api/intro.rst:119
msgid ""
"It can be used to inline performance critical static inline functions when "
"building Python in debug mode with function inlining disabled. For example, "
"MSC disables function inlining when building in debug mode."
msgstr ""
#: c-api/intro.rst:123
msgid ""
"Marking blindly a static inline function with Py_ALWAYS_INLINE can result in "
"worse performances (due to increased code size for example). The compiler is "
"usually smarter than the developer for the cost/benefit analysis."
msgstr ""
#: c-api/intro.rst:127
msgid ""
"If Python is :ref:`built in debug mode <debug-build>` (if the ``Py_DEBUG`` "
"macro is defined), the :c:macro:`Py_ALWAYS_INLINE` macro does nothing."
msgstr ""
#: c-api/intro.rst:130
msgid "It must be specified before the function return type. Usage::"
msgstr ""
#: c-api/intro.rst:138
msgid ""
"Argument must be a character or an integer in the range [-128, 127] or [0, "
"255]. This macro returns ``c`` cast to an ``unsigned char``."
msgstr ""
#: c-api/intro.rst:143
msgid ""
"Use this for deprecated declarations. The macro must be placed before the "
"symbol name."
msgstr ""
#: c-api/intro.rst:232 c-api/intro.rst:250
msgid "Example::"
msgstr "Exemple ::"
#: c-api/intro.rst:150
msgid "MSVC support was added."
msgstr ""
#: c-api/intro.rst:155
msgid ""
"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the "
"command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)."
msgstr ""
#: c-api/intro.rst:160
msgid "Return the maximum value between ``x`` and ``y``."
msgstr ""
#: c-api/intro.rst:166
msgid "Return the size of a structure (``type``) ``member`` in bytes."
msgstr ""
#: c-api/intro.rst:172
msgid "Return the minimum value between ``x`` and ``y``."
msgstr ""
#: c-api/intro.rst:178
msgid ""
"Disable inlining on a function. For example, it reduces the C stack "
"consumption: useful on LTO+PGO builds which heavily inline code (see :issue:"
"`33720`)."
msgstr ""
#: c-api/intro.rst:182
msgid "Usage::"
msgstr ""
#: c-api/intro.rst:190
msgid ""
"Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``."
msgstr ""
#: c-api/intro.rst:197
msgid ""
"Use this when you have a code path that cannot be reached by design. For "
"example, in the ``default:`` clause in a ``switch`` statement for which all "
@ -165,20 +254,20 @@ msgid ""
"where you might be tempted to put an ``assert(0)`` or ``abort()`` call."
msgstr ""
#: c-api/intro.rst:115
#: c-api/intro.rst:202
msgid ""
"In release mode, the macro helps the compiler to optimize the code, and "
"avoids a warning about unreachable code. For example, the macro is "
"implemented with ``__builtin_unreachable()`` on GCC in release mode."
msgstr ""
#: c-api/intro.rst:119
#: c-api/intro.rst:206
msgid ""
"A use for ``Py_UNREACHABLE()`` is following a call a function that never "
"returns but that is not declared :c:macro:`_Py_NO_RETURN`."
msgstr ""
#: c-api/intro.rst:122
#: c-api/intro.rst:209
msgid ""
"If a code path is very unlikely code but can be reached under exceptional "
"case, this macro must not be used. For example, under low memory condition "
@ -187,104 +276,56 @@ msgid ""
"reported to caller, :c:func:`Py_FatalError` can be used."
msgstr ""
#: c-api/intro.rst:132
#, fuzzy
msgid "Return the absolute value of ``x``."
msgstr "Renvoie la valeur absolue de *x*."
#: c-api/intro.rst:138
msgid "Return the minimum value between ``x`` and ``y``."
msgstr ""
#: c-api/intro.rst:144
msgid "Return the maximum value between ``x`` and ``y``."
msgstr ""
#: c-api/intro.rst:150
msgid ""
"Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``."
msgstr ""
#: c-api/intro.rst:157
msgid "Return the size of a structure (``type``) ``member`` in bytes."
msgstr ""
#: c-api/intro.rst:163
msgid ""
"Argument must be a character or an integer in the range [-128, 127] or [0, "
"255]. This macro returns ``c`` cast to an ``unsigned char``."
msgstr ""
#: c-api/intro.rst:168
msgid ""
"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the "
"command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)."
msgstr ""
#: c-api/intro.rst:173
#: c-api/intro.rst:219
msgid ""
"Use this for unused arguments in a function definition to silence compiler "
"warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``."
msgstr ""
#: c-api/intro.rst:180
msgid ""
"Use this for deprecated declarations. The macro must be placed before the "
"symbol name."
msgstr ""
#: c-api/intro.rst:198 c-api/intro.rst:216
msgid "Example::"
msgstr "Exemple ::"
#: c-api/intro.rst:187
msgid "MSVC support was added."
msgstr ""
#: c-api/intro.rst:192
#: c-api/intro.rst:226
msgid ""
"Creates a variable with name ``name`` that can be used in docstrings. If "
"Python is built without docstrings, the value will be empty."
msgstr ""
#: c-api/intro.rst:195
#: c-api/intro.rst:229
msgid ""
"Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python "
"without docstrings, as specified in :pep:`7`."
msgstr ""
#: c-api/intro.rst:210
#: c-api/intro.rst:244
msgid ""
"Creates a docstring for the given input string or an empty string if "
"docstrings are disabled."
msgstr ""
#: c-api/intro.rst:213
#: c-api/intro.rst:247
msgid ""
"Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python "
"without docstrings, as specified in :pep:`7`."
msgstr ""
#: c-api/intro.rst:227
#: c-api/intro.rst:262
msgid "Objects, Types and Reference Counts"
msgstr ""
#: c-api/intro.rst:231
#: c-api/intro.rst:266
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."
msgstr ""
#: c-api/intro.rst:242
#: c-api/intro.rst:277
msgid ""
"All Python objects (even Python integers) have a :dfn:`type` and a :dfn:"
"`reference count`. An object's type determines what kind of object it is (e."
@ -295,11 +336,11 @@ msgid ""
"a Python list."
msgstr ""
#: c-api/intro.rst:253
#: c-api/intro.rst:288
msgid "Reference Counts"
msgstr "Compteurs de références"
#: c-api/intro.rst:255
#: c-api/intro.rst:290
msgid ""
"The reference count is important because today's computers have a finite "
"(and often severely limited) memory size; it counts how many different "
@ -313,7 +354,7 @@ msgid ""
"for now, the solution is \"don't do that.\")"
msgstr ""
#: c-api/intro.rst:270
#: c-api/intro.rst:305
msgid ""
"Reference counts are always manipulated explicitly. The normal way is to "
"use the macro :c:func:`Py_INCREF` to increment an object's reference count "
@ -331,7 +372,7 @@ msgid ""
"reference count increment is a simple operation."
msgstr ""
#: c-api/intro.rst:284
#: c-api/intro.rst:319
msgid ""
"It is not necessary to increment an object's reference count for every "
"local variable that contains a pointer to an object. In theory, the "
@ -348,7 +389,7 @@ msgid ""
"to hold a reference to every argument for the duration of the call."
msgstr ""
#: c-api/intro.rst:298
#: c-api/intro.rst:333
msgid ""
"However, a common pitfall is to extract an object from a list and hold on to "
"it for a while without incrementing its reference count. Some other "
@ -359,7 +400,7 @@ msgid ""
"from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous."
msgstr ""
#: c-api/intro.rst:306
#: c-api/intro.rst:341
msgid ""
"A safe approach is to always use the generic operations (functions whose "
"name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or "
@ -369,11 +410,11 @@ msgid ""
"becomes second nature."
msgstr ""
#: c-api/intro.rst:316
#: c-api/intro.rst:351
msgid "Reference Count Details"
msgstr ""
#: c-api/intro.rst:318
#: c-api/intro.rst:353
msgid ""
"The reference count behavior of functions in the Python/C API is best "
"explained in terms of *ownership of references*. Ownership pertains to "
@ -386,11 +427,11 @@ msgid ""
"passing on this responsibility (usually to its caller). When a function "
"passes ownership of a reference on to its caller, the caller is said to "
"receive a *new* reference. When no ownership is transferred, the caller is "
"said to *borrow* the reference. Nothing needs to be done for a borrowed "
"reference."
"said to *borrow* the reference. Nothing needs to be done for a :term:"
"`borrowed reference`."
msgstr ""
#: c-api/intro.rst:331
#: c-api/intro.rst:366
msgid ""
"Conversely, when a calling function passes in a reference to an object, "
"there are two possibilities: the function *steals* a reference to the "
@ -399,7 +440,7 @@ msgid ""
"reference, and you are not responsible for it any longer."
msgstr ""
#: c-api/intro.rst:341
#: c-api/intro.rst:376
msgid ""
"Few functions steal references; the two notable exceptions are :c:func:"
"`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to "
@ -411,7 +452,7 @@ msgid ""
"below)::"
msgstr ""
#: c-api/intro.rst:356
#: c-api/intro.rst:391
msgid ""
"Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately "
"stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object "
@ -419,7 +460,7 @@ msgid ""
"another reference before calling the reference-stealing function."
msgstr ""
#: c-api/intro.rst:361
#: c-api/intro.rst:396
msgid ""
"Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple "
"items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to "
@ -427,13 +468,13 @@ msgid ""
"func:`PyTuple_SetItem` for tuples that you are creating yourself."
msgstr ""
#: c-api/intro.rst:366
#: c-api/intro.rst:401
msgid ""
"Equivalent code for populating a list can be written using :c:func:"
"`PyList_New` and :c:func:`PyList_SetItem`."
msgstr ""
#: c-api/intro.rst:369
#: c-api/intro.rst:404
msgid ""
"However, in practice, you will rarely use these ways of creating and "
"populating a tuple or list. There's a generic function, :c:func:"
@ -442,7 +483,7 @@ msgid ""
"be replaced by the following (which also takes care of the error checking)::"
msgstr ""
#: c-api/intro.rst:380
#: c-api/intro.rst:415
msgid ""
"It is much more common to use :c:func:`PyObject_SetItem` and friends with "
"items whose references you are only borrowing, like arguments that were "
@ -453,7 +494,7 @@ msgid ""
"sequence) to a given item::"
msgstr ""
#: c-api/intro.rst:410
#: c-api/intro.rst:445
msgid ""
"The situation is slightly different for function return values. While "
"passing a reference to most functions does not change your ownership "
@ -466,7 +507,7 @@ msgid ""
"becomes the owner of the reference)."
msgstr ""
#: c-api/intro.rst:419
#: c-api/intro.rst:454
msgid ""
"It is important to realize that whether you own a reference returned by a "
"function depends on which function you call only --- *the plumage* (the type "
@ -477,33 +518,41 @@ msgid ""
"the same arguments), you do own a reference to the returned object."
msgstr ""
#: c-api/intro.rst:431
#: c-api/intro.rst:466
msgid ""
"Here is an example of how you could write a function that computes the sum "
"of the items in a list of integers; once using :c:func:`PyList_GetItem`, "
"and once using :c:func:`PySequence_GetItem`. ::"
msgstr ""
#: c-api/intro.rst:495
#: c-api/intro.rst:530
msgid "Types"
msgstr ""
#: c-api/intro.rst:497
#: c-api/intro.rst:532
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:542
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:551
msgid "Exceptions"
msgstr "Exceptions"
#: c-api/intro.rst:511
#: c-api/intro.rst:553
msgid ""
"The Python programmer only needs to deal with exceptions if specific error "
"handling is required; unhandled exceptions are automatically propagated to "
@ -512,7 +561,7 @@ msgid ""
"stack traceback."
msgstr ""
#: c-api/intro.rst:519
#: c-api/intro.rst:561
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 +576,7 @@ msgid ""
"explicitly documented."
msgstr ""
#: c-api/intro.rst:534
#: c-api/intro.rst:576
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 +589,7 @@ msgid ""
"clears the exception state."
msgstr ""
#: c-api/intro.rst:544
#: c-api/intro.rst:586
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 +602,7 @@ msgid ""
"``sys.exc_info()`` and friends."
msgstr ""
#: c-api/intro.rst:556
#: c-api/intro.rst:598
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 +616,7 @@ msgid ""
"referenced by the stack frames in the traceback."
msgstr ""
#: c-api/intro.rst:567
#: c-api/intro.rst:609
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 +627,7 @@ msgid ""
"of the error."
msgstr ""
#: c-api/intro.rst:576
#: c-api/intro.rst:618
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 +636,11 @@ msgid ""
"why you like Python, we show the equivalent Python code::"
msgstr ""
#: c-api/intro.rst:591
#: c-api/intro.rst:633
msgid "Here is the corresponding C code, in all its glory::"
msgstr ""
#: c-api/intro.rst:643
#: c-api/intro.rst:685
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 +653,11 @@ msgid ""
"success after the final call made is successful."
msgstr ""
#: c-api/intro.rst:657
#: c-api/intro.rst:699
msgid "Embedding Python"
msgstr "Embarquer Python"
#: c-api/intro.rst:659
#: c-api/intro.rst:701
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 +665,7 @@ msgid ""
"the interpreter can only be used after the interpreter has been initialized."
msgstr ""
#: c-api/intro.rst:672
#: c-api/intro.rst:714
msgid ""
"The basic initialization function is :c:func:`Py_Initialize`. This "
"initializes the table of loaded modules, and creates the fundamental "
@ -624,15 +673,15 @@ msgid ""
"initializes the module search path (``sys.path``)."
msgstr ""
#: c-api/intro.rst:679
#: c-api/intro.rst:719
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 "
"later, it must be set explicitly with a call to ``PySys_SetArgvEx(argc, "
"argv, updatepath)`` after the call to :c:func:`Py_Initialize`."
"later, setting :c:member:`PyConfig.argv` and :c:member:`PyConfig.parse_argv` "
"must be set: see :ref:`Python Initialization Configuration <init-config>`."
msgstr ""
#: c-api/intro.rst:684
#: c-api/intro.rst:724
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 +693,7 @@ msgid ""
"on the shell command search path (the environment variable :envvar:`PATH`)."
msgstr ""
#: c-api/intro.rst:693
#: c-api/intro.rst:733
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 +704,7 @@ msgid ""
"in front of the standard path by setting :envvar:`PYTHONPATH`."
msgstr ""
#: c-api/intro.rst:708
#: c-api/intro.rst:748
msgid ""
"The embedding application can steer the search by calling "
"``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note "
@ -666,7 +715,7 @@ msgid ""
"func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)."
msgstr ""
#: c-api/intro.rst:718
#: c-api/intro.rst:758
msgid ""
"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the "
"application may want to start over (make another call to :c:func:"
@ -680,102 +729,55 @@ msgid ""
"released."
msgstr ""
#: c-api/intro.rst:732
#: c-api/intro.rst:772
msgid "Debugging Builds"
msgstr ""
#: c-api/intro.rst:734
#: c-api/intro.rst:774
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:778
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:784
msgid ""
"Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined "
"produces what is generally meant by \"a debug build\" of Python. :c:macro:"
"`Py_DEBUG` is enabled in the Unix build by adding ``--with-pydebug`` to the :"
"file:`./configure` command. It is also implied by the presence of the not-"
"Python-specific :c:macro:`_DEBUG` macro. When :c:macro:`Py_DEBUG` is "
"enabled in the Unix build, compiler optimization is disabled."
"produces what is generally meant by :ref:`a debug build of Python <debug-"
"build>`. :c:macro:`Py_DEBUG` is enabled in the Unix build by adding :option:"
"`--with-pydebug` to the :file:`./configure` command. It is also implied by "
"the presence of the not-Python-specific :c:macro:`_DEBUG` macro. When :c:"
"macro:`Py_DEBUG` is enabled in the Unix build, compiler optimization is "
"disabled."
msgstr ""
#: c-api/intro.rst:751
#: c-api/intro.rst:792
msgid ""
"In addition to the reference count debugging described below, the following "
"extra checks are performed:"
"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:754
msgid "Extra checks are added to the object allocator."
msgstr ""
#: c-api/intro.rst:756
msgid "Extra checks are added to the parser and compiler."
msgstr ""
#: c-api/intro.rst:758
#: c-api/intro.rst:795
msgid ""
"Downcasts from wide types to narrow types are checked for loss of "
"information."
msgstr ""
#: c-api/intro.rst:760
msgid ""
"A number of assertions are added to the dictionary and set implementations. "
"In addition, the set object acquires a :meth:`test_c_api` method."
msgstr ""
#: c-api/intro.rst:763
msgid "Sanity checks of the input arguments are added to frame creation."
msgstr ""
#: c-api/intro.rst:765
msgid ""
"The storage for ints is initialized with a known invalid pattern to catch "
"reference to uninitialized digits."
msgstr ""
#: c-api/intro.rst:768
msgid ""
"Low-level tracing and extra exception checking are added to the runtime "
"virtual machine."
msgstr ""
#: c-api/intro.rst:771
msgid "Extra checks are added to the memory arena implementation."
msgstr ""
#: c-api/intro.rst:773
msgid "Extra debugging is added to the thread module."
msgstr ""
#: c-api/intro.rst:775
msgid "There may be additional checks not mentioned here."
msgstr ""
#: c-api/intro.rst:777
msgid ""
"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing. When defined, "
"a circular doubly linked list of active objects is maintained by adding two "
"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:"
"`configure --with-trace-refs option <--with-trace-refs>`). When defined, a "
"circular doubly linked list of active objects is maintained by adding two "
"extra fields to every :c:type:`PyObject`. Total allocations are tracked as "
"well. Upon exit, all existing references are printed. (In interactive mode "
"this happens after every statement run by the interpreter.) Implied by :c:"
"macro:`Py_DEBUG`."
"this happens after every statement run by the interpreter.)"
msgstr ""
#: c-api/intro.rst:783
#: c-api/intro.rst:802
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-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-05-22 23:13+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"
@ -25,17 +25,25 @@ msgstr "Il existe deux fonctions dédiées à l'interaction avec les itérateurs
#: c-api/iter.rst:12
#, fuzzy
msgid ""
"Return true if the object *o* supports the iterator protocol. This function "
"always succeeds."
"Return non-zero if the object *o* can be safely passed to :c:func:"
"`PyIter_Next`, and ``0`` otherwise. This function always succeeds."
msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
#: c-api/iter.rst:18
#: c-api/iter.rst:17
#, fuzzy
msgid ""
"Return the next value from the iteration *o*. The object must be an "
"iterator (it is up to the caller to check this). If there are no remaining "
"values, returns ``NULL`` with no exception set. If an error occurs while "
"retrieving the item, returns ``NULL`` and passes along the exception."
"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
#, fuzzy
msgid ""
"Return the next value from the iterator *o*. The object must be an iterator "
"according to :c:func:`PyIter_Check` (it is up to the caller to check this). "
"If there are no remaining values, returns ``NULL`` with no exception set. If "
"an error occurs while retrieving the item, returns ``NULL`` and passes along "
"the exception."
msgstr ""
"Renvoie la valeur suivante d'une itération de *o*. L'objet doit être un "
"itérateur (c'est à l'appelant de faire cette vérification). Renvoie *NULL* "
@ -43,10 +51,35 @@ msgstr ""
"déclarant une exception si une erreur survient lors de la récupération d'un "
"élément."
#: c-api/iter.rst:23
#: c-api/iter.rst:30
msgid ""
"To write a loop which iterates over an iterator, the C code should look "
"something like this::"
msgstr ""
"Pour écrire une boucle itérant un itérateur, le code C devrait ressembler "
"à ::"
#: c-api/iter.rst:59
msgid ""
"The enum value used to represent different results of :c:func:`PyIter_Send`."
msgstr ""
#: c-api/iter.rst:66
msgid "Sends the *arg* value into the iterator *iter*. Returns:"
msgstr ""
#: c-api/iter.rst:68
msgid ""
"``PYGEN_RETURN`` if iterator returns. Return value is returned via *presult*."
msgstr ""
#: c-api/iter.rst:69
msgid ""
"``PYGEN_NEXT`` if iterator yields. Yielded value is returned via *presult*."
msgstr ""
#: c-api/iter.rst:70
msgid ""
"``PYGEN_ERROR`` if iterator has raised and exception. *presult* is set to "
"``NULL``."
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-05-22 23:13+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,7 +65,7 @@ msgid ""
msgstr ""
#: c-api/list.rst:56
msgid "Macro form of :c:func:`PyList_Size` without error checking."
msgid "Similar to :c:func:`PyList_Size`, but without error checking."
msgstr ""
#: c-api/list.rst:61
@ -77,7 +77,7 @@ msgid ""
msgstr ""
#: c-api/list.rst:69
msgid "Macro form of :c:func:`PyList_GetItem` without error checking."
msgid "Similar to :c:func:`PyList_GetItem`, but without error checking."
msgstr ""
#: c-api/list.rst:74

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: 2023-02-12 11:56+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"
@ -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 ""
@ -125,54 +125,51 @@ msgid ""
"are no digits, :exc:`ValueError` will be raised."
msgstr ""
#: c-api/long.rst:99
msgid "Convert a sequence of Unicode digits to a Python integer value."
#: c-api/long.rst:96
msgid ""
"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :"
"c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can "
"call those from C using :c:func:`PyObject_CallMethod`."
msgstr ""
#: c-api/long.rst:103
msgid ""
"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:"
"func:`PyLong_FromUnicodeObject`."
msgstr ""
#: c-api/long.rst:108
msgid ""
"Convert a sequence of Unicode digits in the string *u* to a Python integer "
"value."
msgstr ""
#: c-api/long.rst:116
#: c-api/long.rst:111
msgid ""
"Create a Python integer from the pointer *p*. The pointer value can be "
"retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`."
msgstr ""
#: c-api/long.rst:146
#: c-api/long.rst:140
msgid ""
"Return a C :c:type:`long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :"
"meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`."
"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 ""
#: c-api/long.rst:132
#: c-api/long.rst:126
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:156 c-api/long.rst:199 c-api/long.rst:222
#: c-api/long.rst:149 c-api/long.rst:190 c-api/long.rst:213
msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
#: c-api/long.rst:158 c-api/long.rst:203 c-api/long.rst:308
#: c-api/long.rst:151 c-api/long.rst:194 c-api/long.rst:298
msgid "Use :meth:`__index__` if available."
msgstr ""
#: c-api/long.rst:161 c-api/long.rst:206 c-api/long.rst:311
msgid "Using :meth:`__int__` is deprecated."
#: c-api/long.rst:154 c-api/long.rst:197 c-api/long.rst:301
msgid "This function will no longer use :meth:`__int__`."
msgstr ""
#: c-api/long.rst:151
#: c-api/long.rst:144
msgid ""
"If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:"
"`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return "
@ -180,20 +177,20 @@ msgid ""
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
#: c-api/long.rst:189
#: c-api/long.rst:181
msgid ""
"Return a C :c:type:`long long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :"
"meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`."
"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 ""
#: c-api/long.rst:175
#: c-api/long.rst:167
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:194
#: c-api/long.rst:185
msgid ""
"If the value of *obj* is greater than :const:`LLONG_MAX` or less than :const:"
"`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return "
@ -201,142 +198,141 @@ msgid ""
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
#: c-api/long.rst:216
#: c-api/long.rst:207
msgid ""
"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must "
"be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:219
#: c-api/long.rst:210
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`Py_ssize_t`."
msgstr ""
#: c-api/long.rst:231
#: c-api/long.rst:222
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:234
#: c-api/long.rst:225
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:237
#: c-api/long.rst:228
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:247
#: c-api/long.rst:238
msgid ""
"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:250
#: c-api/long.rst:241
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`size_t`."
msgstr ""
#: c-api/long.rst:253
#: c-api/long.rst:244
msgid ""
"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:262
#: c-api/long.rst:253
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:265
#: c-api/long.rst:256
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:268
#: c-api/long.rst:259
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:271
#: c-api/long.rst:262
msgid ""
"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`."
msgstr ""
#: c-api/long.rst:277
#: c-api/long.rst:268
msgid ""
"Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not "
"an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :"
"meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`."
"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:282
#: c-api/long.rst:272
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 ""
#: c-api/long.rst:285
#: c-api/long.rst:275
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:297
#: c-api/long.rst:287
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__` or :meth:`__int__` method (if present) to convert it to a :c:"
"type:`PyLongObject`."
"`__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:302
#: c-api/long.rst:292
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 ""
#: c-api/long.rst:305
#: c-api/long.rst:295
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` "
"to disambiguate."
msgstr ""
#: c-api/long.rst:317
#: c-api/long.rst:307
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:320
#: c-api/long.rst:310
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:323
#: c-api/long.rst:313
msgid ""
"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
#: c-api/long.rst:328
#: c-api/long.rst:318
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 ""
#: c-api/long.rst:333
#: c-api/long.rst:323
msgid ""
"Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
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-05-22 23:13+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: 2023-01-15 22:33+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"
@ -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 "

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-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"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-01-27 19:26+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+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"
@ -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
@ -213,7 +213,7 @@ msgid ""
"``NULL`` if not needed."
msgstr ""
#: c-api/module.rst:217 c-api/module.rst:232
#: c-api/module.rst:217 c-api/module.rst:238
msgid ""
"This function is not called if the module state was requested but is not "
"allocated yet. This is the case immediately after the module is created and "
@ -223,7 +223,7 @@ msgid ""
"``NULL``."
msgstr ""
#: c-api/module.rst:224 c-api/module.rst:239
#: c-api/module.rst:230 c-api/module.rst:245
msgid "No longer called before the module state is allocated."
msgstr ""
@ -233,55 +233,64 @@ msgid ""
"``NULL`` if not needed."
msgstr ""
#: c-api/module.rst:229
#: c-api/module.rst:224
msgid ""
"Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called "
"before a module is deallocated. For example, when reference counting is "
"enough to determine that an object is no longer used, the cyclic garbage "
"collector is not involved and :c:member:`~PyModuleDef.m_free` is called "
"directly."
msgstr ""
#: c-api/module.rst:235
msgid ""
"A function to call during deallocation of the module object, or ``NULL`` if "
"not needed."
msgstr ""
#: c-api/module.rst:243
#: c-api/module.rst:249
msgid "Single-phase initialization"
msgstr ""
#: c-api/module.rst:245
#: c-api/module.rst:251
msgid ""
"The module initialization function may create and return the module object "
"directly. This is referred to as \"single-phase initialization\", and uses "
"one of the following two module creation functions:"
msgstr ""
#: c-api/module.rst:251
#: c-api/module.rst:257
msgid ""
"Create a new module object, given the definition in *def*. This behaves "
"like :c:func:`PyModule_Create2` with *module_api_version* set to :const:"
"`PYTHON_API_VERSION`."
msgstr ""
#: c-api/module.rst:258
#: c-api/module.rst:264
msgid ""
"Create a new module object, given the definition in *def*, assuming the API "
"version *module_api_version*. If that version does not match the version of "
"the running interpreter, a :exc:`RuntimeWarning` is emitted."
msgstr ""
#: c-api/module.rst:264
#: c-api/module.rst:270
msgid ""
"Most uses of this function should be using :c:func:`PyModule_Create` "
"instead; only use this if you are sure you need it."
msgstr ""
#: c-api/module.rst:267
#: c-api/module.rst:273
msgid ""
"Before it is returned from in the initialization function, the resulting "
"module object is typically populated using functions like :c:func:"
"`PyModule_AddObject`."
"`PyModule_AddObjectRef`."
msgstr ""
#: c-api/module.rst:273
#: c-api/module.rst:279
msgid "Multi-phase initialization"
msgstr ""
#: c-api/module.rst:275
#: c-api/module.rst:281
msgid ""
"An alternate way to specify extensions is to request \"multi-phase "
"initialization\". Extension modules created this way behave more like Python "
@ -291,7 +300,7 @@ msgid ""
"methods of classes."
msgstr ""
#: c-api/module.rst:282
#: c-api/module.rst:288
msgid ""
"Unlike modules created using single-phase initialization, these modules are "
"not singletons: if the *sys.modules* entry is removed and the module is re-"
@ -304,14 +313,14 @@ msgid ""
"or individual classes created with :c:func:`PyType_FromSpec`)."
msgstr ""
#: c-api/module.rst:292
#: c-api/module.rst:298
msgid ""
"All modules created using multi-phase initialization are expected to "
"support :ref:`sub-interpreters <sub-interpreter-support>`. Making sure "
"multiple modules are independent is typically enough to achieve this."
msgstr ""
#: c-api/module.rst:296
#: c-api/module.rst:302
msgid ""
"To request multi-phase initialization, the initialization function "
"(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :"
@ -319,65 +328,65 @@ msgid ""
"instance must be initialized with the following function:"
msgstr ""
#: c-api/module.rst:303
#: c-api/module.rst:309
msgid ""
"Ensures a module definition is a properly initialized Python object that "
"correctly reports its type and reference count."
msgstr ""
#: c-api/module.rst:306
#: c-api/module.rst:312
msgid "Returns *def* cast to ``PyObject*``, or ``NULL`` if an error occurred."
msgstr ""
#: c-api/module.rst:310
#: c-api/module.rst:316
msgid ""
"The *m_slots* member of the module definition must point to an array of "
"``PyModuleDef_Slot`` structures:"
msgstr ""
#: c-api/module.rst:317
#: c-api/module.rst:323
msgid "A slot ID, chosen from the available values explained below."
msgstr ""
#: c-api/module.rst:321
#: c-api/module.rst:327
msgid "Value of the slot, whose meaning depends on the slot ID."
msgstr ""
#: c-api/module.rst:325
#: c-api/module.rst:331
msgid "The *m_slots* array must be terminated by a slot with id 0."
msgstr ""
#: c-api/module.rst:327
#: c-api/module.rst:333
msgid "The available slot types are:"
msgstr ""
#: c-api/module.rst:331
#: c-api/module.rst:337
msgid ""
"Specifies a function that is called to create the module object itself. The "
"*value* pointer of this slot must point to a function of the signature:"
msgstr ""
#: c-api/module.rst:336
#: c-api/module.rst:342
msgid ""
"The function receives a :py:class:`~importlib.machinery.ModuleSpec` "
"instance, as defined in :PEP:`451`, and the module definition. It should "
"return a new module object, or set an error and return ``NULL``."
msgstr ""
#: c-api/module.rst:341
#: c-api/module.rst:347
msgid ""
"This function should be kept minimal. In particular, it should not call "
"arbitrary Python code, as trying to import the same module again may result "
"in an infinite loop."
msgstr ""
#: c-api/module.rst:345
#: c-api/module.rst:351
msgid ""
"Multiple ``Py_mod_create`` slots may not be specified in one module "
"definition."
msgstr ""
#: c-api/module.rst:348
#: c-api/module.rst:354
msgid ""
"If ``Py_mod_create`` is not specified, the import machinery will create a "
"normal module object using :c:func:`PyModule_New`. The name is taken from "
@ -386,7 +395,7 @@ msgid ""
"through symlinks, all while sharing a single module definition."
msgstr ""
#: c-api/module.rst:354
#: c-api/module.rst:360
msgid ""
"There is no requirement for the returned object to be an instance of :c:type:"
"`PyModule_Type`. Any type can be used, as long as it supports setting and "
@ -396,7 +405,7 @@ msgid ""
"``Py_mod_create``."
msgstr ""
#: c-api/module.rst:363
#: c-api/module.rst:369
msgid ""
"Specifies a function that is called to *execute* the module. This is "
"equivalent to executing the code of a Python module: typically, this "
@ -404,21 +413,21 @@ msgid ""
"function is:"
msgstr ""
#: c-api/module.rst:370
#: c-api/module.rst:376
msgid ""
"If multiple ``Py_mod_exec`` slots are specified, they are processed in the "
"order they appear in the *m_slots* array."
msgstr ""
#: c-api/module.rst:373
#: c-api/module.rst:379
msgid "See :PEP:`489` for more details on multi-phase initialization."
msgstr ""
#: c-api/module.rst:376
#: c-api/module.rst:382
msgid "Low-level module creation functions"
msgstr ""
#: c-api/module.rst:378
#: c-api/module.rst:384
msgid ""
"The following functions are called under the hood when using multi-phase "
"initialization. They can be used directly, for example when creating module "
@ -426,14 +435,14 @@ msgid ""
"``PyModule_ExecDef`` must be called to fully initialize a module."
msgstr ""
#: c-api/module.rst:385
#: c-api/module.rst:391
msgid ""
"Create a new module object, given the definition in *module* and the "
"ModuleSpec *spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` "
"with *module_api_version* set to :const:`PYTHON_API_VERSION`."
msgstr ""
#: c-api/module.rst:393
#: c-api/module.rst:399
msgid ""
"Create a new module object, given the definition in *module* and the "
"ModuleSpec *spec*, assuming the API version *module_api_version*. If that "
@ -441,24 +450,24 @@ msgid ""
"`RuntimeWarning` is emitted."
msgstr ""
#: c-api/module.rst:400
#: c-api/module.rst:406
msgid ""
"Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` "
"instead; only use this if you are sure you need it."
msgstr ""
#: c-api/module.rst:407
#: c-api/module.rst:413
msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*."
msgstr ""
#: c-api/module.rst:413
#: c-api/module.rst:419
msgid ""
"Set the docstring for *module* to *docstring*. This function is called "
"automatically when creating a module from ``PyModuleDef``, using either "
"``PyModule_Create`` or ``PyModule_FromDefAndSpec``."
msgstr ""
#: c-api/module.rst:422
#: c-api/module.rst:428
msgid ""
"Add the functions from the ``NULL`` terminated *functions* array to "
"*module*. Refer to the :c:type:`PyMethodDef` documentation for details on "
@ -470,11 +479,11 @@ msgid ""
"``PyModule_FromDefAndSpec``."
msgstr ""
#: c-api/module.rst:434
#: c-api/module.rst:440
msgid "Support functions"
msgstr ""
#: c-api/module.rst:436
#: c-api/module.rst:442
msgid ""
"The module initialization function (if using single phase initialization) or "
"a function called from a module execution slot (if using multi-phase "
@ -482,40 +491,79 @@ msgid ""
"module state:"
msgstr ""
#: c-api/module.rst:443
#: c-api/module.rst:449
msgid ""
"Add an object to *module* as *name*. This is a convenience function which "
"can be used from the module's initialization function. This steals a "
"reference to *value* on success. Return ``-1`` on error, ``0`` on success."
"can be used from the module's initialization function."
msgstr ""
#: c-api/module.rst:449
#: c-api/module.rst:452
msgid ""
"On success, return ``0``. On error, raise an exception and return ``-1``."
msgstr ""
#: c-api/module.rst:454
msgid ""
"Return ``NULL`` if *value* is ``NULL``. It must be called with an exception "
"raised in this case."
msgstr ""
#: c-api/module.rst:506
msgid "Example usage::"
msgstr ""
#: c-api/module.rst:524
msgid ""
"The example can also be written without checking explicitly if *obj* is "
"``NULL``::"
msgstr ""
#: c-api/module.rst:540
msgid ""
"Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this "
"case, since *obj* can be ``NULL``."
msgstr ""
#: c-api/module.rst:491
msgid ""
"Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to "
"*value* on success (if it returns ``0``)."
msgstr ""
#: c-api/module.rst:494
msgid ""
"The new :c:func:`PyModule_AddObjectRef` function is recommended, since it is "
"easy to introduce reference leaks by misusing the :c:func:"
"`PyModule_AddObject` function."
msgstr ""
#: c-api/module.rst:500
msgid ""
"Unlike other functions that steal references, ``PyModule_AddObject()`` only "
"decrements the reference count of *value* **on success**."
msgstr ""
#: c-api/module.rst:452
#: c-api/module.rst:503
msgid ""
"This means that its return value must be checked, and calling code must :c:"
"func:`Py_DECREF` *value* manually on error. Example usage::"
"func:`Py_DECREF` *value* manually on error."
msgstr ""
#: c-api/module.rst:464
#: c-api/module.rst:546
msgid ""
"Add an integer constant to *module* as *name*. This convenience function "
"can be used from the module's initialization function. Return ``-1`` on "
"error, ``0`` on success."
msgstr ""
#: c-api/module.rst:471
#: c-api/module.rst:553
msgid ""
"Add a string constant to *module* as *name*. This convenience function can "
"be used from the module's initialization function. The string *value* must "
"be ``NULL``-terminated. Return ``-1`` on error, ``0`` on success."
msgstr ""
#: c-api/module.rst:478
#: c-api/module.rst:560
msgid ""
"Add an int constant to *module*. The name and the value are taken from "
"*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int "
@ -523,11 +571,11 @@ msgid ""
"error, ``0`` on success."
msgstr ""
#: c-api/module.rst:486
#: c-api/module.rst:568
msgid "Add a string constant to *module*."
msgstr ""
#: c-api/module.rst:490
#: c-api/module.rst:572
msgid ""
"Add a type object to *module*. The type object is finalized by calling "
"internally :c:func:`PyType_Ready`. The name of the type object is taken from "
@ -535,25 +583,25 @@ msgid ""
"``-1`` on error, ``0`` on success."
msgstr ""
#: c-api/module.rst:500
#: c-api/module.rst:582
msgid "Module lookup"
msgstr ""
#: c-api/module.rst:502
#: c-api/module.rst:584
msgid ""
"Single-phase initialization creates singleton modules that can be looked up "
"in the context of the current interpreter. This allows the module object to "
"be retrieved later with only a reference to the module definition."
msgstr ""
#: c-api/module.rst:506
#: c-api/module.rst:588
msgid ""
"These functions will not work on modules created using multi-phase "
"initialization, since multiple such modules can be created from a single "
"definition."
msgstr ""
#: c-api/module.rst:511
#: c-api/module.rst:593
msgid ""
"Returns the module object that was created from *def* for the current "
"interpreter. This method requires that the module object has been attached "
@ -562,18 +610,18 @@ msgid ""
"to the interpreter state yet, it returns ``NULL``."
msgstr ""
#: c-api/module.rst:518
#: c-api/module.rst:600
msgid ""
"Attaches the module object passed to the function to the interpreter state. "
"This allows the module object to be accessible via :c:func:"
"`PyState_FindModule`."
msgstr ""
#: c-api/module.rst:521
#: c-api/module.rst:603
msgid "Only effective on modules created using single-phase initialization."
msgstr ""
#: c-api/module.rst:523
#: c-api/module.rst:605
msgid ""
"Python calls ``PyState_AddModule`` automatically after importing a module, "
"so it is unnecessary (but harmless) to call it from module initialization "
@ -584,15 +632,15 @@ msgid ""
"state updates)."
msgstr ""
#: c-api/module.rst:542
#: c-api/module.rst:624
msgid "The caller must hold the GIL."
msgstr ""
#: c-api/module.rst:533
#: c-api/module.rst:615
msgid "Return 0 on success or -1 on failure."
msgstr ""
#: c-api/module.rst:539
#: c-api/module.rst:621
msgid ""
"Removes the module object created from *def* from the interpreter state. "
"Return 0 on success or -1 on failure."

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-22 23:13+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,60 +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:262
#: 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: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 "
@ -265,25 +273,26 @@ msgid ""
"`PyNumber_Index` first."
msgstr ""
#: c-api/number.rst:271
#: 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:274
#: 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:284
#: 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: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -35,7 +35,7 @@ msgid ""
msgstr ""
"Traite proprement le renvoi de :c:data:`Py_NotImplemented` depuis "
"l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de "
"référence de `NotImplemented` et le renvoie)."
"référence de ``NotImplemented`` et le renvoie)."
#: c-api/object.rst:24
msgid ""
@ -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,20 @@ 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:129
msgid ""
"This function may also be called to get the :py:attr:`~object.__dict__` of "
"the object *o*. Pass ``NULL`` for *context* when calling it. Since this "
"function may need to allocate memory for the dictionary, it may be more "
"efficient to call :c:func:`PyObject_GetAttr` when accessing an attribute on "
"the object."
msgstr ""
#: c-api/object.rst:135
msgid "On failure, returns ``NULL`` with an exception set."
msgstr ""
#: c-api/object.rst:142
msgid ""
"A generic implementation for the setter of a ``__dict__`` descriptor. This "
"implementation does not allow the dictionary to be deleted."
@ -192,7 +206,20 @@ 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:150
msgid ""
"Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. If "
"there is no ``__dict__``, return ``NULL`` without setting an exception."
msgstr ""
#: c-api/object.rst:153
msgid ""
"This function may need to allocate memory for the dictionary, so it may be "
"more efficient to call :c:func:`PyObject_GetAttr` when accessing an "
"attribute on the object."
msgstr ""
#: c-api/object.rst:160
#, fuzzy
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
@ -211,7 +238,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:170
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 +256,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:179
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 +264,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:186
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -250,7 +277,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:214
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -258,7 +285,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:198
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 +295,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:209
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -287,7 +314,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:223
#, fuzzy
msgid ""
"Compute a bytes representation of object *o*. ``NULL`` is returned on "
@ -302,7 +329,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:232
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 +337,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:254
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 +347,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:239
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 +359,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:244
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 +370,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:251
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 +379,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:258
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 +390,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:262
msgid ""
"An instance *inst* can override what is considered its class by having a :"
"attr:`__class__` attribute."
@ -371,7 +398,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:265
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 +408,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:274
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:277
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:284
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 +428,38 @@ msgid ""
"that it is not hashable."
msgstr ""
#: c-api/object.rst:273
#: c-api/object.rst:292
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:299
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:308
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:319
msgid ""
"Return true if the object *o* is of type *type* or a subtype of *type*. "
"Both parameters must be non-``NULL``."
"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:328
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,15 +467,16 @@ msgid ""
"``len(o)``."
msgstr ""
#: c-api/object.rst:316
#: c-api/object.rst:335
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 "
"finally return the default value. On error return ``-1``. This is the "
"equivalent to the Python expression ``operator.length_hint(o, default)``."
"equivalent to the Python expression ``operator.length_hint(o, "
"defaultvalue)``."
msgstr ""
#: c-api/object.rst:326
#: c-api/object.rst:345
#, fuzzy
msgid ""
"Return element of *o* corresponding to the object *key* or ``NULL`` on "
@ -458,7 +486,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:351
#, fuzzy
msgid ""
"Map the object *key* to the value *v*. Raise an exception and return ``-1`` "
@ -470,7 +498,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:359
#, fuzzy
msgid ""
"Remove the mapping for the object *key* from the object *o*. Return ``-1`` "
@ -480,7 +508,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:365
msgid ""
"This is equivalent to the Python expression ``dir(o)``, returning a "
"(possibly empty) list of strings appropriate for the object argument, or "
@ -490,7 +518,7 @@ msgid ""
"`PyErr_Occurred` will return false."
msgstr ""
#: c-api/object.rst:355
#: c-api/object.rst:374
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 "
@ -498,6 +526,15 @@ msgid ""
"object cannot be iterated."
msgstr ""
#: c-api/object.rst:382
msgid ""
"This is the equivalent to the Python expression ``aiter(o)``. Takes an :"
"class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. "
"This is typically a new iterator but if the argument is an :class:"
"`AsyncIterator`, this returns itself. Raises :exc:`TypeError` and returns "
"``NULL`` if the object cannot be iterated."
msgstr ""
#~ 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: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -25,27 +25,93 @@ msgid ""
msgstr ""
#: c-api/refcounting.rst:16
msgid "Increment the reference count for object *o*."
msgstr ""
#: c-api/refcounting.rst:18
msgid ""
"Increment the reference count for object *o*. The object must not be "
"``NULL``; if you aren't sure that it isn't ``NULL``, use :c:func:"
"`Py_XINCREF`."
"This function is usually used to convert a :term:`borrowed reference` to a :"
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
"used to create a new :term:`strong reference`."
msgstr ""
#: c-api/refcounting.rst:22
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`."
msgstr ""
#: c-api/refcounting.rst:28
msgid ""
"Increment the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect."
msgstr ""
#: c-api/refcounting.rst:28
msgid ""
"Decrement the reference count for object *o*. The object must not be "
"``NULL``; if you aren't sure that it isn't ``NULL``, use :c:func:"
"`Py_XDECREF`. If the reference count reaches zero, the object's type's "
"deallocation function (which must not be ``NULL``) is invoked."
#: c-api/refcounting.rst:31
msgid "See also :c:func:`Py_XNewRef`."
msgstr ""
#: c-api/refcounting.rst:35
#: c-api/refcounting.rst:36
msgid ""
"Create a new :term:`strong reference` to an object: increment the reference "
"count of the object *o* and return the object *o*."
msgstr ""
#: c-api/refcounting.rst:39
msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to decrement the object reference count."
msgstr ""
#: c-api/refcounting.rst:42
msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``."
msgstr ""
#: c-api/refcounting.rst:45
msgid "For example::"
msgstr ""
#: c-api/refcounting.rst:50
msgid "can be written as::"
msgstr ""
#: c-api/refcounting.rst:54
msgid "See also :c:func:`Py_INCREF`."
msgstr ""
#: c-api/refcounting.rst:61
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
msgstr ""
#: c-api/refcounting.rst:63
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
msgstr ""
#: c-api/refcounting.rst:70
msgid "Decrement the reference count for object *o*."
msgstr ""
#: c-api/refcounting.rst:72
msgid ""
"If the reference count reaches zero, the object's type's deallocation "
"function (which must not be ``NULL``) is invoked."
msgstr ""
#: c-api/refcounting.rst:75
msgid ""
"This function is usually used to delete a :term:`strong reference` before "
"exiting its scope."
msgstr ""
#: c-api/refcounting.rst:78
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`."
msgstr ""
#: c-api/refcounting.rst:83
msgid ""
"The deallocation function can cause arbitrary Python code to be invoked (e."
"g. when a class instance with a :meth:`__del__` method is deallocated). "
@ -58,14 +124,14 @@ msgid ""
"temporary variable."
msgstr ""
#: c-api/refcounting.rst:47
#: c-api/refcounting.rst:95
msgid ""
"Decrement the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect; otherwise the effect is the same as "
"for :c:func:`Py_DECREF`, and the same warning applies."
msgstr ""
#: c-api/refcounting.rst:54
#: c-api/refcounting.rst:102
msgid ""
"Decrement the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect; otherwise the effect is the same as "
@ -75,21 +141,25 @@ msgid ""
"the argument to ``NULL`` before decrementing its reference count."
msgstr ""
#: c-api/refcounting.rst:61
#: c-api/refcounting.rst:109
msgid ""
"It is a good idea to use this macro whenever decrementing the reference "
"count of an object that might be traversed during garbage collection."
msgstr ""
#: c-api/refcounting.rst:65
#: 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:70
#: 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: 2020-10-01 16:00+0200\n"
"POT-Creation-Date: 2022-03-23 18:39+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"
@ -59,35 +59,6 @@ msgid "See also :c:func:`PyThreadState_GetFrame`."
msgstr ""
#: c-api/reflection.rst:36
msgid "Get the *frame* next outer frame."
msgstr ""
#: c-api/reflection.rst:38
msgid "Return a strong reference, or ``NULL`` if *frame* has no outer frame."
msgstr ""
#: c-api/reflection.rst:60
msgid "*frame* must not be ``NULL``."
msgstr ""
#: c-api/reflection.rst:47
msgid "Get the *frame* code."
msgstr ""
#: c-api/reflection.rst:49
msgid "Return a strong reference."
msgstr ""
#: c-api/reflection.rst:51
msgid ""
"*frame* must not be ``NULL``. The result (frame code) cannot be ``NULL``."
msgstr ""
#: c-api/reflection.rst:58
msgid "Return the line number that *frame* is currently executing."
msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter"
#: c-api/reflection.rst:65
msgid ""
"Return the name of *func* if it is a function, class or instance object, "
"else the name of *func*\\s type."
@ -95,7 +66,7 @@ msgstr ""
"Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un "
"objet d'instance, sinon le nom du type de *func*"
#: c-api/reflection.rst:71
#: c-api/reflection.rst:42
msgid ""
"Return a description string, depending on the type of *func*. Return values "
"include \"()\" for functions and methods, \" constructor\", \" instance\", "
@ -104,6 +75,9 @@ 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*"
#~ msgid "Return the line number that *frame* is currently executing."
#~ msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter"

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-22 23:13+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-01-27 19:26+0100\n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"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
@ -86,19 +86,25 @@ msgid ""
"an instance of a subtype. This function always succeeds."
msgstr ""
#: c-api/set.rst:71
#: c-api/set.rst:70
msgid ""
"Return true if *p* is a :class:`set` object but not an instance of a "
"subtype. This function always succeeds."
msgstr ""
#: c-api/set.rst:77
msgid ""
"Return true if *p* is a :class:`set` object or a :class:`frozenset` object "
"but not an instance of a subtype. This function always succeeds."
msgstr ""
#: c-api/set.rst:77
#: c-api/set.rst:83
msgid ""
"Return true if *p* is a :class:`frozenset` object but not an instance of a "
"subtype. This function always succeeds."
msgstr ""
#: c-api/set.rst:83
#: c-api/set.rst:89
msgid ""
"Return a new :class:`set` containing objects returned by the *iterable*. "
"The *iterable* may be ``NULL`` to create a new empty set. Return the new "
@ -107,7 +113,7 @@ msgid ""
"(``c=set(s)``)."
msgstr ""
#: c-api/set.rst:92
#: c-api/set.rst:98
msgid ""
"Return a new :class:`frozenset` containing objects returned by the "
"*iterable*. The *iterable* may be ``NULL`` to create a new empty frozenset. "
@ -115,24 +121,24 @@ msgid ""
"`TypeError` if *iterable* is not actually iterable."
msgstr ""
#: c-api/set.rst:98
#: c-api/set.rst:104
msgid ""
"The following functions and macros are available for instances of :class:"
"`set` or :class:`frozenset` or instances of their subtypes."
msgstr ""
#: c-api/set.rst:106
#: c-api/set.rst:112
msgid ""
"Return the length of a :class:`set` or :class:`frozenset` object. Equivalent "
"to ``len(anyset)``. Raises a :exc:`PyExc_SystemError` if *anyset* is not a :"
"class:`set`, :class:`frozenset`, or an instance of a subtype."
msgstr ""
#: c-api/set.rst:113
#: c-api/set.rst:119
msgid "Macro form of :c:func:`PySet_Size` without error checking."
msgstr ""
#: c-api/set.rst:118
#: c-api/set.rst:124
msgid ""
"Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is "
"encountered. Unlike the Python :meth:`__contains__` method, this function "
@ -142,10 +148,10 @@ msgid ""
"or an instance of a subtype."
msgstr ""
#: c-api/set.rst:127
#: 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 "
@ -153,13 +159,13 @@ msgid ""
"`set` or its subtype."
msgstr ""
#: c-api/set.rst:136
#: c-api/set.rst:142
msgid ""
"The following functions are available for instances of :class:`set` or its "
"subtypes but not for instances of :class:`frozenset` or its subtypes."
msgstr ""
#: c-api/set.rst:142
#: c-api/set.rst:148
msgid ""
"Return ``1`` if found and removed, ``0`` if not found (no action taken), and "
"``-1`` if an error is encountered. Does not raise :exc:`KeyError` for "
@ -170,7 +176,7 @@ msgid ""
"subtype."
msgstr ""
#: c-api/set.rst:152
#: c-api/set.rst:158
msgid ""
"Return a new reference to an arbitrary object in the *set*, and removes the "
"object from the *set*. Return ``NULL`` on failure. Raise :exc:`KeyError` "
@ -178,6 +184,6 @@ msgid ""
"of :class:`set` or its subtype."
msgstr ""
#: c-api/set.rst:160
#: c-api/set.rst:166
msgid "Empty an existing set of all elements."
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: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2018-10-04 12:26+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -15,83 +15,291 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: c-api/stable.rst:7
msgid "Stable Application Binary Interface"
msgstr "ABI Stable"
msgid "C API Stability"
msgstr ""
#: c-api/stable.rst:9
#, fuzzy
msgid ""
"Traditionally, the C API of Python will change with every release. Most "
"changes will be source-compatible, typically by only adding API, rather than "
"changing existing API or removing API (although some interfaces do get "
"removed after being deprecated first)."
"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. "
"While the C API will change with every minor release (e.g. from 3.9 to "
"3.10), most changes will be source-compatible, typically by only adding new "
"API. Changing existing API or removing API is only done after a deprecation "
"period or to fix serious issues."
msgstr ""
"L'API C de Python change à chaque version. La majorité de ces changement "
"n'affecte cependant pas la compatibilité du code source. Typiquement, des "
"API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines "
"interfaces puissent être supprimées, après avoir d'abord été dépréciées)."
#: c-api/stable.rst:14
#: c-api/stable.rst:15
msgid ""
"Unfortunately, the API compatibility does not extend to binary compatibility "
"(the ABI). The reason is primarily the evolution of struct definitions, "
"where addition of a new field, or changing the type of a field, might not "
"break the API, but can break the ABI. As a consequence, extension modules "
"need to be recompiled for every Python release (although an exception is "
"possible on Unix when none of the affected interfaces are used). In "
"addition, on Windows, extension modules link with a specific pythonXY.dll "
"and need to be recompiled to link with a newer one."
"CPython's Application Binary Interface (ABI) is forward- and backwards-"
"compatible across a minor release (if these are compiled the same way; see :"
"ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 will "
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.10.x."
msgstr ""
"Malheureusement, la compatibilité de l'API ne s'étend pas à une "
"compatibilité binaire (l'ABI). L'évolution des structures en est la raison "
"principale : l'ajout de nouveaux attributs, ou le changement du type d'un "
"attribut peut ne pas casser l'API mais casser l'ABI. Par conséquent, les "
"modules d'extension doivent être recompilés à chaque nouvelle version de "
"Python (ce n'est exceptionnellement pas nécessaire sur Unix, si aucune des "
"interfaces modifiées n'est utilisée). De plus, sous Windows, les modules "
"d'extension sont liés à un *pythonXY.dll* spécifique, ils est donc "
"nécessaire de les recompiler pour les lier au nouveau DLL."
#: c-api/stable.rst:23
#: c-api/stable.rst:21
msgid ""
"Since Python 3.2, a subset of the API has been declared to guarantee a "
"stable ABI. Extension modules wishing to use this API (called \"limited API"
"\") need to define ``Py_LIMITED_API``. A number of interpreter details then "
"become hidden from the extension module; in return, a module is built that "
"works on any 3.x version (x>=2) without recompilation."
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases."
msgstr ""
"Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera une "
"ABI stable. Les modules d'extension souhaitant utiliser cette API (Appellée "
"\"API limitée\") doivent définir ``Py_LIMITED_API``. Des spécificités de "
"l'interpréteur sont alors cachées au module, en contrepartie le module "
"devient compatible avec toutes les versions de Python 3.x (x>=2) sans "
"recompilation."
#: c-api/stable.rst:29
msgid ""
"In some cases, the stable ABI needs to be extended with new functions. "
"Extension modules wishing to use these new APIs need to set "
"``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:"
"`apiabiversion`) of the minimum Python version they want to support (e.g. "
"``0x03030000`` for Python 3.3). Such modules will work on all subsequent "
"Python releases, but fail to load (because of missing symbols) on the older "
"releases."
msgstr ""
"Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de "
"nouvelles fonctions. Les modules d'extension souhaitant utiliser ces "
"nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur "
"``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python qu'ils "
"souhaitent supporter (voir :ref:`apiabiversion`, par exemple ``0x03030000`` "
"pour Python 3.3). De tels modules fonctionneront dans toutes les versions "
"ultérieures de Python, mais ne pourront pas se charger (dû à des symboles "
"manquants) sur les versions plus anciennes."
#: c-api/stable.rst:26
msgid "Stable Application Binary Interface"
msgstr "ABI Stable"
#: c-api/stable.rst:36
#: c-api/stable.rst:28
msgid ""
"As of Python 3.2, the set of functions available to the limited API is "
"documented in :pep:`384`. In the C API documentation, API elements that are "
"not part of the limited API are marked as \"Not part of the limited API.\""
"Python 3.2 introduced the *Limited API*, a subset of Python's C API. "
"Extensions that only use the Limited API can be compiled once and work with "
"multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below <stable-abi-list>`."
msgstr ""
"Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée est "
"documentée dans la :pep:`384`. Dans la documentation de l'API C, les "
"éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant pas "
"partie de l'API limitée\" (*\"Not part of the limited API\"*)."
#: c-api/stable.rst:33
msgid ""
"To enable this, Python provides a *Stable ABI*: a set of symbols that will "
"remain compatible across Python 3.x versions. The Stable ABI contains "
"symbols exposed in the Limited API, but also other ones for example, "
"functions necessary to support older versions of the Limited API."
msgstr ""
#: c-api/stable.rst:38
msgid ""
"(For simplicity, this document talks about *extensions*, but the Limited API "
"and Stable ABI work the same way for all uses of the API for example, "
"embedding Python.)"
msgstr ""
#: c-api/stable.rst:44
msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version."
msgstr ""
#: c-api/stable.rst:47
msgid ""
"Define ``Py_LIMITED_API`` to the value of :c:data:`PY_VERSION_HEX` "
"corresponding to the lowest Python version your extension supports. The "
"extension will work without recompilation with all Python 3 releases from "
"the specified one onward, and can use Limited API introduced up to that "
"version."
msgstr ""
#: c-api/stable.rst:53
msgid ""
"Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum "
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions."
msgstr ""
#: c-api/stable.rst:57
msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
msgstr ""
#: c-api/stable.rst:60
msgid ""
"On Windows, extensions that use the Stable ABI should be linked against "
"``python3.dll`` rather than a version-specific library such as ``python39."
"dll``."
msgstr ""
#: c-api/stable.rst:64
msgid ""
"On some platforms, Python will look for and load shared library files named "
"with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such "
"extensions conform to a Stable ABI. The user (or their packaging tools) need "
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python."
msgstr ""
#: c-api/stable.rst:71
msgid ""
"All functions in the Stable ABI are present as functions in Python's shared "
"library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor."
msgstr ""
#: c-api/stable.rst:77
msgid "Limited API Scope and Performance"
msgstr ""
#: c-api/stable.rst:79
msgid ""
"The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty."
msgstr ""
#: c-api/stable.rst:82
msgid ""
"For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro "
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
"can rely on version-specific implementation details of the list object."
msgstr ""
#: c-api/stable.rst:87
msgid ""
"Without ``Py_LIMITED_API`` defined, some C API functions are inlined or "
"replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, "
"allowing stability as Python's data structures are improved, but possibly "
"reducing performance."
msgstr ""
#: c-api/stable.rst:92
msgid ""
"By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile "
"a Limited API extension with a version-specific ABI. This can improve "
"performance for that Python version, but will limit compatibility. Compiling "
"with ``Py_LIMITED_API`` will then yield an extension that can be distributed "
"where a version-specific one is not available for example, for prereleases "
"of an upcoming Python version."
msgstr ""
#: c-api/stable.rst:101
msgid "Limited API Caveats"
msgstr ""
#: c-api/stable.rst:103
msgid ""
"Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee "
"that code conforms to the Limited API or the Stable ABI. ``Py_LIMITED_API`` "
"only covers definitions, but an API also includes other issues, such as "
"expected semantics."
msgstr ""
#: c-api/stable.rst:108
msgid ""
"One issue that ``Py_LIMITED_API`` does not guard against is calling a "
"function with arguments that are invalid in a lower Python version. For "
"example, consider a function that starts accepting ``NULL`` for an argument. "
"In Python 3.9, ``NULL`` now selects a default behavior, but in Python 3.8, "
"the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs."
msgstr ""
#: c-api/stable.rst:115
msgid ""
"Another issue is that some struct fields are currently not hidden when "
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
msgstr ""
#: c-api/stable.rst:118
msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version."
msgstr ""
#: c-api/stable.rst:121
msgid ""
"We also recommend reviewing documentation of all used API to check if it is "
"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a "
"few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)."
msgstr ""
#: c-api/stable.rst:126
msgid ""
"Also note that the Limited API is not necessarily stable: compiling with "
"``Py_LIMITED_API`` with Python 3.8 means that the extension will run with "
"Python 3.12, but it will not necessarily *compile* with Python 3.12. In "
"particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable."
msgstr ""
#: c-api/stable.rst:136
msgid "Platform Considerations"
msgstr ""
#: c-api/stable.rst:138
msgid ""
"ABI stability depends not only on Python, but also on the compiler used, "
"lower-level libraries and compiler options. For the purposes of the Stable "
"ABI, these details define a “platform”. They usually depend on the OS type "
"and processor architecture"
msgstr ""
#: c-api/stable.rst:143
msgid ""
"It is the responsibility of each particular distributor of Python to ensure "
"that all Python versions on a particular platform are built in a way that "
"does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors."
msgstr ""
#: c-api/stable.rst:153
msgid "Contents of Limited API"
msgstr ""
#: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:"
msgstr ""
#~ msgid ""
#~ "Unfortunately, the API compatibility does not extend to binary "
#~ "compatibility (the ABI). The reason is primarily the evolution of struct "
#~ "definitions, where addition of a new field, or changing the type of a "
#~ "field, might not break the API, but can break the ABI. As a consequence, "
#~ "extension modules need to be recompiled for every Python release "
#~ "(although an exception is possible on Unix when none of the affected "
#~ "interfaces are used). In addition, on Windows, extension modules link "
#~ "with a specific pythonXY.dll and need to be recompiled to link with a "
#~ "newer one."
#~ msgstr ""
#~ "Malheureusement, la compatibilité de l'API ne s'étend pas à une "
#~ "compatibilité binaire (l'ABI). L'évolution des structures en est la "
#~ "raison principale : l'ajout de nouveaux attributs, ou le changement du "
#~ "type d'un attribut peut ne pas casser l'API mais casser l'ABI. Par "
#~ "conséquent, les modules d'extension doivent être recompilés à chaque "
#~ "nouvelle version de Python (ce n'est exceptionnellement pas nécessaire "
#~ "sur Unix, si aucune des interfaces modifiées n'est utilisée). De plus, "
#~ "sous Windows, les modules d'extension sont liés à un *pythonXY.dll* "
#~ "spécifique, ils est donc nécessaire de les recompiler pour les lier au "
#~ "nouveau DLL."
#~ msgid ""
#~ "Since Python 3.2, a subset of the API has been declared to guarantee a "
#~ "stable ABI. Extension modules wishing to use this API (called \"limited "
#~ "API\") need to define ``Py_LIMITED_API``. A number of interpreter details "
#~ "then become hidden from the extension module; in return, a module is "
#~ "built that works on any 3.x version (x>=2) without recompilation."
#~ msgstr ""
#~ "Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera "
#~ "une ABI stable. Les modules d'extension souhaitant utiliser cette API "
#~ "(Appellée \"API limitée\") doivent définir ``Py_LIMITED_API``. Des "
#~ "spécificités de l'interpréteur sont alors cachées au module, en "
#~ "contrepartie le module devient compatible avec toutes les versions de "
#~ "Python 3.x (x>=2) sans recompilation."
#~ msgid ""
#~ "In some cases, the stable ABI needs to be extended with new functions. "
#~ "Extension modules wishing to use these new APIs need to set "
#~ "``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:"
#~ "`apiabiversion`) of the minimum Python version they want to support (e.g. "
#~ "``0x03030000`` for Python 3.3). Such modules will work on all subsequent "
#~ "Python releases, but fail to load (because of missing symbols) on the "
#~ "older releases."
#~ msgstr ""
#~ "Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de "
#~ "nouvelles fonctions. Les modules d'extension souhaitant utiliser ces "
#~ "nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur "
#~ "``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python "
#~ "qu'ils souhaitent supporter (voir :ref:`apiabiversion`, par exemple "
#~ "``0x03030000`` pour Python 3.3). De tels modules fonctionneront dans "
#~ "toutes les versions ultérieures de Python, mais ne pourront pas se "
#~ "charger (dû à des symboles manquants) sur les versions plus anciennes."
#~ msgid ""
#~ "As of Python 3.2, the set of functions available to the limited API is "
#~ "documented in :pep:`384`. In the C API documentation, API elements that "
#~ "are not part of the limited API are marked as \"Not part of the limited "
#~ "API.\""
#~ msgstr ""
#~ "Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée "
#~ "est documentée dans la :pep:`384`. Dans la documentation de l'API C, les "
#~ "éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant "
#~ "pas partie de l'API limitée\" (*\"Not part of the limited API\"*)."

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: 2023-01-15 22:33+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"
@ -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 ""
@ -81,191 +81,204 @@ msgstr ""
#: c-api/structures.rst:67
msgid ""
"This macro is used to access the :attr:`ob_type` member of a Python object. "
"It expands to::"
"Test if the *x* object is the *y* object, the same as ``x is y`` in Python."
msgstr ""
#: c-api/structures.rst:75
#: c-api/structures.rst:74
msgid ""
"Test if an object is the ``None`` singleton, the same as ``x is None`` in "
"Python."
msgstr ""
#: c-api/structures.rst:82
msgid ""
"Test if an object is the ``True`` singleton, the same as ``x is True`` in "
"Python."
msgstr ""
#: c-api/structures.rst:90
msgid ""
"Test if an object is the ``False`` singleton, the same as ``x is False`` in "
"Python."
msgstr ""
#: c-api/structures.rst:98
msgid "Get the type of the Python object *o*."
msgstr ""
#: c-api/structures.rst:100
msgid "Return a :term:`borrowed reference`."
msgstr ""
#: c-api/structures.rst:102
msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type."
msgstr ""
#: c-api/structures.rst:104
msgid ""
":c:func:`Py_TYPE()` is changed to an inline static function. The parameter "
"type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: c-api/structures.rst:111
msgid ""
"Return non-zero if the object *o* type is *type*. Return zero otherwise. "
"Equivalent to: ``Py_TYPE(o) == type``."
msgstr ""
#: c-api/structures.rst:83
#: c-api/structures.rst:119
msgid "Set the object *o* type to *type*."
msgstr ""
#: c-api/structures.rst:90
msgid ""
"This macro is used to access the :attr:`ob_refcnt` member of a Python "
"object. It expands to::"
#: c-api/structures.rst:126
msgid "Get the reference count of the Python object *o*."
msgstr ""
#: c-api/structures.rst:99
#: c-api/structures.rst:128
msgid ""
"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count."
msgstr ""
#: c-api/structures.rst:130
msgid "The parameter type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: c-api/structures.rst:133
msgid ":c:func:`Py_REFCNT()` is changed to the inline static function."
msgstr ""
#: c-api/structures.rst:139
msgid "Set the object *o* reference counter to *refcnt*."
msgstr ""
#: c-api/structures.rst:106
msgid ""
"This macro is used to access the :attr:`ob_size` member of a Python object. "
"It expands to::"
#: c-api/structures.rst:146
msgid "Get the size of the Python object *o*."
msgstr ""
#: c-api/structures.rst:114
#: c-api/structures.rst:148
msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size."
msgstr ""
#: c-api/structures.rst:150
msgid ""
":c:func:`Py_SIZE()` is changed to an inline static function. The parameter "
"type is no longer :c:expr:`const PyVarObject*`."
msgstr ""
#: c-api/structures.rst:157
msgid "Set the object *o* size to *size*."
msgstr ""
#: c-api/structures.rst:121
#: c-api/structures.rst:164
msgid ""
"This is a macro which expands to initialization values for a new :c:type:"
"`PyObject` type. This macro expands to::"
msgstr ""
#: c-api/structures.rst:130
#: c-api/structures.rst:173
msgid ""
"This is a macro which expands to initialization values for a new :c:type:"
"`PyVarObject` type, including the :attr:`ob_size` field. This macro expands "
"to::"
msgstr ""
#: c-api/structures.rst:139
#: c-api/structures.rst:182
msgid "Implementing functions and methods"
msgstr ""
#: c-api/structures.rst:143
#: c-api/structures.rst:186
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 "
"reference."
msgstr ""
#: c-api/structures.rst:150
#: c-api/structures.rst:193
msgid "The function signature is::"
msgstr ""
#: c-api/structures.rst:157
#: c-api/structures.rst:200
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :const:`METH_VARARGS | METH_KEYWORDS`. The function signature is::"
msgstr ""
#: c-api/structures.rst:168
#: c-api/structures.rst:211
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :const:`METH_FASTCALL`. The function signature is::"
msgstr ""
#: c-api/structures.rst:178
#: c-api/structures.rst:221
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :const:`METH_FASTCALL | METH_KEYWORDS`. The function signature is::"
msgstr ""
#: c-api/structures.rst:189
#: c-api/structures.rst:232
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. The function "
"signature is::"
msgstr ""
#: c-api/structures.rst:204
#: c-api/structures.rst:247
msgid ""
"Structure used to describe a method of an extension type. This structure "
"has four fields:"
msgstr ""
#: c-api/structures.rst:364 c-api/structures.rst:445
msgid "Field"
msgstr "Champ"
#: c-api/structures.rst:364 c-api/structures.rst:445
msgid "C Type"
msgstr "Type C"
#: c-api/structures.rst:364 c-api/structures.rst:445
msgid "Meaning"
msgstr "Signification"
#: c-api/structures.rst:210
msgid ":attr:`ml_name`"
msgstr ""
#: c-api/structures.rst:218 c-api/structures.rst:379 c-api/structures.rst:447
#: c-api/structures.rst:455
msgid "const char \\*"
msgstr ""
#: c-api/structures.rst:210
#: c-api/structures.rst:252
msgid "name of the method"
msgstr ""
#: c-api/structures.rst:212
msgid ":attr:`ml_meth`"
msgstr ""
#: c-api/structures.rst:212
msgid "PyCFunction"
msgstr "PyCFunction"
#: c-api/structures.rst:212
#: c-api/structures.rst:256
msgid "pointer to the C implementation"
msgstr ""
#: c-api/structures.rst:215
msgid ":attr:`ml_flags`"
#: c-api/structures.rst:260
msgid "flags bits indicating how the call should be constructed"
msgstr ""
#: c-api/structures.rst:368 c-api/structures.rst:391
msgid "int"
msgstr "*int*"
#: c-api/structures.rst:215
msgid "flag bits indicating how the call should be constructed"
msgstr ""
#: c-api/structures.rst:218
msgid ":attr:`ml_doc`"
msgstr ""
#: c-api/structures.rst:379
#: c-api/structures.rst:426
msgid "points to the contents of the docstring"
msgstr ""
#: c-api/structures.rst:222
#: c-api/structures.rst:266
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 "
"The :c:member:`ml_meth` is a C function pointer. The functions may be of "
"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 ""
#: c-api/structures.rst:229
#: c-api/structures.rst:273
msgid ""
"The :attr:`ml_flags` field is a bitfield which can include the following "
"The :c:member:`ml_flags` field is a bitfield which can include the following "
"flags. The individual flags indicate either a calling convention or a "
"binding convention."
msgstr ""
#: c-api/structures.rst:233
#: c-api/structures.rst:277
msgid "There are these calling conventions:"
msgstr ""
#: c-api/structures.rst:237
#: c-api/structures.rst:281
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:"
"func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`."
msgstr ""
#: c-api/structures.rst:247
#: c-api/structures.rst:291
msgid ""
"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. "
"The function expects three parameters: *self*, *args*, *kwargs* where "
@ -274,46 +287,46 @@ msgid ""
"using :c:func:`PyArg_ParseTupleAndKeywords`."
msgstr ""
#: c-api/structures.rst:256
#: c-api/structures.rst:300
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 ""
#: c-api/structures.rst:279
msgid "This is not part of the :ref:`limited API <stable>`."
#: c-api/structures.rst:310
msgid "``METH_FASTCALL`` is now part of the stable ABI."
msgstr ""
#: c-api/structures.rst:269
#: c-api/structures.rst:315
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:286
#: c-api/structures.rst:330
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:290
#: c-api/structures.rst:334
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:299
#: c-api/structures.rst:343
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 "
@ -322,16 +335,22 @@ msgid ""
"the second parameter will be ``NULL``."
msgstr ""
#: c-api/structures.rst:308
#: c-api/structures.rst:349
msgid ""
"The function must have 2 parameters. Since the second parameter is unused, :"
"c:macro:`Py_UNUSED` can be used to prevent a compiler warning."
msgstr ""
#: c-api/structures.rst:355
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:314
#: c-api/structures.rst:361
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 "
@ -339,27 +358,27 @@ msgid ""
"any given method."
msgstr ""
#: c-api/structures.rst:324
#: c-api/structures.rst:371
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:334
#: c-api/structures.rst:381
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:338
#: c-api/structures.rst:385
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:344
#: c-api/structures.rst:391
msgid ""
"The method will be loaded in place of existing definitions. Without "
"*METH_COEXIST*, the default is to skip repeated definitions. Since slot "
@ -372,193 +391,213 @@ msgid ""
"calls."
msgstr ""
#: c-api/structures.rst:356
#: c-api/structures.rst:403
msgid "Accessing attributes of extension types"
msgstr ""
#: c-api/structures.rst:360
#: c-api/structures.rst:407
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member. Its fields are:"
msgstr ""
#: c-api/structures.rst:366
#: c-api/structures.rst:507
msgid "Field"
msgstr "Champ"
#: c-api/structures.rst:507
msgid "C Type"
msgstr "Type C"
#: c-api/structures.rst:507
msgid "Meaning"
msgstr "Signification"
#: c-api/structures.rst:413
msgid ":attr:`name`"
msgstr ":attr:`name`"
#: c-api/structures.rst:426 c-api/structures.rst:509 c-api/structures.rst:517
msgid "const char \\*"
msgstr ""
#: c-api/structures.rst:366
#: c-api/structures.rst:413
msgid "name of the member"
msgstr ""
#: c-api/structures.rst:368
#: c-api/structures.rst:415
msgid ":attr:`!type`"
msgstr ""
msgstr ":attr:`!type`"
#: c-api/structures.rst:368
#: c-api/structures.rst:422 c-api/structures.rst:438
msgid "int"
msgstr "*int*"
#: c-api/structures.rst:415
msgid "the type of the member in the C struct"
msgstr ""
#: c-api/structures.rst:371
#: c-api/structures.rst:418
msgid ":attr:`offset`"
msgstr ""
msgstr ":attr:`offset`"
#: c-api/structures.rst:407
#: c-api/structures.rst:454
msgid "Py_ssize_t"
msgstr ""
#: c-api/structures.rst:371
#: c-api/structures.rst:418
msgid ""
"the offset in bytes that the member is located on the type's object struct"
msgstr ""
#: c-api/structures.rst:375
#: c-api/structures.rst:422
msgid ":attr:`flags`"
msgstr ""
msgstr ":attr:`flags`"
#: c-api/structures.rst:375
#: c-api/structures.rst:422
msgid "flag bits indicating if the field should be read-only or writable"
msgstr ""
#: c-api/structures.rst:379
#: c-api/structures.rst:426
msgid ":attr:`doc`"
msgstr ""
msgstr ":attr:`doc`"
#: c-api/structures.rst:383
#: c-api/structures.rst:430
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:388
#: c-api/structures.rst:435
msgid "Macro name"
msgstr ""
#: c-api/structures.rst:388
#: c-api/structures.rst:435
msgid "C type"
msgstr "Type C"
#: c-api/structures.rst:390
#: c-api/structures.rst:437
msgid "T_SHORT"
msgstr ""
#: c-api/structures.rst:390
#: c-api/structures.rst:437
msgid "short"
msgstr ""
#: c-api/structures.rst:391
#: c-api/structures.rst:438
msgid "T_INT"
msgstr ""
#: c-api/structures.rst:392
#: c-api/structures.rst:439
msgid "T_LONG"
msgstr ""
#: c-api/structures.rst:392
#: c-api/structures.rst:439
msgid "long"
msgstr ""
#: c-api/structures.rst:393
#: c-api/structures.rst:440
msgid "T_FLOAT"
msgstr ""
#: c-api/structures.rst:393
#: c-api/structures.rst:440
msgid "float"
msgstr "*float*"
#: c-api/structures.rst:394
#: c-api/structures.rst:441
msgid "T_DOUBLE"
msgstr ""
#: c-api/structures.rst:394
#: c-api/structures.rst:441
msgid "double"
msgstr "double"
#: c-api/structures.rst:395
#: c-api/structures.rst:442
msgid "T_STRING"
msgstr ""
#: c-api/structures.rst:396
#: c-api/structures.rst:443
msgid "T_OBJECT"
msgstr ""
#: c-api/structures.rst:397
#: c-api/structures.rst:444
msgid "PyObject \\*"
msgstr "PyObject \\*"
#: c-api/structures.rst:397
#: c-api/structures.rst:444
msgid "T_OBJECT_EX"
msgstr ""
#: c-api/structures.rst:398
#: c-api/structures.rst:445
msgid "T_CHAR"
msgstr ""
#: c-api/structures.rst:399 c-api/structures.rst:404
#: c-api/structures.rst:446 c-api/structures.rst:451
msgid "char"
msgstr "char"
#: c-api/structures.rst:399
#: c-api/structures.rst:446
msgid "T_BYTE"
msgstr ""
#: c-api/structures.rst:400
#: c-api/structures.rst:447
msgid "T_UBYTE"
msgstr ""
#: c-api/structures.rst:400
#: c-api/structures.rst:447
msgid "unsigned char"
msgstr "``unsigned char``"
#: c-api/structures.rst:401
#: c-api/structures.rst:448
msgid "T_UINT"
msgstr ""
#: c-api/structures.rst:401
#: c-api/structures.rst:448
msgid "unsigned int"
msgstr "``unsigned int``"
#: c-api/structures.rst:402
#: c-api/structures.rst:449
msgid "T_USHORT"
msgstr ""
#: c-api/structures.rst:402
#: c-api/structures.rst:449
msgid "unsigned short"
msgstr "``unsigned short``"
#: c-api/structures.rst:403
#: c-api/structures.rst:450
msgid "T_ULONG"
msgstr ""
#: c-api/structures.rst:403
#: c-api/structures.rst:450
msgid "unsigned long"
msgstr "``unsigned long``"
#: c-api/structures.rst:404
#: c-api/structures.rst:451
msgid "T_BOOL"
msgstr ""
#: c-api/structures.rst:405
#: c-api/structures.rst:452
msgid "T_LONGLONG"
msgstr ""
#: c-api/structures.rst:405
#: c-api/structures.rst:452
msgid "long long"
msgstr ""
#: c-api/structures.rst:406
#: c-api/structures.rst:453
msgid "T_ULONGLONG"
msgstr ""
#: c-api/structures.rst:406
#: c-api/structures.rst:453
msgid "unsigned long long"
msgstr "``unsigned long long``"
#: c-api/structures.rst:407
#: c-api/structures.rst:454
msgid "T_PYSSIZET"
msgstr ""
#: c-api/structures.rst:410
#: c-api/structures.rst:457
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:"
@ -568,7 +607,7 @@ msgid ""
"than :c:macro:`T_OBJECT`."
msgstr ""
#: c-api/structures.rst:417
#: c-api/structures.rst:464
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:"
@ -577,7 +616,7 @@ msgid ""
"are set to ``NULL``)."
msgstr ""
#: c-api/structures.rst:425
#: c-api/structures.rst:472
msgid ""
"Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), "
"``PyMemberDef`` may contain definitions for the special members "
@ -588,87 +627,115 @@ msgid ""
"``T_PYSSIZET`` and ``READONLY``, for example::"
msgstr ""
#: c-api/structures.rst:441
#: c-api/structures.rst:489
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:496
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:503
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:447
#: c-api/structures.rst:509
msgid "name"
msgstr ""
#: c-api/structures.rst:447
#: c-api/structures.rst:509
msgid "attribute name"
msgstr ""
#: c-api/structures.rst:449
#: c-api/structures.rst:511
msgid "get"
msgstr ""
#: c-api/structures.rst:449
#: c-api/structures.rst:511
msgid "getter"
msgstr ""
#: c-api/structures.rst:449
msgid "C Function to get the attribute"
#: c-api/structures.rst:511
msgid "C function to get the attribute"
msgstr ""
#: c-api/structures.rst:451
#: c-api/structures.rst:513
msgid "set"
msgstr ""
#: c-api/structures.rst:451
#: c-api/structures.rst:513
msgid "setter"
msgstr ""
#: c-api/structures.rst:451
#: c-api/structures.rst:513
msgid ""
"optional C function to set or delete the attribute, if omitted the attribute "
"is readonly"
msgstr ""
#: c-api/structures.rst:455
#: c-api/structures.rst:517
msgid "doc"
msgstr ""
#: c-api/structures.rst:455
#: c-api/structures.rst:517
msgid "optional docstring"
msgstr ""
#: c-api/structures.rst:457
#: c-api/structures.rst:519
msgid "closure"
msgstr ""
#: c-api/structures.rst:457
#: c-api/structures.rst:519
msgid "void \\*"
msgstr ""
#: c-api/structures.rst:457
#: c-api/structures.rst:519
msgid ""
"optional function pointer, providing additional data for getter and setter"
msgstr ""
#: c-api/structures.rst:462
#: c-api/structures.rst:524
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:467
#: c-api/structures.rst:529
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""
#: c-api/structures.rst:470
#: c-api/structures.rst:532
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:475
#: c-api/structures.rst:537
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."
msgstr ""
#~ msgid ":attr:`ml_name`"
#~ msgstr ":attr:`ml_name`"
#~ msgid ":attr:`ml_meth`"
#~ msgstr ":attr:`ml_meth`"
#~ msgid "PyCFunction"
#~ msgstr "PyCFunction"
#~ msgid ":attr:`ml_flags`"
#~ msgstr ":attr:`ml_flags`"
#~ msgid ":attr:`ml_doc`"
#~ msgstr ":attr:`ml_doc`"

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: 2023-01-15 22:33+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"
@ -108,9 +108,9 @@ msgstr ""
msgid ""
"Return true when the interpreter runs out of stack space. This is a "
"reliable check, but is only available when :const:`USE_STACKCHECK` is "
"defined (currently on Windows using the Microsoft Visual C++ compiler). :"
"const:`USE_STACKCHECK` will be defined automatically; you should never "
"change the definition in your own code."
"defined (currently on certain versions of Windows using the Microsoft Visual "
"C++ compiler). :const:`USE_STACKCHECK` will be defined automatically; you "
"should never change the definition in your own code."
msgstr ""
#: c-api/sys.rst:106
@ -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,128 +126,127 @@ 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:121
#: c-api/sys.rst:122
msgid ""
"Decode a byte string from the locale encoding with the :ref:`surrogateescape "
"error handler <surrogateescape>`: undecodable bytes are decoded as "
"characters in range U+DC80..U+DCFF. If a byte sequence can be decoded as a "
"surrogate character, escape the bytes using the surrogateescape error "
"handler instead of decoding them."
"This function should not be called directly: use the :c:type:`PyConfig` API "
"with the :c:func:`PyConfig_SetBytesString` function which ensures that :ref:"
"`Python is preinitialized <c-preinit>`."
msgstr ""
#: c-api/sys.rst:173
msgid "Encoding, highest priority to lowest priority:"
msgstr ""
#: c-api/sys.rst:175
msgid "``UTF-8`` on macOS, Android, and VxWorks;"
msgstr ""
#: c-api/sys.rst:176
#: c-api/sys.rst:193
msgid ""
"``UTF-8`` on Windows if :c:data:`Py_LegacyWindowsFSEncodingFlag` is zero;"
"This function must not be called before :ref:`Python is preinitialized <c-"
"preinit>` and so that the LC_CTYPE locale is properly configured: see the :c:"
"func:`Py_PreInitialize` function."
msgstr ""
#: c-api/sys.rst:177
msgid "``UTF-8`` if the Python UTF-8 mode is enabled;"
msgstr ""
#: c-api/sys.rst:178
#: c-api/sys.rst:130
msgid ""
"``ASCII`` if the ``LC_CTYPE`` locale is ``\"C\"``, ``nl_langinfo(CODESET)`` "
"returns the ``ASCII`` encoding (or an alias), and :c:func:`mbstowcs` and :c:"
"func:`wcstombs` functions uses the ``ISO-8859-1`` encoding."
"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 "
"character, the bytes are escaped using the surrogateescape error handler "
"instead of decoding them."
msgstr ""
#: c-api/sys.rst:182
msgid "the current locale encoding."
msgstr ""
#: c-api/sys.rst:138
#: c-api/sys.rst:137
msgid ""
"Return a pointer to a newly allocated wide character string, use :c:func:"
"`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the "
"number of wide characters excluding the null character into ``*size``"
msgstr ""
#: c-api/sys.rst:142
#: c-api/sys.rst:141
msgid ""
"Return ``NULL`` on decoding error or memory allocation error. If *size* is "
"not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to "
"``(size_t)-2`` on decoding error."
msgstr ""
#: c-api/sys.rst:146
#: c-api/sys.rst:185
msgid ""
"The :term:`filesystem encoding and error handler` are selected by :c:func:"
"`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` and :c:member:"
"`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`."
msgstr ""
#: c-api/sys.rst:149
msgid ""
"Decoding errors should never happen, unless there is a bug in the C library."
msgstr ""
#: c-api/sys.rst:149
#: c-api/sys.rst:152
msgid ""
"Use the :c:func:`Py_EncodeLocale` function to encode the character string "
"back to a byte string."
msgstr ""
#: c-api/sys.rst:154
#: c-api/sys.rst:157
msgid ""
"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:"
"`PyUnicode_DecodeLocaleAndSize` functions."
msgstr ""
#: c-api/sys.rst:203
msgid "The function now uses the UTF-8 encoding in the UTF-8 mode."
#: c-api/sys.rst:204
msgid ""
"The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode "
"<utf8-mode>`."
msgstr ""
#: c-api/sys.rst:206
#: c-api/sys.rst:166
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero;"
msgstr ""
#: c-api/sys.rst:169
#: c-api/sys.rst:173
msgid ""
"Encode a wide character string to the locale encoding with the :ref:"
"`surrogateescape error handler <surrogateescape>`: surrogate characters in "
"the range U+DC80..U+DCFF are converted to bytes 0x80..0xFF."
"Encode a wide character string to the :term:`filesystem encoding and error "
"handler`. If the error handler is :ref:`surrogateescape error handler "
"<surrogateescape>`, surrogate characters in the range U+DC80..U+DCFF are "
"converted to bytes 0x80..0xFF."
msgstr ""
#: c-api/sys.rst:184
msgid "The function uses the UTF-8 encoding in the Python UTF-8 mode."
msgstr ""
#: c-api/sys.rst:186
#: c-api/sys.rst:178
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:190
#: c-api/sys.rst:182
msgid ""
"If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on "
"success, or set to the index of the invalid character on encoding error."
msgstr ""
#: c-api/sys.rst:193
#: c-api/sys.rst:189
msgid ""
"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back "
"to a wide character string."
msgstr ""
#: c-api/sys.rst:198
#: c-api/sys.rst:199
msgid ""
"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` "
"functions."
msgstr ""
#: c-api/sys.rst:214
msgid "System Functions"
#: 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 ""
#: c-api/sys.rst:218
msgid ""
"These are utility functions that make functionality from the :mod:`sys` "
"module accessible to C code. They all work with the current interpreter "
@ -255,36 +254,43 @@ msgid ""
"state structure."
msgstr ""
#: c-api/sys.rst:222
#: c-api/sys.rst:224
msgid ""
"Return the object *name* from the :mod:`sys` module or ``NULL`` if it does "
"not exist, without setting an exception."
msgstr ""
#: c-api/sys.rst:227
#: c-api/sys.rst:229
msgid ""
"Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which "
"case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` "
"on error."
msgstr ""
#: c-api/sys.rst:233
#: c-api/sys.rst:235
msgid ""
"Reset :data:`sys.warnoptions` to an empty list. This function may be called "
"prior to :c:func:`Py_Initialize`."
msgstr ""
#: c-api/sys.rst:238
#: c-api/sys.rst:251
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"warnoptions` should be used instead, see :ref:`Python Initialization "
"Configuration <init-config>`."
msgstr ""
#: c-api/sys.rst:244
msgid ""
"Append *s* to :data:`sys.warnoptions`. This function must be called prior "
"to :c:func:`Py_Initialize` in order to affect the warnings filter list."
msgstr ""
#: c-api/sys.rst:243
#: c-api/sys.rst:255
msgid "Append *unicode* to :data:`sys.warnoptions`."
msgstr ""
#: c-api/sys.rst:245
#: c-api/sys.rst:257
msgid ""
"Note: this function is not currently usable from outside the CPython "
"implementation, as it must be called prior to the implicit import of :mod:"
@ -293,20 +299,28 @@ msgid ""
"Unicode objects."
msgstr ""
#: c-api/sys.rst:253
#: c-api/sys.rst:267
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"module_search_paths` and :c:member:`PyConfig.module_search_paths_set` should "
"be used instead, see :ref:`Python Initialization Configuration <init-"
"config>`."
msgstr ""
#: c-api/sys.rst:272
msgid ""
"Set :data:`sys.path` to a list object of paths found in *path* which should "
"be a list of paths separated with the platform's search path delimiter (``:"
"`` on Unix, ``;`` on Windows)."
msgstr ""
#: c-api/sys.rst:259
#: c-api/sys.rst:280
msgid ""
"Write the output string described by *format* to :data:`sys.stdout`. No "
"exceptions are raised, even if truncation occurs (see below)."
msgstr ""
#: c-api/sys.rst:262
#: c-api/sys.rst:283
msgid ""
"*format* should limit the total size of the formatted output string to 1000 "
"bytes or less -- after 1000 bytes, the output string is truncated. In "
@ -317,51 +331,58 @@ msgid ""
"of digits for very large numbers."
msgstr ""
#: c-api/sys.rst:270
#: c-api/sys.rst:291
msgid ""
"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message "
"is written to the real (C level) *stdout*."
msgstr ""
#: c-api/sys.rst:275
#: c-api/sys.rst:296
msgid ""
"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* "
"instead."
msgstr ""
#: c-api/sys.rst:280
#: c-api/sys.rst:301
msgid ""
"Function similar to PySys_WriteStdout() but format the message using :c:func:"
"`PyUnicode_FromFormatV` and don't truncate the message to an arbitrary "
"length."
msgstr ""
#: c-api/sys.rst:288
#: c-api/sys.rst:309
msgid ""
"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* "
"instead."
msgstr ""
#: c-api/sys.rst:295
#: c-api/sys.rst:316
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"xoptions` should be used instead, see :ref:`Python Initialization "
"Configuration <init-config>`."
msgstr ""
#: c-api/sys.rst:320
msgid ""
"Parse *s* as a set of :option:`-X` options and add them to the current "
"options mapping as returned by :c:func:`PySys_GetXOptions`. This function "
"may be called prior to :c:func:`Py_Initialize`."
msgstr ""
#: c-api/sys.rst:303
#: c-api/sys.rst:330
msgid ""
"Return the current dictionary of :option:`-X` options, similarly to :data:"
"`sys._xoptions`. On error, ``NULL`` is returned and an exception is set."
msgstr ""
#: c-api/sys.rst:312
#: c-api/sys.rst:339
msgid ""
"Raise an auditing event with any active hooks. Return zero for success and "
"non-zero with an exception set on failure."
msgstr ""
#: c-api/sys.rst:315
#: c-api/sys.rst:342
msgid ""
"If any hooks have been added, *format* and other arguments will be used to "
"construct a tuple to pass. Apart from ``N``, the same format characters as "
@ -372,38 +393,38 @@ msgid ""
"leaks.)"
msgstr ""
#: c-api/sys.rst:323
#: c-api/sys.rst:350
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:326
#: c-api/sys.rst:353
msgid ":func:`sys.audit` performs the same function from Python code."
msgstr ""
#: c-api/sys.rst:332
#: c-api/sys.rst:359
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:338
#: c-api/sys.rst:365
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 ""
#: c-api/sys.rst:344
#: c-api/sys.rst:371
msgid ""
"The *userData* pointer is passed into the hook function. Since hook "
"functions may be called from different runtimes, this pointer should not "
"refer directly to Python state."
msgstr ""
#: c-api/sys.rst:348
#: c-api/sys.rst:375
msgid ""
"This function is safe to call before :c:func:`Py_Initialize`. When called "
"after runtime initialization, existing audit hooks are notified and may "
@ -411,22 +432,22 @@ msgid ""
"`Exception` (other errors will not be silenced)."
msgstr ""
#: c-api/sys.rst:353
#: c-api/sys.rst:380
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."
msgstr ""
#: c-api/sys.rst:358
#: c-api/sys.rst:385
msgid ""
"See :pep:`578` for a detailed description of auditing. Functions in the "
"runtime and standard library that raise events are listed in the :ref:`audit "
"events table <audit-events>`. Details are in each function's documentation."
msgstr ""
#: c-api/sys.rst:363
#: c-api/sys.rst:390
msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.addaudithook`` with no "
"arguments."
@ -434,7 +455,7 @@ msgstr ""
"Déclenche un :ref:`événement d'audit <auditing>` ``sys.addaudithook`` sans "
"arguments."
#: c-api/sys.rst:365
#: c-api/sys.rst:392
msgid ""
"If the interpreter is initialized, this function raises a auditing event "
"``sys.addaudithook`` with no arguments. If any existing hooks raise an "
@ -443,11 +464,11 @@ msgid ""
"hook has been added unless they control all existing hooks."
msgstr ""
#: c-api/sys.rst:377
#: c-api/sys.rst:404
msgid "Process Control"
msgstr ""
#: c-api/sys.rst:384
#: c-api/sys.rst:411
msgid ""
"Print a fatal error message and kill the process. No cleanup is performed. "
"This function should only be invoked when a condition is detected that would "
@ -457,29 +478,29 @@ msgid ""
"file:`core` file."
msgstr ""
#: c-api/sys.rst:391
#: c-api/sys.rst:418
msgid ""
"The ``Py_FatalError()`` function is replaced with a macro which logs "
"automatically the name of the current function, unless the "
"``Py_LIMITED_API`` macro is defined."
msgstr ""
#: c-api/sys.rst:395
#: c-api/sys.rst:422
msgid "Log the function name automatically."
msgstr ""
#: c-api/sys.rst:405
#: c-api/sys.rst:432
msgid ""
"Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls "
"the standard C library function ``exit(status)``. If :c:func:"
"`Py_FinalizeEx` indicates an error, the exit status is set to 120."
msgstr ""
#: c-api/sys.rst:409
#: c-api/sys.rst:436
msgid "Errors from finalization no longer ignored."
msgstr ""
#: c-api/sys.rst:419
#: c-api/sys.rst:446
msgid ""
"Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The "
"cleanup function will be called with no arguments and should return no "

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: 2023-01-15 22:33+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"
@ -70,8 +70,8 @@ msgstr ""
#: c-api/tuple.rst:59
msgid ""
"Return the object at position *pos* in the tuple pointed to by *p*. If "
"*pos* is out of bounds, return ``NULL`` and set an :exc:`IndexError` "
"exception."
"*pos* is negative or out of bounds, return ``NULL`` and set an :exc:"
"`IndexError` exception."
msgstr ""
#: c-api/tuple.rst:65
@ -106,7 +106,7 @@ msgstr ""
#: c-api/tuple.rst:94
msgid ""
"This macro \"steals\" a reference to *o*, and, unlike :c:func:"
"This function \"steals\" a reference to *o*, and, unlike :c:func:"
"`PyTuple_SetItem`, does *not* discard a reference to any item that is being "
"replaced; any reference in the tuple at position *pos* will be leaked."
msgstr ""
@ -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 ""
@ -264,10 +264,12 @@ msgid ""
"new instances."
msgstr ""
#: c-api/tuple.rst:222
#: c-api/tuple.rst:223
msgid "This function \"steals\" a reference to *o*."
msgstr ""
#: c-api/tuple.rst:218
msgid "Macro equivalent of :c:func:`PyStructSequence_SetItem`."
msgid ""
"Similar to :c:func:`PyStructSequence_SetItem`, but implemented as a static "
"inlined function."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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 ""
@ -122,147 +122,184 @@ msgstr ""
#: c-api/type.rst:111
msgid ""
"Return the type's name. Equivalent to getting the type's ``__name__`` "
"attribute."
msgstr ""
#: c-api/type.rst:117
msgid ""
"Return the type's qualified name. Equivalent to getting the type's "
"``__qualname__`` attribute."
msgstr ""
#: c-api/type.rst:124
msgid ""
"Return the function pointer stored in the given slot. If the result is "
"``NULL``, this indicates that either the slot is ``NULL``, or that the "
"function was called with invalid parameters. Callers will typically cast the "
"result pointer into the appropriate function type."
msgstr ""
#: c-api/type.rst:117
#: c-api/type.rst:130
msgid ""
"See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument."
msgstr ""
#: c-api/type.rst:119
msgid "An exception is raised if *type* is not a heap type."
#: c-api/type.rst:134
msgid ""
":c:func:`PyType_GetSlot` can now accept all types. Previously, it was "
"limited to :ref:`heap types <heap-types>`."
msgstr ""
#: c-api/type.rst:125
#: c-api/type.rst:140
msgid ""
"Return the module object associated with the given type when the type was "
"created using :c:func:`PyType_FromModuleAndSpec`."
msgstr ""
#: c-api/type.rst:146
#: c-api/type.rst:163
msgid ""
"If no module is associated with the given type, sets :py:class:`TypeError` "
"and returns ``NULL``."
msgstr ""
#: c-api/type.rst:131
#: c-api/type.rst:146
msgid ""
"This function is usually used to get the module in which a method is "
"defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may "
"not return the intended result. ``Py_TYPE(self)`` may be a *subclass* of the "
"intended class, and subclasses are not necessarily defined in the same "
"module as their superclass. See :c:type:`PyCMethod` to get the class that "
"defines the method."
"defines the method. See :c:func:`PyType_GetModuleByDef` for cases when "
"``PyCMethod`` cannot be used."
msgstr ""
#: c-api/type.rst:142
#: c-api/type.rst:159
msgid ""
"Return the state of the module object associated with the given type. This "
"is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:"
"func:`PyType_GetModule`."
msgstr ""
#: c-api/type.rst:149
#: c-api/type.rst:166
msgid ""
"If the *type* has an associated module but its state is ``NULL``, returns "
"``NULL`` without setting an exception."
msgstr ""
#: c-api/type.rst:156
#: c-api/type.rst:173
msgid ""
"Find the first superclass whose module was created from the given :c:type:"
"`PyModuleDef` *def*, and return that module."
msgstr ""
#: c-api/type.rst:176
msgid ""
"If no module is found, raises a :py:class:`TypeError` and returns ``NULL``."
msgstr ""
#: c-api/type.rst:178
msgid ""
"This function is intended to be used together with :c:func:"
"`PyModule_GetState()` to get module state from slot methods (such as :c:"
"member:`~PyTypeObject.tp_init` or :c:member:`~PyNumberMethods.nb_add`) and "
"other places where a method's defining class cannot be passed using the :c:"
"type:`PyCMethod` calling convention."
msgstr ""
#: c-api/type.rst:188
msgid "Creating Heap-Allocated Types"
msgstr ""
#: c-api/type.rst:158
#: c-api/type.rst:190
msgid ""
"The following functions and structs are used to create :ref:`heap types "
"<heap-types>`."
msgstr ""
#: c-api/type.rst:163
#: c-api/type.rst:195
msgid ""
"Creates and returns a heap type object from the *spec* (:const:"
"Creates and returns a :ref:`heap type <heap-types>` from the *spec* (:const:"
"`Py_TPFLAGS_HEAPTYPE`)."
msgstr ""
#: c-api/type.rst:166
#: c-api/type.rst:198
msgid ""
"If *bases* is a tuple, the created heap type contains all types contained in "
"it as base types."
"The *bases* argument can be used to specify base classes; it can either be "
"only one class or a tuple of classes. If *bases* is ``NULL``, the "
"*Py_tp_bases* slot is used instead. If that also is ``NULL``, the "
"*Py_tp_base* slot is used instead. If that also is ``NULL``, the new type "
"derives from :class:`object`."
msgstr ""
#: c-api/type.rst:169
msgid ""
"If *bases* is ``NULL``, the *Py_tp_bases* slot is used instead. If that also "
"is ``NULL``, the *Py_tp_base* slot is used instead. If that also is "
"``NULL``, the new type derives from :class:`object`."
msgstr ""
#: c-api/type.rst:173
#: c-api/type.rst:204
msgid ""
"The *module* argument can be used to record the module in which the new "
"class is defined. It must be a module object or ``NULL``. If not ``NULL``, "
"the module is associated with the new type and can later be retreived with :"
"the module is associated with the new type and can later be retrieved with :"
"c:func:`PyType_GetModule`. The associated module is not inherited by "
"subclasses; it must be specified for each class individually."
msgstr ""
#: c-api/type.rst:180
#: c-api/type.rst:211
msgid "This function calls :c:func:`PyType_Ready` on the new type."
msgstr ""
#: c-api/type.rst:186
#: c-api/type.rst:217
msgid ""
"The function now accepts a single class as the *bases* argument and ``NULL`` "
"as the ``tp_doc`` slot."
msgstr ""
#: c-api/type.rst:222
msgid "Equivalent to ``PyType_FromModuleAndSpec(NULL, spec, bases)``."
msgstr ""
#: c-api/type.rst:192
#: c-api/type.rst:228
msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``."
msgstr ""
#: c-api/type.rst:196
#: c-api/type.rst:232
msgid "Structure defining a type's behavior."
msgstr ""
#: c-api/type.rst:200
#: c-api/type.rst:236
msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`."
msgstr ""
#: c-api/type.rst:205
#: c-api/type.rst:241
msgid ""
"Size of the instance in bytes, used to set :c:member:`PyTypeObject."
"tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`."
msgstr ""
#: c-api/type.rst:211
#: c-api/type.rst:247
msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`."
msgstr ""
#: c-api/type.rst:213
#: c-api/type.rst:249
msgid ""
"If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:"
"`PyType_FromSpecWithBases` sets it automatically."
msgstr ""
#: c-api/type.rst:218
#: c-api/type.rst:254
msgid ""
"Array of :c:type:`PyType_Slot` structures. Terminated by the special slot "
"value ``{0, NULL}``."
msgstr ""
#: c-api/type.rst:223
#: c-api/type.rst:259
msgid ""
"Structure defining optional functionality of a type, containing a slot ID "
"and a value pointer."
msgstr ""
#: c-api/type.rst:228
#: c-api/type.rst:264
msgid "A slot ID."
msgstr ""
#: c-api/type.rst:230
#: c-api/type.rst:266
msgid ""
"Slot IDs are named like the field names of the structures :c:type:"
"`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:"
@ -270,97 +307,89 @@ msgid ""
"prefix. For example, use:"
msgstr ""
#: c-api/type.rst:236
#: c-api/type.rst:272
msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`"
msgstr ""
#: c-api/type.rst:237
#: c-api/type.rst:273
msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`"
msgstr ""
#: c-api/type.rst:238
#: c-api/type.rst:274
msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`"
msgstr ""
#: c-api/type.rst:240
#: c-api/type.rst:276
msgid ""
"The following fields cannot be set at all using :c:type:`PyType_Spec` and :c:"
"type:`PyType_Slot`:"
msgstr ""
#: c-api/type.rst:243
#: c-api/type.rst:279
msgid ":c:member:`~PyTypeObject.tp_dict`"
msgstr ""
#: c-api/type.rst:244
#: c-api/type.rst:280
msgid ":c:member:`~PyTypeObject.tp_mro`"
msgstr ""
#: c-api/type.rst:245
#: c-api/type.rst:281
msgid ":c:member:`~PyTypeObject.tp_cache`"
msgstr ""
#: c-api/type.rst:246
#: c-api/type.rst:282
msgid ":c:member:`~PyTypeObject.tp_subclasses`"
msgstr ""
#: c-api/type.rst:247
#: c-api/type.rst:283
msgid ":c:member:`~PyTypeObject.tp_weaklist`"
msgstr ""
#: c-api/type.rst:248
#: c-api/type.rst:284
msgid ":c:member:`~PyTypeObject.tp_vectorcall`"
msgstr ""
#: c-api/type.rst:249
#: c-api/type.rst:285
msgid ""
":c:member:`~PyTypeObject.tp_weaklistoffset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:251
#: c-api/type.rst:287
msgid ""
":c:member:`~PyTypeObject.tp_dictoffset` (see :ref:`PyMemberDef <pymemberdef-"
"offsets>`)"
msgstr ""
#: c-api/type.rst:253
#: c-api/type.rst:289
msgid ""
":c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:256
msgid ""
"The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:"
"`PyType_Slot` under the limited API:"
msgstr ""
#: c-api/type.rst:259
msgid ":c:member:`~PyBufferProcs.bf_getbuffer`"
msgstr ""
#: c-api/type.rst:260
msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`"
msgstr ""
#: c-api/type.rst:262
#: c-api/type.rst:292
msgid ""
"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on "
"some platforms. To avoid issues, use the *bases* argument of :py:func:"
"`PyType_FromSpecWithBases` instead."
msgstr ""
#: c-api/type.rst:269
msgid "Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API."
#: c-api/type.rst:299
msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API."
msgstr ""
#: c-api/type.rst:273
#: c-api/type.rst:301
msgid ""
":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs."
"bf_releasebuffer` are now available under the limited API."
msgstr ""
#: c-api/type.rst:308
msgid ""
"The desired value of the slot. In most cases, this is a pointer to a "
"function."
msgstr ""
#: c-api/type.rst:276
msgid "May not be ``NULL``."
#: c-api/type.rst:311
msgid "Slots other than ``Py_tp_doc`` may not be ``NULL``."
msgstr ""

55
c-api/typehints.po Normal file
View File

@ -0,0 +1,55 @@
# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
#: c-api/typehints.rst:6
msgid "Objects for Type Hinting"
msgstr ""
#: c-api/typehints.rst:8
msgid ""
"Various built-in types for type hinting are provided. Currently, two types "
"exist -- :ref:`GenericAlias <types-genericalias>` and :ref:`Union <types-"
"union>`. Only ``GenericAlias`` is exposed to C."
msgstr ""
#: c-api/typehints.rst:14
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: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 "
"type. The ``GenericAlias``\\ 's ``__parameters__`` attribute is constructed "
"lazily from ``__args__``. On failure, an exception is raised and ``NULL`` "
"is returned."
msgstr ""
#: c-api/typehints.rst:28
msgid "Here's an example of how to make an extension type generic::"
msgstr ""
#: c-api/typehints.rst:38
msgid "The data model method :meth:`__class_getitem__`."
msgstr ""
#: c-api/typehints.rst:44
msgid ""
"The C type of the object returned by :c:func:`Py_GenericAlias`. Equivalent "
"to :class:`types.GenericAlias` in Python."
msgstr ""

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: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+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"
@ -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,56 +113,56 @@ 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 "
"of the file, it is decoded from the filesystem encoding (:func:`sys."
"getfilesystemencoding`). If *closeit* is true, the file is closed before "
"PyRun_SimpleFileExFlags returns."
"of the file, it is decoded from :term:`filesystem encoding and error "
"handler`. If *closeit* is true, the file is closed before "
"``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 "
"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* is decoded from the "
"filesystem encoding (:func:`sys.getfilesystemencoding`)."
"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* is decoded from the :"
"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,22 +171,21 @@ 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`` "
"and ``sys.ps2``. *filename* is decoded from the filesystem encoding (:func:"
"`sys.getfilesystemencoding`). Returns ``0`` at EOF or a negative number "
"upon failure."
"and ``sys.ps2``. *filename* is decoded from the :term:`filesystem encoding "
"and error handler`. Returns ``0`` at EOF or a negative number upon failure."
msgstr ""
#: c-api/veryhigh.rst:161
#: 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 "
@ -195,7 +195,7 @@ msgid ""
"the Python source code."
msgstr ""
#: c-api/veryhigh.rst:172
#: 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 "
@ -206,13 +206,13 @@ msgid ""
"line-editing and tab-completion features."
msgstr ""
#: c-api/veryhigh.rst:181
#: 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:184
#: 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 :"
@ -221,46 +221,11 @@ msgstr ""
#: c-api/veryhigh.rst:192
msgid ""
"This is a simplified interface to :c:func:"
"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to "
"``NULL`` and *flags* set to ``0``."
msgstr ""
#: c-api/veryhigh.rst:201
msgid ""
"This is a simplified interface to :c:func:"
"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to "
"``NULL``."
msgstr ""
#: c-api/veryhigh.rst:210
msgid ""
"Parse Python source code from *str* using the start token *start* according "
"to the *flags* argument. The result can be used to create a code object "
"which can be evaluated efficiently. This is useful if a code fragment must "
"be evaluated many times. *filename* is decoded from the filesystem encoding "
"(:func:`sys.getfilesystemencoding`)."
msgstr ""
#: c-api/veryhigh.rst:221
msgid ""
"This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` "
"below, leaving *flags* set to ``0``."
msgstr ""
#: c-api/veryhigh.rst:229
msgid ""
"Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python "
"source code is read from *fp* instead of an in-memory string."
msgstr ""
#: c-api/veryhigh.rst:237
msgid ""
"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving "
"*flags* set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:243
#: 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 "
@ -269,52 +234,52 @@ msgid ""
"token that should be used to parse the source code."
msgstr ""
#: c-api/veryhigh.rst:249
#: 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:255
#: 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:261
#: 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:267
#: 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:273
#: 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 "
"the file, it is decoded from the filesystem encoding (:func:`sys."
"getfilesystemencoding`). If *closeit* is true, the file is closed before :c:"
"func:`PyRun_FileExFlags` returns."
"the file, it is decoded from the :term:`filesystem encoding and error "
"handler`. If *closeit* is true, the file is closed before :c:func:"
"`PyRun_FileExFlags` returns."
msgstr ""
#: c-api/veryhigh.rst:282
#: 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:288
#: 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:294
#: 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 "
@ -325,7 +290,7 @@ msgid ""
"returns ``NULL`` if the code cannot be parsed or compiled."
msgstr ""
#: c-api/veryhigh.rst:302
#: 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 "
@ -334,20 +299,20 @@ msgid ""
"or ``2`` (docstrings are removed too)."
msgstr ""
#: c-api/veryhigh.rst:313
#: c-api/veryhigh.rst:268
msgid ""
"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string "
"decoded from the filesystem encoding (:func:`os.fsdecode`)."
"decoded from the :term:`filesystem encoding and error handler`."
msgstr ""
#: c-api/veryhigh.rst:320
#: 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:327
#: 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, "
@ -356,22 +321,13 @@ msgid ""
"only_parameter>` arguments and a closure tuple of cells."
msgstr ""
#: c-api/veryhigh.rst:336
#, fuzzy
msgid ""
"The C structure of the objects used to describe frame objects. The fields of "
"this type are subject to change at any time."
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:342
#: c-api/veryhigh.rst:291
msgid ""
"Evaluate an execution frame. This is a simplified interface to :c:func:"
"`PyEval_EvalFrameEx`, for backward compatibility."
msgstr ""
#: c-api/veryhigh.rst:348
#: c-api/veryhigh.rst:297
msgid ""
"This is the main, unvarnished function of Python interpretation. The code "
"object associated with the execution frame *f* is executed, interpreting "
@ -381,7 +337,7 @@ msgid ""
"of generator objects."
msgstr ""
#: c-api/veryhigh.rst:355
#: c-api/veryhigh.rst:304
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -389,33 +345,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:362
#: c-api/veryhigh.rst:311
msgid ""
"This function changes the flags of the current evaluation frame, and returns "
"true on success, false on failure."
msgstr ""
#: c-api/veryhigh.rst:370
#: c-api/veryhigh.rst:319
msgid ""
"The start symbol from the Python grammar for isolated expressions; for use "
"with :c:func:`Py_CompileString`."
msgstr ""
#: c-api/veryhigh.rst:378
#: c-api/veryhigh.rst:327
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:387
#: c-api/veryhigh.rst:336
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:394
#: c-api/veryhigh.rst:343
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 "
@ -423,35 +379,43 @@ msgid ""
"case, ``from __future__ import`` can modify *flags*."
msgstr ""
#: c-api/veryhigh.rst:399
#: c-api/veryhigh.rst:348
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:405
#: c-api/veryhigh.rst:354
msgid "Compiler flags."
msgstr ""
#: c-api/veryhigh.rst:409
#: c-api/veryhigh.rst:358
msgid ""
"*cf_feature_version* is the minor Python version. It should be initialized "
"to ``PY_MINOR_VERSION``."
msgstr ""
#: c-api/veryhigh.rst:412
#: c-api/veryhigh.rst:361
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:415
#: c-api/veryhigh.rst:364
msgid "Added *cf_feature_version* field."
msgstr ""
#: c-api/veryhigh.rst:421
#: c-api/veryhigh.rst:370
msgid ""
"This bit can be set in *flags* to cause division operator ``/`` to be "
"interpreted as \"true division\" according to :pep:`238`."
msgstr ""
#, fuzzy
#~ msgid ""
#~ "The C structure of the objects used to describe frame objects. The fields "
#~ "of this type are subject to change at any time."
#~ msgstr ""
#~ "La structure C utilisée pour décrire les objets *Code*. Les attributs de "
#~ "cette structure sont sujets à changer à tout moment."

View File

@ -5,8 +5,8 @@ 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: 2019-03-29 14:17+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"Language: fr\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 "
@ -69,7 +69,7 @@ msgstr ""
"collected* en anglais) ; il doit accepter un paramètre unique, qui est "
"l'objet référence faible lui-même. *callback* peut aussi être positionné à "
"``None`` ou à *NULL*. Si *ob* n'est pas un objet faiblement référençable, "
"ou si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci retourne "
"ou si *callback* n'est pas appelable, ``None`` ou *NULL*, ceci retourne "
"*NULL* et lève une :exc:`TypeError`."
#: c-api/weakref.rst:44
@ -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 "
@ -90,8 +90,8 @@ msgstr ""
"paramètre, *callback*, peut être un objet appelable qui reçoit une "
"notification lorsque *ob* est collecté ; il doit accepter un seul paramètre, "
"qui sera l'objet de référence faible lui-même. *callback* peut aussi être "
"``None`` ou *NULLL*. Si *ob* n'est pas un objet faiblement référençable, ou "
"si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci renvoie *NULL* "
"``None`` ou *NULL*. Si *ob* n'est pas un objet faiblement référençable, ou "
"si *callback* n'est pas appelable, ``None`` ou *NULL*, ceci renvoie *NULL* "
"et lève une :exc:`TypeError`."
#: c-api/weakref.rst:56
@ -103,10 +103,12 @@ msgstr ""
"référence n'existe plus, alors l'objet renvoie :const:`Py_None`."
#: c-api/weakref.rst:61
#, fuzzy
msgid ""
"This function returns a **borrowed reference** to the referenced object. "
"This function returns a :term:`borrowed reference` to the referenced object. "
"This means that you should always call :c:func:`Py_INCREF` on the object "
"except if you know that it cannot be destroyed while you are still using it."
"except when it cannot be destroyed before the last usage of the borrowed "
"reference."
msgstr ""
"Cette fonction renvoie une **référence empruntée** à l'objet référencé. Cela "
"signifie que vous devez toujours appeler :c:func:`Py_INCREF` sur l'objet "
@ -114,9 +116,8 @@ msgstr ""
"encore."
#: c-api/weakref.rst:69
msgid ""
"Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that "
"does no error checking."
#, fuzzy
msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking."
msgstr ""
"Similaire à :c:func:`PyWeakref_GetObject`, mais implémenté comme une macro "
"qui ne vérifie pas les erreurs."

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: 2023-01-15 22:33+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,10 @@ 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."
#, fuzzy
msgid "Copyright © 2001-2023 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."

18
dict
View File

@ -5,14 +5,17 @@
-uplets
017f
212a
abi
ahlstrom
allocateur
allocateurs
alpn
base16
base32
base64
base85
batch
Bit
boguer
c++
c-
@ -23,6 +26,7 @@ c99
chacha20
cadriciel
cadriciels
capturants
catucci
cobjects
composabilité
@ -34,6 +38,7 @@ contribués
coroutine
coroutines
cpython
CSV
curryfication
cython
d'allocateurs
@ -51,6 +56,7 @@ déserialise
déserialiser
déserialiseur
déserialiseurs
désérialisation
désérialiseur
désérialiseurs
déserialisées
@ -63,6 +69,7 @@ désérialisées
Distutils
encodable
ethnomathématiques
Excel
farrugia
finaliseur
frederik
@ -70,6 +77,7 @@ fredrik
freeze
glibc
guido
gzip
hachabilité
hachable
hachables
@ -82,6 +90,7 @@ interchangés
intralignes
ios
ipv4
ipv6
itérateur
itérateurs
ième
@ -100,8 +109,10 @@ l'itérateur
lexicographiquement
lorsqu'aucune
lorsqu'aucun
macos
mar
mar.
marshal
marc-andré
mersenne
mertz
@ -122,8 +133,11 @@ n-ième
namespace
non-hachable
non-hachables
npn
openssl
POSIX
pdb
peg
pip
pourcent
proleptique
@ -131,6 +145,7 @@ précompilé
préemptif
préremplis
py2exe
pybsddb
pyc
pychecker
pydb
@ -172,6 +187,8 @@ sérialisé
sérialisée
sérialisées
sérialisés
sqlite
sqlite3
tk
tokenisation
tokenisé
@ -187,6 +204,7 @@ world
wxwidgets
x11
x86
YAML
zope
émoji
ı

View File

@ -5,15 +5,15 @@ 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: 2020-02-04 09:33+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"PO-Revision-Date: 2021-12-16 02:36+0100\n"
"Last-Translator: Fipaddict <fipaddict@protonmail.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.2.4\n"
"X-Generator: Poedit 3.0\n"
#: distributing/index.rst:5
msgid "Distributing Python Modules"
@ -46,8 +46,8 @@ msgid ""
"the common pool."
msgstr ""
"Cela permet aux utilisateurs de Python de partager et de collaborer "
"efficacement, bénéficiant des solutions que les autres ont déjà crées pour "
"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de "
"efficacement, bénéficiant des solutions que les autres ont déjà créées pour "
"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de "
"partager leurs propres solutions à tous."
#: distributing/index.rst:19
@ -78,12 +78,12 @@ msgstr "Vocabulaire"
#: distributing/index.rst:34
msgid ""
"the `Python Packaging Index <https://pypi.org>`__ is a public repository of "
"the `Python Package Index <https://pypi.org>`__ is a public repository of "
"open source licensed packages made available for use by other Python users"
msgstr ""
"le `Python Packaging Index <https://pypi.org/pypi>`__ est un dépôt public de "
"Le `Python Package Index <https://pypi.org>`__ est un dépôt public de "
"paquets sous licence libre rendus disponibles par d'autres utilisateurs "
"Python"
"Python."
#: distributing/index.rst:37
msgid ""
@ -94,7 +94,7 @@ msgid ""
"issue trackers on both `GitHub <https://github.com/pypa>`__ and `Bitbucket "
"<https://bitbucket.org/pypa/>`__."
msgstr ""
"le `Python Packaging Authority <https://www.pypa.io>`__ est le groupe de "
"Le `Python Packaging Authority <https://www.pypa.io>`__ est le groupe de "
"développeurs et d'auteurs de documentation responsables de la maintenance et "
"de l'évolution des outils standards de création de paquets, des métadonnées, "
"et des formats de fichiers standards. Ils maintiennent quelques outils, "
@ -114,7 +114,7 @@ msgstr ""
"ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe "
"de :mod:`distutils` est progressivement supprimée, elle reste le fondement "
"de l'infrastructure actuelle de construction de paquet et de distribution. "
"Au delà de rester dans la bibliothèque standard, son nom vit aussi sous "
"Au-delà de rester dans la bibliothèque standard, son nom vit aussi sous "
"d'autres formes, tel que la liste de diffusion utilisée pour coordonner le "
"développement et les standards de la création de paquet."
@ -128,7 +128,7 @@ msgid ""
"standards across a wide range of Python versions."
msgstr ""
"`setuptools`_, d'abord publié en 2004, est (en grande partie) le remplaçant "
"de :mod:`distutils`. La nouveauté la plus notable, au delà des outils non "
"de :mod:`distutils`. La nouveauté la plus notable, au-delà des outils non "
"modifiés de :mod:`distutils` est la possibilité de déclarer des dépendances "
"à d'autres paquets. C'est l'alternative actuellement recommandée car plus "
"régulièrement mise à jour que :mod:`distutils` et gère mieux les standards "
@ -144,7 +144,7 @@ msgid ""
msgstr ""
"`wheel`_ (dans ce contexte) est un projet qui ajoute la commande "
"``bdist_wheel`` à :mod:`distutils`/`setuptools`_. Cela produit un paquet "
"binaire multiplateforme (nommé \"*wheels*\" ou \"*wheel files*\" et définis "
"binaire multiplateformes (nommé \"*wheels*\" ou \"*wheel files*\" et définis "
"dans la :pep:`427`) qui permet aux bibliothèques Python, même celles "
"incluant des extensions binaires, d'être installées sur un système sans "
"avoir à les compiler localement."
@ -177,7 +177,7 @@ msgstr ""
"et collaborer efficacement en rendant des solutions communes à divers "
"problèmes librement disponibles. Cela laisse beaucoup de développeurs libres "
"de dépenser plus de temps concentrés sur des problèmes relativement uniques "
"à leur cas spécifiques."
"à leur cas spécifique."
#: distributing/index.rst:80
msgid ""
@ -187,7 +187,7 @@ msgid ""
msgstr ""
"Les outils de distribution fournis avec Python sont conçus pour rendre la "
"vie des développeurs relativement simple lorsqu'ils souhaitent contribuer, "
"s'il le désirent, à ces ressources communes."
"s'ils le désirent, à ces ressources communes."
#: distributing/index.rst:84
msgid ""
@ -210,8 +210,8 @@ msgid ""
"important to have standard tools that work consistently, even on older "
"versions of Python."
msgstr ""
"La bibliothèque standard n'inclut pas d'outils capable de créer des paquets "
"selon les standards modernes, car l'équipe fondamentale de développement à "
"La bibliothèque standard n'inclut pas d'outils capables de créer des paquets "
"selon les standards modernes, car l'équipe fondamentale de développement a "
"trouvé qu'il était plus important d'avoir des outils standards qui "
"fonctionnent de manière cohérente, même avec de plus vieilles versions de "
"Python."
@ -227,12 +227,12 @@ msgstr ""
#: distributing/index.rst:104
msgid ""
"For POSIX users (including Mac OS X and Linux users), these instructions "
"assume the use of a :term:`virtual environment`."
"For POSIX users (including macOS and Linux users), these instructions assume "
"the use of a :term:`virtual environment`."
msgstr ""
"Pour les utilisateurs d'environnements POSIX (incluant Mac OS X et les "
"utilisateurs de Linux), ces instructions supposent l'utilisation d'un :term:"
"`environnement virtuel`."
"Pour les utilisateurs d'environnements POSIX (dont macOS et Linux), ces "
"instructions supposent l'utilisation d'un :term:`environnement virtuel "
"<virtual environment>`."
#: distributing/index.rst:107
msgid ""
@ -240,7 +240,7 @@ msgid ""
"system PATH environment variable was selected when installing Python."
msgstr ""
"Pour les utilisateurs de Windows, ces instructions supposent que l'option "
"proposant de modifier la variable d'environnement PATH à été cochée lors de "
"proposant de modifier la variable d'environnement PATH a été cochée lors de "
"l'installation de Python."
#: distributing/index.rst:111
@ -265,27 +265,27 @@ msgstr ""
#: distributing/index.rst:128
msgid "`Project structure`_"
msgstr "`(en) Structure d'un projet <Project structure_>`_"
msgstr "`(en) Structure d'un projet <Project structure_>`_ ;"
#: distributing/index.rst:129
msgid "`Building and packaging the project`_"
msgstr ""
"`(en) Construire et empaqueter le projet <Building and packaging the "
"project_>`_"
"project_>`_ ;"
#: distributing/index.rst:130
msgid "`Uploading the project to the Python Packaging Index`_"
msgid "`Uploading the project to the Python Package Index`_"
msgstr ""
"`(en) Téléverser le projet sur le Python Packaging Index <Uploading the "
"project to the Python Packaging Index_>`_"
"project to the Python Packaging Index_>`_ ;"
#: distributing/index.rst:131
msgid "`The .pypirc file`_"
msgstr ""
msgstr "`(en) Le fichier .pypirc <The .pypirc file_>`_."
#: distributing/index.rst:144
msgid "How do I...?"
msgstr "Comment puis-je ...?"
msgstr "Comment puis-je… ?"
#: distributing/index.rst:146
msgid "These are quick answers or links for some common tasks."
@ -294,15 +294,15 @@ msgstr ""
#: distributing/index.rst:149
msgid "... choose a name for my project?"
msgstr "... choisir un nom pour mon projet ?"
msgstr "… choisir un nom pour mon projet ?"
#: distributing/index.rst:151
msgid "This isn't an easy topic, but here are a few tips:"
msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :"
msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :"
#: distributing/index.rst:153
msgid "check the Python Packaging Index to see if the name is already in use"
msgstr "vérifiez dans le *Python Packaging Index* si le nom est déjà utilisé"
msgid "check the Python Package Index to see if the name is already in use"
msgstr "vérifiez dans le *Python Package Index* si le nom est déjà utilisé ;"
#: distributing/index.rst:154
msgid ""
@ -310,12 +310,12 @@ msgid ""
"already a project with that name"
msgstr ""
"vérifiez sur quelques sites d'hébergement populaires tels que GitHub, "
"Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom"
"Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom ;"
#: distributing/index.rst:156
msgid "check what comes up in a web search for the name you're considering"
msgstr ""
"vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez"
"vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez ;"
#: distributing/index.rst:157
msgid ""
@ -325,11 +325,11 @@ msgid ""
msgstr ""
"évitez les mots trop communs, plus particulièrement ceux ayant plusieurs "
"significations, car pour vos utilisateurs, cela complique la recherche de "
"votre logiciel"
"votre logiciel."
#: distributing/index.rst:163
msgid "... create and distribute binary extensions?"
msgstr "... créer et distribuer des extensions binaires ?"
msgstr "… créer et distribuer des extensions binaires ?"
#: distributing/index.rst:165
msgid ""

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-03-29 15:44+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-04 22:18+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -368,7 +368,7 @@ msgid ""
"*stop_after* tells :func:`setup` when to stop processing; possible values:"
msgstr "*stop_after* dit à :func:`setup` quand s'arrêter ; valeurs possibles :"
#: distutils/apiref.rst:562 distutils/apiref.rst:1601
#: distutils/apiref.rst:562 distutils/apiref.rst:1606
msgid "description"
msgstr "description"
@ -703,7 +703,7 @@ msgstr ""
#: distutils/apiref.rst:316
msgid ":mod:`distutils.ccompiler` --- CCompiler base class"
msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler"
msgstr ":mod:`distutils.ccompiler` — Classe mère CCompiler"
#: distutils/apiref.rst:322
msgid ""
@ -713,7 +713,7 @@ msgid ""
"options for the compiler --- macro definitions, include directories, link "
"path, libraries and the like."
msgstr ""
"Ce module fournit la classe de base abstraite pour les classes :class:"
"Ce module fournit la classe mère abstraite pour les classes :class:"
"`CCompiler`. Une instance de :class:`CCompiler` peut être utilisée pour "
"toutes les étapes de compilation et de liaison nécessaires à la compilation "
"d'un projet unique. Des méthodes sont fournies pour définir des options pour "
@ -821,7 +821,7 @@ msgid ""
"be implemented by real compiler classes. The class also has some utility "
"methods used by several compiler classes."
msgstr ""
"La classe de base abstraite :class:`CCompiler` définit l'interface qui doit "
"La classe mère abstraite :class:`CCompiler` définit l'interface qui doit "
"être implémentée par des classes de compilateur concrètes. La classe "
"possède également quelques méthodes utilitaires utilisées par plusieurs "
"classes de compilateurs."
@ -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 "
@ -2078,8 +2078,9 @@ msgstr ""
"platform``."
#: distutils/apiref.rst:1122
#, fuzzy
msgid ""
"For Mac OS X systems the OS version reflects the minimal version on which "
"For macOS systems the OS version reflects the minimal version on which "
"binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during "
"the build of Python), not the OS version of the current system."
msgstr ""
@ -2089,8 +2090,9 @@ msgstr ""
"compilation de Python), et non la version du système actuel."
#: distutils/apiref.rst:1126
#, fuzzy
msgid ""
"For universal binary builds on Mac OS X the architecture value reflects the "
"For universal binary builds on macOS the architecture value reflects the "
"universal binary status instead of the architecture of the current "
"processor. For 32-bit universal binaries the architecture is ``fat``, for 64-"
"bit universal binaries the architecture is ``fat64``, and for 4-way "
@ -2110,7 +2112,8 @@ msgstr ""
"compilation universelle avec les architectures *i386* et *x86_64*"
#: distutils/apiref.rst:1135
msgid "Examples of returned values on Mac OS X:"
#, fuzzy
msgid "Examples of returned values on macOS:"
msgstr "Exemples de valeurs renvoyées sous Mac OS X :"
#: distutils/apiref.rst:1137
@ -2140,10 +2143,11 @@ msgid ""
msgstr ""
"Pour AIX, à partir de Python 3.9, une chaîne de caractères est renvoyée "
"commençant par ``aix``, puis des champs additionnels (séparés par ``'-'``) "
"qui représentent les valeurs combinées de `AIX Version`, `Release and "
"Technology Level` (premier champ), `Build Date` (deuxième champ) et taille "
"en bits (troisième champ). En Python 3.8 et avant, seul un champ additionnel "
"avec la version d'AIX et la `Release` étaient renvoyés."
"qui représentent les valeurs combinées de la version d'AIX accompagnée du "
"numéro de publication et du « niveau de technologie » (premier champ), la "
"date de la version (deuxième champ), et taille en bits (troisième champ). En "
"Python 3.8 et avant, seul un champ additionnel avec la version d'AIX et le "
"numéro de publication étaient renvoyés."
#: distutils/apiref.rst:1151
msgid "Examples of returned values on AIX:"
@ -2249,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 ""
@ -2382,7 +2387,7 @@ msgstr ""
"avec le module standard :mod:`py_compile`, soit indirectement en écrivant un "
"script temporaire et en l'exécutant. Normalement, vous devez laisser :func:"
"`byte_compile` choisir d'utiliser la compilation directe ou non (voir le "
"code-source pour les détails). Le paramètre *direct* est utilisé par le "
"code source pour les détails). Le paramètre *direct* est utilisé par le "
"script généré en mode indirect ; à moins que vous ne sachiez ce que vous "
"faites, laissez le paramètre à ``None`` (Aucun)."
@ -2551,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."
@ -2643,7 +2648,11 @@ msgstr ""
msgid ":mod:`distutils.sysconfig` --- System configuration information"
msgstr ":mod:`distutils.sysconfig` — Informations de configuration du système"
#: distutils/apiref.rst:1460
#: distutils/apiref.rst:1455
msgid ":mod:`distutils.sysconfig` has been merged into :mod:`sysconfig`."
msgstr ""
#: distutils/apiref.rst:1462
msgid ""
"The :mod:`distutils.sysconfig` module provides access to Python's low-level "
"configuration information. The specific configuration variables available "
@ -2665,7 +2674,7 @@ msgstr ""
"de Python commençant par 2.2, et :file:`config.h` pour les versions "
"antérieures de Python."
#: distutils/apiref.rst:1469
#: distutils/apiref.rst:1471
msgid ""
"Some additional functions are provided which perform some useful "
"manipulations for other parts of the :mod:`distutils` package."
@ -2673,15 +2682,15 @@ msgstr ""
"Quelques fonctions supplémentaires sont fournies pour effectuer des "
"manipulations utiles pour d'autres parties du paquet :mod:`distutils`."
#: distutils/apiref.rst:1475
#: distutils/apiref.rst:1477
msgid "The result of ``os.path.normpath(sys.prefix)``."
msgstr "Le résultat de ``os.path.normpath(sys.prefix)``."
#: distutils/apiref.rst:1480
#: distutils/apiref.rst:1482
msgid "The result of ``os.path.normpath(sys.exec_prefix)``."
msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``."
#: distutils/apiref.rst:1485
#: distutils/apiref.rst:1487
msgid ""
"Return the value of a single variable. This is equivalent to "
"``get_config_vars().get(name)``."
@ -2689,7 +2698,7 @@ msgstr ""
"Renvoie la valeur d'une seule variable. C'est l'équivalent de "
"``get_config_vars().get(name)``."
#: distutils/apiref.rst:1491
#: distutils/apiref.rst:1493
msgid ""
"Return a set of variable definitions. If there are no arguments, this "
"returns a dictionary mapping names of configuration variables to values. If "
@ -2704,7 +2713,7 @@ msgstr ""
"donnant les valeurs correspondantes. Si un nom donné n'a pas de valeur "
"correspondante, la valeur ``None`` sera utilisée pour cette variable."
#: distutils/apiref.rst:1500
#: distutils/apiref.rst:1502
msgid ""
"Return the full path name of the configuration header. For Unix, this will "
"be the header generated by the :program:`configure` script; for other "
@ -2716,7 +2725,7 @@ msgstr ""
"les autres plates-formes, l'en-tête provient directement de la distribution "
"source Python. Le fichier est un fichier texte spécifique à la plate-forme."
#: distutils/apiref.rst:1508
#: distutils/apiref.rst:1510
msgid ""
"Return the full path name of the :file:`Makefile` used to build Python. For "
"Unix, this will be a file generated by the :program:`configure` script; the "
@ -2729,7 +2738,13 @@ msgstr ""
"existe, il s'agit d'un fichier texte spécifique à la plate-forme. Cette "
"fonction n'est utile que sur les plates-formes POSIX."
#: distutils/apiref.rst:1516
#: distutils/apiref.rst:1515
msgid ""
"The following functions are deprecated together with this module and they "
"have no direct replacement."
msgstr ""
#: distutils/apiref.rst:1521
msgid ""
"Return the directory for either the general or platform-dependent C include "
"files. If *plat_specific* is true, the platform-dependent include directory "
@ -2746,7 +2761,7 @@ msgstr ""
"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si "
"*plat_specific* est vrai."
#: distutils/apiref.rst:1526
#: distutils/apiref.rst:1531
msgid ""
"Return the directory for either the general or platform-dependent library "
"installation. If *plat_specific* is true, the platform-dependent include "
@ -2767,7 +2782,7 @@ msgstr ""
"bibliothèque standard est renvoyé plutôt que le répertoire d'installation "
"des extensions tierces."
#: distutils/apiref.rst:1535
#: distutils/apiref.rst:1540
msgid ""
"The following function is only intended for use within the :mod:`distutils` "
"package."
@ -2775,7 +2790,7 @@ msgstr ""
"La fonction suivante est uniquement destinée à être utilisée dans le paquet :"
"mod:`distutils`."
#: distutils/apiref.rst:1541
#: distutils/apiref.rst:1546
msgid ""
"Do any platform-specific customization of a :class:`distutils.ccompiler."
"CCompiler` instance."
@ -2783,7 +2798,7 @@ msgstr ""
"Exécute toute personnalisation spécifique à la plate-forme d'une instance :"
"class:`distutils.ccompiler.CCompiler`."
#: distutils/apiref.rst:1544
#: distutils/apiref.rst:1549
msgid ""
"This function is only needed on Unix at this time, but should be called "
"consistently to support forward-compatibility. It inserts the information "
@ -2799,7 +2814,7 @@ msgstr ""
"liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens "
"pour les objets partagés."
#: distutils/apiref.rst:1550
#: distutils/apiref.rst:1555
msgid ""
"This function is even more special-purpose, and should only be used from "
"Python's own build procedures."
@ -2807,7 +2822,7 @@ msgstr ""
"Cette fonction est encore plus spéciale, et ne devrait être utilisée que "
"dans les procédures de compilation de Python."
#: distutils/apiref.rst:1556
#: distutils/apiref.rst:1561
msgid ""
"Inform the :mod:`distutils.sysconfig` module that it is being used as part "
"of the build process for Python. This changes a lot of relative locations "
@ -2819,11 +2834,11 @@ msgstr ""
"relatifs pour les fichiers, ce qui les place dans la zone de compilation "
"plutôt que dans un interpréteur Python installé."
#: distutils/apiref.rst:1563
#: distutils/apiref.rst:1568
msgid ":mod:`distutils.text_file` --- The TextFile class"
msgstr ":mod:`distutils.text_file` — La classe TextFile"
#: distutils/apiref.rst:1569
#: distutils/apiref.rst:1574
msgid ""
"This module provides the :class:`TextFile` class, which gives an interface "
"to text files that (optionally) takes care of stripping comments, ignoring "
@ -2833,7 +2848,7 @@ msgstr ""
"fichiers texte qui s'occupe (optionnellement) de supprimer les commentaires, "
"d'ignorer les lignes vides et de joindre les lignes avec des antislashs."
#: distutils/apiref.rst:1576
#: distutils/apiref.rst:1581
msgid ""
"This class provides a file-like object that takes care of all the things "
"you commonly want to do when processing a text file that has some line-by-"
@ -2850,7 +2865,7 @@ msgstr ""
"ligne, supprimer les blancs avant et après le texte. Toutes ces fonctions "
"sont optionnelles et peuvent être commandées indépendamment."
#: distutils/apiref.rst:1583
#: distutils/apiref.rst:1588
msgid ""
"The class provides a :meth:`warn` method so you can generate warning "
"messages that report physical line number, even if the logical line in "
@ -2862,7 +2877,7 @@ msgstr ""
"logique en question couvre plusieurs lignes physiques. Fournit également :"
"meth:`unreadline` pour implémenter un système prospectif ligne par ligne."
#: distutils/apiref.rst:1588
#: distutils/apiref.rst:1593
msgid ""
":class:`TextFile` instances are create with either *filename*, *file*, or "
"both. :exc:`RuntimeError` is raised if both are ``None``. *filename* should "
@ -2881,7 +2896,7 @@ msgstr ""
"Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en "
"utilisant la fonction :func:`open`."
#: distutils/apiref.rst:1596
#: distutils/apiref.rst:1601
msgid ""
"The options are all boolean, and affect the values returned by :meth:"
"`readline`"
@ -2889,19 +2904,19 @@ msgstr ""
"Les options sont toutes booléennes et affectent les valeurs renvoyées par :"
"meth:`readline`."
#: distutils/apiref.rst:1601
#: distutils/apiref.rst:1606
msgid "option name"
msgstr "Nom des options"
#: distutils/apiref.rst:1601
#: distutils/apiref.rst:1606
msgid "default"
msgstr "default"
#: distutils/apiref.rst:1603
#: distutils/apiref.rst:1608
msgid "*strip_comments*"
msgstr "*strip_comments*"
#: distutils/apiref.rst:1603
#: distutils/apiref.rst:1608
msgid ""
"strip from ``'#'`` to end-of-line, as well as any whitespace leading up to "
"the ``'#'``\\ ---unless it is escaped by a backslash"
@ -2910,28 +2925,28 @@ msgstr ""
"ainsi que tout espace blanc menant au premier ``'#'`` — à moins qu'il ne "
"soit échappé par un antislash"
#: distutils/apiref.rst:1612 distutils/apiref.rst:1617
#: distutils/apiref.rst:1617 distutils/apiref.rst:1622
msgid "true"
msgstr "*true*"
#: distutils/apiref.rst:1609
#: distutils/apiref.rst:1614
msgid "*lstrip_ws*"
msgstr "*lstrip_ws*"
#: distutils/apiref.rst:1609
#: distutils/apiref.rst:1614
msgid "strip leading whitespace from each line before returning it"
msgstr ""
"Efface les espaces blancs en début de chaque ligne avant de la renvoyer."
#: distutils/apiref.rst:1627 distutils/apiref.rst:1638
#: distutils/apiref.rst:1632 distutils/apiref.rst:1643
msgid "false"
msgstr "*false*"
#: distutils/apiref.rst:1612
#: distutils/apiref.rst:1617
msgid "*rstrip_ws*"
msgstr "*rstrip_ws*"
#: distutils/apiref.rst:1612
#: distutils/apiref.rst:1617
msgid ""
"strip trailing whitespace (including line terminator!) from each line before "
"returning it."
@ -2939,11 +2954,11 @@ msgstr ""
"Efface les espaces blancs de fin de ligne (y compris le terminateur de "
"ligne !) de chaque ligne avant de la renvoyer."
#: distutils/apiref.rst:1617
#: distutils/apiref.rst:1622
msgid "*skip_blanks*"
msgstr "*skip_blanks*"
#: distutils/apiref.rst:1617
#: distutils/apiref.rst:1622
msgid ""
"skip lines that are empty \\*after\\* stripping comments and whitespace. "
"(If both lstrip_ws and rstrip_ws are false, then some lines may consist of "
@ -2955,11 +2970,11 @@ msgstr ""
"alors certaines lignes peuvent être composées uniquement d'espaces : elles "
"ne seront pas ignorées, même si *skip_blanks* est vrai."
#: distutils/apiref.rst:1627
#: distutils/apiref.rst:1632
msgid "*join_lines*"
msgstr "*join_lines*"
#: distutils/apiref.rst:1627
#: distutils/apiref.rst:1632
msgid ""
"if a backslash is the last non-newline character on a line after stripping "
"comments and whitespace, join the following line to it to form one logical "
@ -2972,11 +2987,11 @@ msgstr ""
"antislash, alors N+1 lignes physiques seront liées pour former une seule "
"ligne logique."
#: distutils/apiref.rst:1638
#: distutils/apiref.rst:1643
msgid "*collapse_join*"
msgstr "*collapse_join*"
#: distutils/apiref.rst:1638
#: distutils/apiref.rst:1643
msgid ""
"strip leading whitespace from lines that are joined to their predecessor; "
"only matters if ``(join_lines and not lstrip_ws)``"
@ -2984,7 +2999,7 @@ msgstr ""
"Supprime les espaces blancs des lignes qui sont jointes à leur "
"prédécesseur ; n'est utile que si ``(join_lines and not lstrip_ws)``."
#: distutils/apiref.rst:1645
#: distutils/apiref.rst:1650
msgid ""
"Note that since *rstrip_ws* can strip the trailing newline, the semantics "
"of :meth:`readline` must differ from those of the built-in file object's :"
@ -2999,7 +3014,7 @@ msgstr ""
"juste une ligne blanche (ou une ligne entièrement blanche), si *rstrip_ws* "
"est vrai mais pas si *skip_blanks* est faux."
#: distutils/apiref.rst:1654
#: distutils/apiref.rst:1659
msgid ""
"Open a new file *filename*. This overrides any *file* or *filename* "
"constructor arguments."
@ -3007,7 +3022,7 @@ msgstr ""
"Ouvre un nouveau fichier *filename*. Remplace tous les arguments du "
"constructeur *file* ou *filename*."
#: distutils/apiref.rst:1660
#: distutils/apiref.rst:1665
msgid ""
"Close the current file and forget everything we know about it (including the "
"filename and the current line number)."
@ -3015,7 +3030,7 @@ msgstr ""
"Ferme le fichier courant et oublie toutes les informations connues à son "
"sujet (y compris le nom du fichier et le numéro de la ligne courante)."
#: distutils/apiref.rst:1666
#: distutils/apiref.rst:1671
msgid ""
"Print (to stderr) a warning message tied to the current logical line in the "
"current file. If the current logical line in the file spans multiple "
@ -3032,7 +3047,7 @@ msgstr ""
"liste ou d'un couple pour indiquer une plage de lignes physiques, ou d'un "
"entier pour une seule ligne physique."
#: distutils/apiref.rst:1676
#: distutils/apiref.rst:1681
msgid ""
"Read and return a single logical line from the current file (or from an "
"internal buffer if lines have previously been \"unread\" with :meth:"
@ -3053,7 +3068,7 @@ msgstr ""
"puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si "
"*strip_blanks* est faux."
#: distutils/apiref.rst:1687
#: distutils/apiref.rst:1692
msgid ""
"Read and return the list of all logical lines remaining in the current file. "
"This updates the current line number to the last line of the file."
@ -3062,7 +3077,7 @@ msgstr ""
"fichier courant. Met à jour le numéro de la ligne courante à la dernière "
"ligne du fichier."
#: distutils/apiref.rst:1693
#: distutils/apiref.rst:1698
msgid ""
"Push *line* (a string) onto an internal buffer that will be checked by "
"future :meth:`readline` calls. Handy for implementing a parser with line-at-"
@ -3081,21 +3096,20 @@ msgstr ""
"appel à :meth:`readline`, les lignes sont renvoyées dans l'ordre de la plus "
"récente première à la plus ancienne."
#: distutils/apiref.rst:1702
#: distutils/apiref.rst:1707
msgid ":mod:`distutils.version` --- Version number classes"
msgstr ":mod:`distutils.version` — Classes de numéros de version"
#: distutils/apiref.rst:1717
#: distutils/apiref.rst:1722
msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands"
msgstr ""
":mod:`distutils.cmd` — Classe de base abstraite pour les commandes "
"*Distutils*"
#: distutils/apiref.rst:1724
msgid "This module supplies the abstract base class :class:`Command`."
msgstr "Ce module fournit la classe de base abstraite :class:`Command`."
":mod:`distutils.cmd` — Classe mère abstraite pour les commandes *Distutils*"
#: distutils/apiref.rst:1729
msgid "This module supplies the abstract base class :class:`Command`."
msgstr "Ce module fournit la classe mère abstraite :class:`Command`."
#: distutils/apiref.rst:1734
msgid ""
"Abstract base class for defining command classes, the \"worker bees\" of the "
"Distutils. A useful analogy for command classes is to think of them as "
@ -3110,8 +3124,8 @@ msgid ""
"options, is the :meth:`run` method, which must also be implemented by every "
"command class."
msgstr ""
"Classe de base abstraite pour définir les classes de commandes, les "
"\"ouvrières\" de *Distutils*. Une analogie utile pour les classes de "
"Classe mère abstraite pour définir les classes de commandes, les "
"« ouvrières » de *Distutils*. Une analogie utile pour les classes de "
"commandes est de les considérer comme des sous-routines avec des variables "
"locales appelées *options*. Les options sont déclarées dans :meth:"
"`initialiser_options` et définies (compte tenu de leur valeur finale) dans :"
@ -3124,7 +3138,7 @@ msgstr ""
"s'effectue tout le travail est basé sur les valeurs de ses options, est la "
"méthode :meth:`run`, qui doit être implémentée par chaque classe de commande."
#: distutils/apiref.rst:1742
#: distutils/apiref.rst:1747
msgid ""
"The class constructor takes a single argument *dist*, a :class:`~distutils."
"core.Distribution` instance."
@ -3132,16 +3146,16 @@ msgstr ""
"Le constructeur prend un seul argument, *dist*, une instance de :class:"
"`~distutils.core.Distribution`."
#: distutils/apiref.rst:1747
#: distutils/apiref.rst:1752
msgid "Creating a new Distutils command"
msgstr "Créer une nouvelle commande *Distutils*"
#: distutils/apiref.rst:1749
#: distutils/apiref.rst:1754
msgid "This section outlines the steps to create a new Distutils command."
msgstr ""
"Cette section décrit les étapes pour créer une nouvelle commande *Distutils*."
#: distutils/apiref.rst:1751
#: distutils/apiref.rst:1756
msgid ""
"A new command lives in a module in the :mod:`distutils.command` package. "
"There is a sample template in that directory called :file:"
@ -3164,13 +3178,13 @@ msgstr ""
"peel_banana.py`, puis l'éditer pour qu'il implémente la classe :class:"
"`peel_banana`, une sous-classe de la classe :class:`distutils.cmd.Command`."
#: distutils/apiref.rst:1761
#: distutils/apiref.rst:1766
msgid "Subclasses of :class:`Command` must define the following methods."
msgstr ""
"Les sous-classes de la classe :class:`Command` doivent définir les méthodes "
"suivantes."
#: distutils/apiref.rst:1765
#: distutils/apiref.rst:1770
msgid ""
"Set default values for all the options that this command supports. Note "
"that these defaults may be overridden by other commands, by the setup "
@ -3187,7 +3201,7 @@ msgstr ""
"méthodes suivantes :meth:`initialize_options` ne font que des assignations "
"de type ``self.truc = None``."
#: distutils/apiref.rst:1774
#: distutils/apiref.rst:1779
msgid ""
"Set final values for all the options that this command supports. This is "
"always called as late as possible, ie. after any option assignments from "
@ -3205,7 +3219,7 @@ msgstr ""
"toujours la même valeur qui lui a été attribué par :meth:"
"`initialize_options`."
#: distutils/apiref.rst:1784
#: distutils/apiref.rst:1789
msgid ""
"A command's raison d'etre: carry out the action it exists to perform, "
"controlled by the options initialized in :meth:`initialize_options`, "
@ -3220,7 +3234,7 @@ msgstr ""
"meth:`finalize_options`. Toutes les interactions avec le système de fichiers "
"et la sortie du terminal doivent être effectuées par :meth:`run`."
#: distutils/apiref.rst:1793
#: distutils/apiref.rst:1798
msgid ""
"*sub_commands* formalizes the notion of a \"family\" of commands, e.g. "
"``install`` as the parent with sub-commands ``install_lib``, "
@ -3244,7 +3258,7 @@ msgstr ""
"n'est applicable que s'il existe des fichiers d'en-tête C à installer. Si "
"*predicate* est ``None``, cette commande est toujours effectuée."
#: distutils/apiref.rst:1804
#: distutils/apiref.rst:1809
msgid ""
"*sub_commands* is usually defined at the *end* of a class, because "
"predicates can be methods of the class, so they must already have been "
@ -3254,55 +3268,28 @@ msgstr ""
"prédicats peuvent être des méthodes de la classe, ils doivent donc déjà "
"avoir été définis. L'exemple canonique est la commande :command:`install`."
#: distutils/apiref.rst:1810
#: distutils/apiref.rst:1815
msgid ":mod:`distutils.command` --- Individual Distutils commands"
msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles"
#: distutils/apiref.rst:1821
#: distutils/apiref.rst:1826
msgid ":mod:`distutils.command.bdist` --- Build a binary installer"
msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire"
#: distutils/apiref.rst:1831
#: distutils/apiref.rst:1836
msgid ""
":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers"
msgstr ""
":mod:`distutils.command.bdist_packager` — Classe de base abstraite pour "
":mod:`distutils.command.bdist_packager` — Classe mère abstraite pour "
"empaqueteurs"
#: distutils/apiref.rst:1841
#: distutils/apiref.rst:1846
msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer"
msgstr ""
":mod:`distutils.command.bdist_dumb` — Construit un installateur passif "
"(*dumb*)"
#: distutils/apiref.rst:1851
msgid ""
":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary "
"package"
msgstr ""
":mod:`distutils.command.bdist_msi` — Construit un installateur Microsoft"
#: distutils/apiref.rst:1887
msgid "Use bdist_wheel (wheel packages) instead."
msgstr "Utilisez *bdist_wheel* (paquet au format *wheel*) à la place."
#: distutils/apiref.rst:1861
msgid "Builds a `Windows Installer`_ (.msi) binary package."
msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)"
#: distutils/apiref.rst:1865
msgid ""
"In most cases, the ``bdist_msi`` installer is a better choice than the "
"``bdist_wininst`` installer, because it provides better support for Win64 "
"platforms, allows administrators to perform non-interactive installations, "
"and allows installation through group policies."
msgstr ""
"Dans la plupart des cas, l'installateur ``bdist_msi`` est un meilleur choix "
"que l'installateur ``bdist_wininst``, car il gère mieux les plates-formes "
"*Win64*, et permet en plus aux administrateurs d'effectuer des installations "
"non interactives ainsi que des installations via des stratégies de groupe."
#: distutils/apiref.rst:1872
#: distutils/apiref.rst:1856
msgid ""
":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a "
"Redhat RPM and SRPM"
@ -3310,42 +3297,37 @@ msgstr ""
":mod:`distutils.command.bdist_rpm` — Construit une distribution binaire au "
"format Redhat RPM et SRPM"
#: distutils/apiref.rst:1882
msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer"
msgstr ""
":mod:`distutils.command.bdist_wininst` — Construit un installateur Windows"
#: distutils/apiref.rst:1895
#: distutils/apiref.rst:1866
msgid ":mod:`distutils.command.sdist` --- Build a source distribution"
msgstr ":mod:`distutils.command.sdist` — Construit une distribution source"
#: distutils/apiref.rst:1905
#: distutils/apiref.rst:1876
msgid ":mod:`distutils.command.build` --- Build all files of a package"
msgstr ""
":mod:`distutils.command.build` — Construit tous les fichiers d'un paquet"
#: distutils/apiref.rst:1915
#: distutils/apiref.rst:1886
msgid ""
":mod:`distutils.command.build_clib` --- Build any C libraries in a package"
msgstr ""
":mod:`distutils.command.build_clib` — Construit toutes les bibliothèques C "
"d'un paquet"
#: distutils/apiref.rst:1925
#: distutils/apiref.rst:1896
msgid ""
":mod:`distutils.command.build_ext` --- Build any extensions in a package"
msgstr ""
":mod:`distutils.command.build_ext` — Construit toutes les extensions d'un "
"paquet"
#: distutils/apiref.rst:1935
#: distutils/apiref.rst:1906
msgid ""
":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package"
msgstr ""
":mod:`distutils.command.build_py` — Construit les fichiers *.py/.pyc* d'un "
"paquet"
#: distutils/apiref.rst:1945
#: distutils/apiref.rst:1916
msgid ""
"Alternative implementation of build_py which also runs the 2to3 conversion "
"library on each .py file that is going to be installed. To use this in a "
@ -3357,27 +3339,27 @@ msgstr ""
"installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution "
"conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter ::"
#: distutils/apiref.rst:1955
#: distutils/apiref.rst:1926
msgid "to your setup.py, and later::"
msgstr "à votre *setup.py* et, plus tard ::"
#: distutils/apiref.rst:1959
#: distutils/apiref.rst:1930
msgid "to the invocation of setup()."
msgstr "à l'appel de *setup()*."
#: distutils/apiref.rst:1963
#: distutils/apiref.rst:1934
msgid ""
":mod:`distutils.command.build_scripts` --- Build the scripts of a package"
msgstr ""
":mod:`distutils.command.build_scripts` — Construit les scripts d'un paquet"
#: distutils/apiref.rst:1973
#: distutils/apiref.rst:1944
msgid ":mod:`distutils.command.clean` --- Clean a package build area"
msgstr ""
":mod:`distutils.command.clean` — Nettoie un dossier de compilation d'un "
"paquet"
#: distutils/apiref.rst:1978
#: distutils/apiref.rst:1949
msgid ""
"This command removes the temporary files created by :command:`build` and its "
"subcommands, like intermediary compiled object files. With the ``--all`` "
@ -3388,7 +3370,7 @@ msgstr ""
"intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera "
"supprimé."
#: distutils/apiref.rst:1982
#: distutils/apiref.rst:1953
msgid ""
"Extension modules built :ref:`in place <distutils-build-ext-inplace>` will "
"not be cleaned, as they are not in the build directory."
@ -3397,23 +3379,23 @@ msgstr ""
"inplace>` ne seront pas effacés, car ils ne sont pas dans le répertoire "
"*build*."
#: distutils/apiref.rst:1987
#: distutils/apiref.rst:1958
msgid ":mod:`distutils.command.config` --- Perform package configuration"
msgstr ""
":mod:`distutils.command.config` — Effectue la configuration d'un paquet"
#: distutils/apiref.rst:1997
#: distutils/apiref.rst:1968
msgid ":mod:`distutils.command.install` --- Install a package"
msgstr ":mod:`distutils.command.install` — Installe un paquet"
#: distutils/apiref.rst:2007
#: distutils/apiref.rst:1978
msgid ""
":mod:`distutils.command.install_data` --- Install data files from a package"
msgstr ""
":mod:`distutils.command.install_data` — Installe les fichiers de données "
"d'un paquet"
#: distutils/apiref.rst:2017
#: distutils/apiref.rst:1988
msgid ""
":mod:`distutils.command.install_headers` --- Install C/C++ header files from "
"a package"
@ -3421,14 +3403,14 @@ msgstr ""
":mod:`distutils.command.install_headers` — Installe les fichiers d'en-tête C/"
"C++ d'un paquet"
#: distutils/apiref.rst:2027
#: distutils/apiref.rst:1998
msgid ""
":mod:`distutils.command.install_lib` --- Install library files from a package"
msgstr ""
":mod:`distutils.command.install_lib` — Installe les fichiers de bibliothèque "
"à partir d'un paquet"
#: distutils/apiref.rst:2037
#: distutils/apiref.rst:2008
msgid ""
":mod:`distutils.command.install_scripts` --- Install script files from a "
"package"
@ -3436,7 +3418,7 @@ msgstr ""
":mod:`distutils.command.install_scripts` — Installe les fichiers de script "
"d'un paquet"
#: distutils/apiref.rst:2047
#: distutils/apiref.rst:2018
msgid ""
":mod:`distutils.command.register` --- Register a module with the Python "
"Package Index"
@ -3444,7 +3426,7 @@ msgstr ""
":mod:`distutils.command.register` — Enregistre un module dans l'Index des "
"paquets Python (*Python Package Index* ou *PyPI* en anglais)"
#: distutils/apiref.rst:2053
#: distutils/apiref.rst:2024
msgid ""
"The ``register`` command registers the package with the Python Package "
"Index. This is described in more detail in :pep:`301`."
@ -3452,11 +3434,11 @@ msgstr ""
"La commande ``register`` enregistre le paquet dans l'index des paquets "
"Python. Plus de détails à ce sujet dans la :pep:`301`."
#: distutils/apiref.rst:2060
#: distutils/apiref.rst:2031
msgid ":mod:`distutils.command.check` --- Check the meta-data of a package"
msgstr ":mod:`distutils.command.check` — Vérifie les méta-données d'un paquet"
#: distutils/apiref.rst:2066
#: distutils/apiref.rst:2037
msgid ""
"The ``check`` command performs some tests on the meta-data of a package. For "
"example, it verifies that all required meta-data are provided as the "
@ -3465,3 +3447,31 @@ msgstr ""
"La commande ``check`` effectue des tests sur les méta-données d'un paquet. "
"Par exemple, elle vérifie que toutes les méta-données requises sont fournies "
"lorsque les arguments sont passés à la fonction :func:`setup`."
#~ msgid ""
#~ ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary "
#~ "package"
#~ msgstr ""
#~ ":mod:`distutils.command.bdist_msi` — Construit un installateur Microsoft"
#~ msgid "Use bdist_wheel (wheel packages) instead."
#~ msgstr "Utilisez *bdist_wheel* (paquet au format *wheel*) à la place."
#~ msgid "Builds a `Windows Installer`_ (.msi) binary package."
#~ msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)"
#~ msgid ""
#~ "In most cases, the ``bdist_msi`` installer is a better choice than the "
#~ "``bdist_wininst`` installer, because it provides better support for Win64 "
#~ "platforms, allows administrators to perform non-interactive "
#~ "installations, and allows installation through group policies."
#~ msgstr ""
#~ "Dans la plupart des cas, l'installateur ``bdist_msi`` est un meilleur "
#~ "choix que l'installateur ``bdist_wininst``, car il gère mieux les plates-"
#~ "formes *Win64*, et permet en plus aux administrateurs d'effectuer des "
#~ "installations non interactives ainsi que des installations via des "
#~ "stratégies de groupe."
#~ msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer"
#~ msgstr ""
#~ ":mod:`distutils.command.bdist_wininst` — Construit un installateur Windows"

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-01-28 15:11+0100\n"
"POT-Creation-Date: 2022-03-23 18:39+0100\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"
"Language: fr\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 surement 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 ""
@ -277,46 +277,34 @@ msgid "HP-UX :program:`swinstall`"
msgstr "HP-UX :program:`swinstall`"
#: distutils/builtdist.rst:99
msgid "``wininst``"
msgstr "``wininst``"
#: distutils/builtdist.rst:99
msgid "self-extracting ZIP file for Windows"
msgstr "fichier zip auto-extracteur Windows"
#: distutils/builtdist.rst:99
msgid "\\(4)"
msgstr "\\(4)"
#: distutils/builtdist.rst:102
msgid "``msi``"
msgstr "``msi``"
#: distutils/builtdist.rst:102
#: distutils/builtdist.rst:99
msgid "Microsoft Installer."
msgstr "Installateur Microsoft."
#: distutils/builtdist.rst:105
#: distutils/builtdist.rst:102
msgid "Added support for the ``xztar`` format."
msgstr "Ajout du support des fichiers ``xztar``."
#: distutils/builtdist.rst:109
#: distutils/builtdist.rst:106
msgid "Notes:"
msgstr "Notes :"
#: distutils/builtdist.rst:112
#: distutils/builtdist.rst:109
msgid "default on Unix"
msgstr "par défaut sur Unix"
#: distutils/builtdist.rst:115
#: distutils/builtdist.rst:112
msgid "default on Windows"
msgstr "par défaut sur Windows"
#: distutils/builtdist.rst:118
#: distutils/builtdist.rst:115
msgid "requires external :program:`compress` utility."
msgstr "nécessite un programme externe :program:`compress`."
#: distutils/builtdist.rst:121
#: distutils/builtdist.rst:118
msgid ""
"requires either external :program:`zip` utility or :mod:`zipfile` module "
"(part of the standard Python library since Python 1.6)"
@ -324,7 +312,7 @@ msgstr ""
"nécessite soit un utilitaire :program:`zip` extérieur ou le module :mod:"
"`zipfile` (inclut dans la bibliothèque standard depuis Python 1.6)"
#: distutils/builtdist.rst:125
#: distutils/builtdist.rst:122
msgid ""
"requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm "
"--version`` to find out which version you have)"
@ -332,16 +320,16 @@ msgstr ""
"nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux "
"(utilisez ``rpm --version`` pour connaître quelle version vous avez)"
#: distutils/builtdist.rst:128
#: distutils/builtdist.rst:125
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 "
@ -353,55 +341,31 @@ msgstr ""
"Les sous-commandes :command:`bdist`, et les formats générés par chacun, "
"sont :"
#: distutils/builtdist.rst:138
#: distutils/builtdist.rst:135
msgid "Command"
msgstr "Commande"
#: distutils/builtdist.rst:138
#: distutils/builtdist.rst:135
msgid "Formats"
msgstr "Formats"
#: distutils/builtdist.rst:140
#: distutils/builtdist.rst:137
msgid ":command:`bdist_dumb`"
msgstr ":command:`bdist_dumb`"
#: distutils/builtdist.rst:140
#: distutils/builtdist.rst:137
msgid "tar, gztar, bztar, xztar, ztar, zip"
msgstr "tar, gztar, bztar, xztar, ztar, zip"
#: distutils/builtdist.rst:142
#: distutils/builtdist.rst:139
msgid ":command:`bdist_rpm`"
msgstr ":command:`bdist_rpm`"
#: distutils/builtdist.rst:142
#: distutils/builtdist.rst:139
msgid "rpm, srpm"
msgstr "rpm, srpm"
#: distutils/builtdist.rst:144
msgid ":command:`bdist_wininst`"
msgstr ":command:`bdist_wininst`"
#: distutils/builtdist.rst:144
msgid "wininst"
msgstr "`wininst`"
#: distutils/builtdist.rst:146
msgid ":command:`bdist_msi`"
msgstr ":command:`bdist_msi`"
#: distutils/builtdist.rst:146
msgid "msi"
msgstr "`msi`"
#: distutils/builtdist.rst:308 distutils/builtdist.rst:476
msgid "bdist_wininst is deprecated since Python 3.8."
msgstr "`bdist_wininst` est obsolète depuis Python 3.8."
#: distutils/builtdist.rst:311 distutils/builtdist.rst:479
msgid "bdist_msi is deprecated since Python 3.9."
msgstr "`bdist_msi` est obsolète depuis Python 3.9."
#: distutils/builtdist.rst:155
#: distutils/builtdist.rst:142
msgid ""
"The following sections give details on the individual :command:`bdist_\\*` "
"commands."
@ -409,11 +373,11 @@ msgstr ""
"Le chapitre suivant donne des détails individuel sur les commandes :command:"
"`bdist_\\*`."
#: distutils/builtdist.rst:171
#: distutils/builtdist.rst:158
msgid "Creating RPM packages"
msgstr "Créer un paquet RPM"
#: distutils/builtdist.rst:173
#: distutils/builtdist.rst:160
msgid ""
"The RPM format is used by many popular Linux distributions, including Red "
"Hat, SuSE, and Mandrake. If one of these (or any of the other RPM-based "
@ -431,7 +395,7 @@ msgstr ""
"entre les distributions Linux, vous pourrez aussi créer des RPM qui "
"fonctionneront sur des distributions RPM différentes."
#: distutils/builtdist.rst:180
#: distutils/builtdist.rst:167
msgid ""
"The usual way to create an RPM of your module distribution is to run the :"
"command:`bdist_rpm` command::"
@ -439,11 +403,11 @@ msgstr ""
"La manière habituelle de créer un RPM de votre module est d'utiliser la "
"commande :command:`bdist_rpm` ::"
#: distutils/builtdist.rst:185
#: distutils/builtdist.rst:172
msgid "or the :command:`bdist` command with the :option:`!--format` option::"
msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::"
#: distutils/builtdist.rst:189
#: distutils/builtdist.rst:176
msgid ""
"The former allows you to specify RPM-specific options; the latter allows "
"you to easily specify multiple formats in one run. If you need to do both, "
@ -455,7 +419,7 @@ msgstr ""
"avez besoin d'utiliser les deux, vous pouvez explicitement spécifier "
"plusieurs commandes :command:`bdist_\\*` et leurs options ::"
#: distutils/builtdist.rst:196
#: distutils/builtdist.rst:182
msgid ""
"Creating RPM packages is driven by a :file:`.spec` file, much as using the "
"Distutils is driven by the setup script. To make your life easier, the :"
@ -472,43 +436,43 @@ msgstr ""
"Beaucoup d'options du fichier :file:`.spec` sont dérivées des options du "
"script de préparation suivant :"
#: distutils/builtdist.rst:228
#: distutils/builtdist.rst:214
msgid "RPM :file:`.spec` file option or section"
msgstr "Option de fichier RPM :file:`.spec`"
#: distutils/builtdist.rst:204
#: distutils/builtdist.rst:190
msgid "Distutils setup script option"
msgstr "Options du script de préparation Distutils"
#: distutils/builtdist.rst:206
#: distutils/builtdist.rst:192
msgid "Name"
msgstr "Nom"
#: distutils/builtdist.rst:206
#: distutils/builtdist.rst:192
msgid "``name``"
msgstr "``name``"
#: distutils/builtdist.rst:208
#: distutils/builtdist.rst:194
msgid "Summary (in preamble)"
msgstr "*Summary* (dans le préambule)"
#: distutils/builtdist.rst:208
#: distutils/builtdist.rst:194
msgid "``description``"
msgstr "``description``"
#: distutils/builtdist.rst:210
#: distutils/builtdist.rst:196
msgid "Version"
msgstr "Version"
#: distutils/builtdist.rst:210
#: distutils/builtdist.rst:196
msgid "``version``"
msgstr "``version``"
#: distutils/builtdist.rst:235
#: distutils/builtdist.rst:221
msgid "Vendor"
msgstr "Vendor"
#: distutils/builtdist.rst:212
#: distutils/builtdist.rst:198
msgid ""
"``author`` and ``author_email``, or --- & ``maintainer`` and "
"``maintainer_email``"
@ -516,31 +480,31 @@ msgstr ""
"``author`` et ``author_email``, ou --- & ``maintainer`` et "
"``maintainer_email``"
#: distutils/builtdist.rst:216
#: distutils/builtdist.rst:202
msgid "Copyright"
msgstr "Copyright"
#: distutils/builtdist.rst:216
#: distutils/builtdist.rst:202
msgid "``license``"
msgstr "``license``"
#: distutils/builtdist.rst:218
#: distutils/builtdist.rst:204
msgid "Url"
msgstr "Url"
#: distutils/builtdist.rst:218
#: distutils/builtdist.rst:204
msgid "``url``"
msgstr "``url``"
#: distutils/builtdist.rst:220
#: distutils/builtdist.rst:206
msgid "%description (section)"
msgstr "%description (section)"
#: distutils/builtdist.rst:220
#: distutils/builtdist.rst:206
msgid "``long_description``"
msgstr "``long_description``"
#: distutils/builtdist.rst:223
#: distutils/builtdist.rst:209
msgid ""
"Additionally, there are many options in :file:`.spec` files that don't have "
"corresponding options in the setup script. Most of these are handled "
@ -550,116 +514,116 @@ msgstr ""
"aucun équivalent dans le script de préparation. La plupart de celles ci sont "
"gérées par les options de la commande :command:`bdist_rpm` suivant :"
#: distutils/builtdist.rst:228
#: distutils/builtdist.rst:214
msgid ":command:`bdist_rpm` option"
msgstr "Option de :command:`bdist_rpm`"
#: distutils/builtdist.rst:228
#: distutils/builtdist.rst:214
msgid "default value"
msgstr "valeur par défaut"
#: distutils/builtdist.rst:231
#: distutils/builtdist.rst:217
msgid "Release"
msgstr "Version"
#: distutils/builtdist.rst:231
#: distutils/builtdist.rst:217
msgid "``release``"
msgstr "``release``"
#: distutils/builtdist.rst:231
#: distutils/builtdist.rst:217
msgid "\"1\""
msgstr "\"1\""
#: distutils/builtdist.rst:233
#: distutils/builtdist.rst:219
msgid "Group"
msgstr "Group"
#: distutils/builtdist.rst:233
#: distutils/builtdist.rst:219
msgid "``group``"
msgstr "``group``"
#: distutils/builtdist.rst:233
#: distutils/builtdist.rst:219
msgid "\"Development/Libraries\""
msgstr "\"Développement/Bibliothèques\""
#: distutils/builtdist.rst:235
#: distutils/builtdist.rst:221
msgid "``vendor``"
msgstr "``vendor``"
#: distutils/builtdist.rst:235
#: distutils/builtdist.rst:221
msgid "(see above)"
msgstr "(voir au-dessus)"
#: distutils/builtdist.rst:237
#: distutils/builtdist.rst:223
msgid "Packager"
msgstr "Packager"
#: distutils/builtdist.rst:237
#: distutils/builtdist.rst:223
msgid "``packager``"
msgstr "``packager``"
#: distutils/builtdist.rst:239 distutils/builtdist.rst:243
#: distutils/builtdist.rst:247 distutils/builtdist.rst:251
#: distutils/builtdist.rst:225 distutils/builtdist.rst:229
#: distutils/builtdist.rst:233 distutils/builtdist.rst:237
msgid "(none)"
msgstr "(none)"
#: distutils/builtdist.rst:239
#: distutils/builtdist.rst:225
msgid "Provides"
msgstr "Provides"
#: distutils/builtdist.rst:239
#: distutils/builtdist.rst:225
msgid "``provides``"
msgstr "``provides``"
#: distutils/builtdist.rst:241
#: distutils/builtdist.rst:227
msgid "Requires"
msgstr "Requires"
#: distutils/builtdist.rst:241
#: distutils/builtdist.rst:227
msgid "``requires``"
msgstr "``requires``"
#: distutils/builtdist.rst:243
#: distutils/builtdist.rst:229
msgid "Conflicts"
msgstr "Conflicts"
#: distutils/builtdist.rst:243
#: distutils/builtdist.rst:229
msgid "``conflicts``"
msgstr "``conflicts``"
#: distutils/builtdist.rst:245
#: distutils/builtdist.rst:231
msgid "Obsoletes"
msgstr "Obsoletes"
#: distutils/builtdist.rst:245
#: distutils/builtdist.rst:231
msgid "``obsoletes``"
msgstr "``obsoletes``"
#: distutils/builtdist.rst:247
#: distutils/builtdist.rst:233
msgid "Distribution"
msgstr "Distribution"
#: distutils/builtdist.rst:247
#: distutils/builtdist.rst:233
msgid "``distribution_name``"
msgstr "``distribution_name``"
#: distutils/builtdist.rst:249
#: distutils/builtdist.rst:235
msgid "BuildRequires"
msgstr "BuildRequires"
#: distutils/builtdist.rst:249
#: distutils/builtdist.rst:235
msgid "``build_requires``"
msgstr "``build_requires``"
#: distutils/builtdist.rst:251
#: distutils/builtdist.rst:237
msgid "Icon"
msgstr "Icon"
#: distutils/builtdist.rst:251
#: distutils/builtdist.rst:237
msgid "``icon``"
msgstr "``icon``"
#: distutils/builtdist.rst:254
#: distutils/builtdist.rst:240
msgid ""
"Obviously, supplying even a few of these options on the command-line would "
"be tedious and error-prone, so it's usually best to put them in the setup "
@ -679,7 +643,7 @@ msgstr ""
"pydistutils.cfg`). Si vous voulez temporairement désactiver ce fichier, vous "
"pouvez passer l'option :option:`!--no-user-cfg` à :file:`setup.py`."
#: distutils/builtdist.rst:262
#: distutils/builtdist.rst:248
msgid ""
"There are three steps to building a binary RPM package, all of which are "
"handled automatically by the Distutils:"
@ -687,7 +651,7 @@ msgstr ""
"La création de binaire RPM se fait en trois étapes, chacune gérée "
"automatiquement par Distutils :"
#: distutils/builtdist.rst:265
#: distutils/builtdist.rst:251
msgid ""
"create a :file:`.spec` file, which describes the package (analogous to the "
"Distutils setup script; in fact, much of the information in the setup "
@ -697,11 +661,11 @@ msgstr ""
"préparation Distutils, en réalité la plupart des informations du script de "
"préparation se retrouve dans le fichier :file:`.spec`)"
#: distutils/builtdist.rst:269
#: distutils/builtdist.rst:255
msgid "create the source RPM"
msgstr "crée un RPM source"
#: distutils/builtdist.rst:271
#: distutils/builtdist.rst:257
msgid ""
"create the \"binary\" RPM (which may or may not contain binary code, "
"depending on whether your module distribution contains Python extensions)"
@ -709,7 +673,7 @@ msgstr ""
"crée le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend "
"de si votre module contiens des extensions)"
#: distutils/builtdist.rst:274
#: distutils/builtdist.rst:260
msgid ""
"Normally, RPM bundles the last two steps together; when you use the "
"Distutils, all three steps are typically bundled together."
@ -717,7 +681,7 @@ msgstr ""
"Normalement, RPM réunit les deux dernières étapes ensemble; quand vous "
"utilisez Distutils, les trois étapes sont regroupées."
#: distutils/builtdist.rst:277
#: distutils/builtdist.rst:263
msgid ""
"If you wish, you can separate these three steps. You can use the :option:"
"`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`."
@ -736,114 +700,11 @@ msgstr ""
"fichier :file:`.spec` se retrouve profondément enfoui dans l'arborescence, "
"dans un dossier temporaire créé par la commande :command:`bdist_rpm`.)"
#: distutils/builtdist.rst:305
msgid "Creating Windows Installers"
msgstr "Créer un installateur Windows"
#: distutils/builtdist.rst:313
msgid ""
"Executable installers are the natural format for binary distributions on "
"Windows. They display a nice graphical user interface, display some "
"information about the module distribution to be installed taken from the "
"metadata in the setup script, let the user select a few options, and start "
"or cancel the installation."
msgstr ""
"Les installateurs exécutables sont le format naturel pour les distributions "
"sur Windows. Ils affichent une jolie interface graphique, montrent quelques "
"informations à propos du module qui va être installé, tiré des métadonnées "
"dans le script de préparation, laisse l'utilisateur choisir quelques options "
"et démarrer ou annuler l'installation."
#: distutils/builtdist.rst:319
msgid ""
"Since the metadata is taken from the setup script, creating Windows "
"installers is usually as easy as running::"
msgstr ""
"Étant donné que les métadonnées sont tirées du script de préparation, créer "
"un installateur Windows est généralement facile, il suffit de lancer ::"
#: distutils/builtdist.rst:324
msgid "or the :command:`bdist` command with the :option:`!--formats` option::"
msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::"
#: distutils/builtdist.rst:328
msgid ""
"If you have a pure module distribution (only containing pure Python modules "
"and packages), the resulting installer will be version independent and have "
"a name like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary "
"distributions in only supported on Windows systems."
msgstr ""
"Si vous avez une distribution de modules purs (contenant seulement des "
"modules et des packages en Python pur), l'installateur produit n'est lié à "
"aucune version de Python et a un nom du type :file:`foo-1.0.win32.exe`. "
"Notez que la création de distributions binaires ``wininst`` n'est prise en "
"charge que sur les systèmes Windows."
#: distutils/builtdist.rst:333
msgid ""
"If you have a non-pure distribution, the extensions can only be created on a "
"Windows platform, and will be Python version dependent. The installer "
"filename will reflect this and now has the form :file:`foo-1.0.win32-py2.0."
"exe`. You have to create a separate installer for every Python version you "
"want to support."
msgstr ""
"Si vous avez une distribution \"non-pure\", l'extension peut être créée "
"uniquement pour les plateformes Windows et sera lié à une version de Python. "
"Le nom de l'installateur reflétera ça et sera de format :file:`foo-1.0.win32-"
"py2.0.exe`. Vous devrez créer un installateur pour chaque version de Python "
"que vous voulez supporter."
#: distutils/builtdist.rst:339
msgid ""
"The installer will try to compile pure modules into :term:`bytecode` after "
"installation on the target system in normal and optimizing mode. If you "
"don't want this to happen for some reason, you can run the :command:"
"`bdist_wininst` command with the :option:`!--no-target-compile` and/or the :"
"option:`!--no-target-optimize` option."
msgstr ""
"L'installeur essaiera de compiler les modules purs en :term:`bytecode` après "
"installation sur le système cible dans les modes normaux et optimisé. Si "
"vous ne voulez pas que ce soit fait, vous pouvez lancer la commande :command:"
"`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :"
"option:`!--no-target-optimize`."
#: distutils/builtdist.rst:345
msgid ""
"By default the installer will display the cool \"Python Powered\" logo when "
"it is run, but you can also supply your own 152x261 bitmap which must be a "
"Windows :file:`.bmp` file with the :option:`!--bitmap` option."
msgstr ""
"Par défaut l'installateur affichera le super logo \"Python Powered\", mais "
"vous pouvez aussi donnez votre propre bitmap de *152×261* qui doit être un "
"fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`."
#: distutils/builtdist.rst:349
msgid ""
"The installer will also display a large title on the desktop background "
"window when it is run, which is constructed from the name of your "
"distribution and the version number. This can be changed to another text by "
"using the :option:`!--title` option."
msgstr ""
"L'installateur affichera aussi un grand titre en arrière plan de la fenêtre "
"quand exécuté, qui est composé du nom de votre distribution et du numéro de "
"version. Cela peut être changé avec un autre texte avec l'option :option:`!--"
"title`."
#: distutils/builtdist.rst:354
msgid ""
"The installer file will be written to the \"distribution directory\" --- "
"normally :file:`dist/`, but customizable with the :option:`!--dist-dir` "
"option."
msgstr ""
"Le fichier d'installation sera écrit dans le dossier de distribution "
"(\"*distribution directory*\") --- normalement :file:`dist/`, mais "
"personnalisable avec l'option :option:`!--dist-dir`."
#: distutils/builtdist.rst:360
#: distutils/builtdist.rst:291
msgid "Cross-compiling on Windows"
msgstr "Compiler pour toute les plateformes Windows"
#: distutils/builtdist.rst:362
#: distutils/builtdist.rst:293
msgid ""
"Starting with Python 2.6, distutils is capable of cross-compiling between "
"Windows platforms. In practice, this means that with the correct tools "
@ -855,7 +716,7 @@ msgstr ""
"installés, vous pouvez utiliser une version 32 bits de Windows pour créer "
"une extension 64 bits et vice-versa."
#: distutils/builtdist.rst:367
#: distutils/builtdist.rst:298
msgid ""
"To build for an alternate platform, specify the :option:`!--plat-name` "
"option to the build command. Valid values are currently 'win32', and 'win-"
@ -866,15 +727,11 @@ msgstr ""
"actuellement **'win32'**, et **'win-amd64'**. Par exemple, sur une version "
"*32bit* de Windows, vous pourriez exécuter ::"
#: distutils/builtdist.rst:373
msgid ""
"to build a 64bit version of your extension. The Windows Installers also "
"support this option, so the command::"
#: distutils/builtdist.rst:304
msgid "to build a 64bit version of your extension."
msgstr ""
"pour construire une version 64 bits de votre module. L'installateur Windows "
"supporte aussi cette option, donc la commande ::"
#: distutils/builtdist.rst:378
#: distutils/builtdist.rst:306
msgid ""
"would create a 64bit installation executable on your 32bit version of "
"Windows."
@ -882,7 +739,7 @@ msgstr ""
"créera un installateur exécutable 64 bits depuis votre version 32 bits de "
"Windows."
#: distutils/builtdist.rst:380
#: distutils/builtdist.rst:308
msgid ""
"To cross-compile, you must download the Python source code and cross-compile "
"Python itself for the platform you are targeting - it is not possible from a "
@ -902,7 +759,7 @@ msgstr ""
"l'arborescence des sources de Python et construire la version *x64* du "
"projet *pythoncore* avant de pouvoir compiler son extension."
#: distutils/builtdist.rst:389
#: distutils/builtdist.rst:317
msgid ""
"Note that by default, Visual Studio 2008 does not install 64bit compilers or "
"tools. You may need to reexecute the Visual Studio setup process and select "
@ -915,11 +772,11 @@ msgstr ""
"> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre "
"installation existante.)"
#: distutils/builtdist.rst:397
#: distutils/builtdist.rst:325
msgid "The Postinstallation script"
msgstr "Le script de post-installation"
#: distutils/builtdist.rst:399
#: distutils/builtdist.rst:327
msgid ""
"Starting with Python 2.3, a postinstallation script can be specified with "
"the :option:`!--install-script` option. The basename of the script must be "
@ -930,7 +787,7 @@ msgstr ""
"l'option :option:`!--install-script`. Le nom du script doit être spécifié et "
"présent dans l'argument \"scripts\" de la fonction ``setup``."
#: distutils/builtdist.rst:404
#: distutils/builtdist.rst:332
msgid ""
"This script will be run at installation time on the target system after all "
"the files have been copied, with ``argv[1]`` set to :option:`!-install`, and "
@ -943,7 +800,7 @@ msgstr ""
"que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-"
"remove`."
#: distutils/builtdist.rst:409
#: distutils/builtdist.rst:337
msgid ""
"The installation script runs embedded in the windows installer, every output "
"(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be "
@ -953,7 +810,7 @@ msgstr ""
"chaque sortie (``sys.stdout``, ``sys.stderr``) est redirigé dans le tampon "
"et sera affiché dans le GUI après que les scripts soient finis."
#: distutils/builtdist.rst:413
#: distutils/builtdist.rst:341
msgid ""
"Some functions especially useful in this context are available as additional "
"built-in functions in the installation script."
@ -961,7 +818,7 @@ msgstr ""
"Certaines fonctions spécialement utiles dans ce contexte sont disponibles "
"comme fonctions natives additionnelles dans le script d'installation."
#: distutils/builtdist.rst:420
#: distutils/builtdist.rst:348
msgid ""
"These functions should be called when a directory or file is created by the "
"postinstall script at installation time. It will register *path* with the "
@ -974,7 +831,7 @@ msgstr ""
"lors de la des-installation de la distribution. pour être sûr, les "
"répertoires sont uniquement retirés s'ils sont vides."
#: distutils/builtdist.rst:428
#: distutils/builtdist.rst:356
msgid ""
"This function can be used to retrieve special folder locations on Windows "
"like the Start Menu or the Desktop. It returns the full path to the folder. "
@ -985,11 +842,11 @@ msgstr ""
"renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des "
"chaines suivantes ::"
#: distutils/builtdist.rst:448
#: distutils/builtdist.rst:376
msgid "If the folder cannot be retrieved, :exc:`OSError` is raised."
msgstr "Si le fichier ne peut être extrait, :exc:`OSError` est obtenu.."
#: distutils/builtdist.rst:450
#: distutils/builtdist.rst:378
msgid ""
"Which folders are available depends on the exact Windows version, and "
"probably also the configuration. For details refer to Microsoft's "
@ -999,7 +856,7 @@ msgstr ""
"probablement aussi de la configuration. pour des détails se référer à la "
"documentation Microsoft de la fonction :c:func:`SHGetSpecialFolderPath`."
#: distutils/builtdist.rst:457
#: distutils/builtdist.rst:385
msgid ""
"This function creates a shortcut. *target* is the path to the program to be "
"started by the shortcut. *description* is the description of the shortcut. "
@ -1019,21 +876,150 @@ msgstr ""
"licône dans le fichier *cheminIcone*. Encore, pour les détails consulter la "
"documentation Microsoft pour l'interface :class:`ILienShell`."
#: distutils/builtdist.rst:468
msgid "Vista User Access Control (UAC)"
msgstr "Contrôle d'accès utilisateur Vista (UAC)"
#~ msgid ":command:`bdist_msi`"
#~ msgstr ":command:`bdist_msi`"
#: distutils/builtdist.rst:470
msgid ""
"Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-"
"control` option. The default is 'none' (meaning no UAC handling is done), "
"and other valid values are 'auto' (meaning prompt for UAC elevation if "
"Python was installed for all users) and 'force' (meaning always prompt for "
"elevation)."
msgstr ""
"Depuis Python 2.6, *bdist_wininst* accepte une option :option:`!--user-"
"access-control`. Sa valeur par défaut est 'none' (Ce qui veut dire que aucun "
"UAC est fait), et les autres valeurs valides sont 'auto' (ce qui veut dire "
"qu'il faut demander une élévation de privilèges UAC si Python a été installé "
"pour tous les utilisateurs) et 'force' (Toujours demander une élévation de "
"privilèges)."
#~ msgid "msi"
#~ msgstr "msi"
#~ msgid "bdist_msi is deprecated since Python 3.9."
#~ msgstr "``bdist_msi`` est obsolète depuis Python 3.9."
#~ msgid "``wininst``"
#~ msgstr "``wininst``"
#~ msgid "self-extracting ZIP file for Windows"
#~ msgstr "fichier zip auto-extracteur Windows"
#~ msgid "\\(4)"
#~ msgstr "\\(4)"
#~ msgid ":command:`bdist_wininst`"
#~ msgstr ":command:`bdist_wininst`"
#~ msgid "wininst"
#~ msgstr "`wininst`"
#~ msgid "bdist_wininst is deprecated since Python 3.8."
#~ msgstr "`bdist_wininst` est obsolète depuis Python 3.8."
#~ msgid "Creating Windows Installers"
#~ msgstr "Créer un installateur Windows"
#~ msgid ""
#~ "Executable installers are the natural format for binary distributions on "
#~ "Windows. They display a nice graphical user interface, display some "
#~ "information about the module distribution to be installed taken from the "
#~ "metadata in the setup script, let the user select a few options, and "
#~ "start or cancel the installation."
#~ msgstr ""
#~ "Les installateurs exécutables sont le format naturel pour les "
#~ "distributions sur Windows. Ils affichent une jolie interface graphique, "
#~ "montrent quelques informations à propos du module qui va être installé, "
#~ "tiré des métadonnées dans le script de préparation, laisse l'utilisateur "
#~ "choisir quelques options et démarrer ou annuler l'installation."
#~ msgid ""
#~ "Since the metadata is taken from the setup script, creating Windows "
#~ "installers is usually as easy as running::"
#~ msgstr ""
#~ "Étant donné que les métadonnées sont tirées du script de préparation, "
#~ "créer un installateur Windows est généralement facile, il suffit de "
#~ "lancer ::"
#~ msgid ""
#~ "or the :command:`bdist` command with the :option:`!--formats` option::"
#~ msgstr ""
#~ "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::"
#~ msgid ""
#~ "If you have a pure module distribution (only containing pure Python "
#~ "modules and packages), the resulting installer will be version "
#~ "independent and have a name like :file:`foo-1.0.win32.exe`. Note that "
#~ "creating ``wininst`` binary distributions in only supported on Windows "
#~ "systems."
#~ msgstr ""
#~ "Si vous avez une distribution de modules purs (contenant seulement des "
#~ "modules et des packages en Python pur), l'installateur produit n'est lié "
#~ "à aucune version de Python et a un nom du type :file:`foo-1.0.win32.exe`. "
#~ "Notez que la création de distributions binaires ``wininst`` n'est prise "
#~ "en charge que sur les systèmes Windows."
#~ msgid ""
#~ "If you have a non-pure distribution, the extensions can only be created "
#~ "on a Windows platform, and will be Python version dependent. The "
#~ "installer filename will reflect this and now has the form :file:`foo-1.0."
#~ "win32-py2.0.exe`. You have to create a separate installer for every "
#~ "Python version you want to support."
#~ msgstr ""
#~ "Si vous avez une distribution \"non-pure\", l'extension peut être créée "
#~ "uniquement pour les plateformes Windows et sera lié à une version de "
#~ "Python. Le nom de l'installateur reflétera ça et sera de format :file:"
#~ "`foo-1.0.win32-py2.0.exe`. Vous devrez créer un installateur pour chaque "
#~ "version de Python que vous voulez supporter."
#~ msgid ""
#~ "The installer will try to compile pure modules into :term:`bytecode` "
#~ "after installation on the target system in normal and optimizing mode. "
#~ "If you don't want this to happen for some reason, you can run the :"
#~ "command:`bdist_wininst` command with the :option:`!--no-target-compile` "
#~ "and/or the :option:`!--no-target-optimize` option."
#~ msgstr ""
#~ "L'installeur essaiera de compiler les modules purs en :term:`bytecode` "
#~ "après installation sur le système cible dans les modes normaux et "
#~ "optimisé. Si vous ne voulez pas que ce soit fait, vous pouvez lancer la "
#~ "commande :command:`bdist_wininst` avec l'option :option:`!--no-target-"
#~ "compile` et/ou l'option :option:`!--no-target-optimize`."
#~ msgid ""
#~ "By default the installer will display the cool \"Python Powered\" logo "
#~ "when it is run, but you can also supply your own 152x261 bitmap which "
#~ "must be a Windows :file:`.bmp` file with the :option:`!--bitmap` option."
#~ msgstr ""
#~ "Par défaut l'installateur affichera le super logo \"Python Powered\", "
#~ "mais vous pouvez aussi donnez votre propre bitmap de *152×261* qui doit "
#~ "être un fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`."
#~ msgid ""
#~ "The installer will also display a large title on the desktop background "
#~ "window when it is run, which is constructed from the name of your "
#~ "distribution and the version number. This can be changed to another text "
#~ "by using the :option:`!--title` option."
#~ msgstr ""
#~ "L'installateur affichera aussi un grand titre en arrière plan de la "
#~ "fenêtre quand exécuté, qui est composé du nom de votre distribution et du "
#~ "numéro de version. Cela peut être changé avec un autre texte avec "
#~ "l'option :option:`!--title`."
#~ msgid ""
#~ "The installer file will be written to the \"distribution directory\" --- "
#~ "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` "
#~ "option."
#~ msgstr ""
#~ "Le fichier d'installation sera écrit dans le dossier de distribution "
#~ "(\"*distribution directory*\") --- normalement :file:`dist/`, mais "
#~ "personnalisable avec l'option :option:`!--dist-dir`."
#~ msgid ""
#~ "to build a 64bit version of your extension. The Windows Installers also "
#~ "support this option, so the command::"
#~ msgstr ""
#~ "pour construire une version 64 bits de votre module. L'installateur "
#~ "Windows supporte aussi cette option, donc la commande ::"
#~ msgid "Vista User Access Control (UAC)"
#~ msgstr "Contrôle d'accès utilisateur Vista (UAC)"
#~ msgid ""
#~ "Starting with Python 2.6, bdist_wininst supports a :option:`!--user-"
#~ "access-control` option. The default is 'none' (meaning no UAC handling "
#~ "is done), and other valid values are 'auto' (meaning prompt for UAC "
#~ "elevation if Python was installed for all users) and 'force' (meaning "
#~ "always prompt for elevation)."
#~ msgstr ""
#~ "Depuis Python 2.6, *bdist_wininst* accepte une option :option:`!--user-"
#~ "access-control`. Sa valeur par défaut est 'none' (Ce qui veut dire que "
#~ "aucun UAC est fait), et les autres valeurs valides sont 'auto' (ce qui "
#~ "veut dire qu'il faut demander une élévation de privilèges UAC si Python a "
#~ "été installé pour tous les utilisateurs) et 'force' (Toujours demander "
#~ "une élévation de privilèges)."

View File

@ -6,7 +6,7 @@ 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: 2020-02-04 21:20+0100\n"
"PO-Revision-Date: 2021-12-11 12:35+0100\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -140,7 +140,7 @@ msgstr ""
"être fixée dans la section ``[global]`` d'un fichier de configuration, ou "
"avant n'importe quelle commande dans un shell. Si définie dans un fichier de "
"configuration, elle peut être écrasée depuis la ligne de commande. Mettre "
"une chaine de caractères vide en valeur de cette option forcera "
"une chaîne de caractères vide en valeur de cette option forcera "
"l'utilisation de la valeur par défaut. Cela ne devrait jamais être fixé dans "
"un fichier de configuration donné avec un paquet."

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: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-01-28 15:55+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -43,6 +43,14 @@ msgstr ":ref:`distributing-index`"
msgid "The up to date module distribution documentations"
msgstr "La documentation actuelle de distribution de modules"
#: distutils/index.rst:17
msgid ""
"The entire ``distutils`` package has been deprecated and will be removed in "
"Python 3.12. This documentation is retained as a reference only, and will be "
"removed with the package. See the :ref:`What's New <distutils-deprecated>` "
"entry for more information."
msgstr ""
#: distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
@ -54,7 +62,7 @@ msgstr ""
"html couvre de manière indépendante toutes les informations pertinentes "
"actuellement incluses ici."
#: distutils/index.rst:19
#: distutils/index.rst:26
msgid ""
"This guide only covers the basic tools for building and distributing "
"extensions that are provided as part of this version of Python. Third party "
@ -69,7 +77,7 @@ msgstr ""
"recommendations/>`__ dans le *Python Packaging User Guide* pour plus "
"d'informations."
#: distutils/index.rst:25
#: distutils/index.rst:32
msgid ""
"This document describes the Python Distribution Utilities (\"Distutils\") "
"from the module developer's point of view, describing the underlying "

View File

@ -3,10 +3,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.8\n"
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"PO-Revision-Date: 2020-03-23 14:58+0100\n"
"POT-Creation-Date: 2022-03-23 18:39+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 ""
@ -140,7 +140,7 @@ msgid ""
"arguments to the :func:`setup` function"
msgstr ""
"la plupart des informations que vous fournissez à Distutils sont fournies en "
"tant que qu'arguments nommés à la fonction :func:`setup`;"
"tant qu'arguments nommés à la fonction :func:`setup`;"
#: distutils/introduction.rst:72
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 ""
@ -239,31 +239,6 @@ msgstr ""
#: distutils/introduction.rst:115
msgid ""
"If you want to make things really easy for your users, you can create one or "
"more built distributions for them. For instance, if you are running on a "
"Windows machine, and want to make things easy for other Windows users, you "
"can create an executable installer (the most appropriate type of built "
"distribution for this platform) with the :command:`bdist_wininst` command. "
"For example::"
msgstr ""
"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, "
"vous pouvez créer on ou plusieurs distributions compilées pour eux. En "
"loccurrence, si vous tournez sous une machine Windows, et que vous voulez "
"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez "
"créer un installateur exécutable (le mode de distribution le plus approprié "
"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par "
"exemple :"
#: distutils/introduction.rst:123
msgid ""
"will create an executable installer, :file:`foo-1.0.win32.exe`, in the "
"current directory."
msgstr ""
"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le "
"répertoire courant."
#: distutils/introduction.rst:126
msgid ""
"Other useful built distribution formats are RPM, implemented by the :command:"
"`bdist_rpm` command, Solaris :program:`pkgtool` (:command:`bdist_pkgtool`), "
"and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the "
@ -275,7 +250,7 @@ msgstr ""
"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0."
"noarch.rpm`::"
#: distutils/introduction.rst:134
#: distutils/introduction.rst:123
msgid ""
"(The :command:`bdist_rpm` command uses the :command:`rpm` executable, "
"therefore this has to be run on an RPM-based system such as Red Hat Linux, "
@ -285,7 +260,7 @@ msgstr ""
"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat "
"Linux, SuSE Linux, or Mandrake Linux.)"
#: distutils/introduction.rst:138
#: distutils/introduction.rst:127
msgid ""
"You can find out what distribution formats are available at any time by "
"running ::"
@ -293,11 +268,11 @@ msgstr ""
"Vous pouvez trouver quelles sont les formats de distribution disponibles à "
"n'importe quel moment en exécutant :"
#: distutils/introduction.rst:147
#: distutils/introduction.rst:136
msgid "General Python terminology"
msgstr "Terminologie Python générale"
#: distutils/introduction.rst:149
#: distutils/introduction.rst:138
msgid ""
"If you're reading this document, you probably have a good idea of what "
"modules, extensions, and so forth are. Nevertheless, just to be sure that "
@ -309,11 +284,11 @@ msgstr ""
"le monde opère depuis un point d'entrée commun, nous reprécisons le "
"glossaire suivant des termes Python communs :"
#: distutils/introduction.rst:157
#: distutils/introduction.rst:146
msgid "module"
msgstr "module"
#: distutils/introduction.rst:155
#: distutils/introduction.rst:144
msgid ""
"the basic unit of code reusability in Python: a block of code imported by "
"some other code. Three types of modules concern us here: pure Python "
@ -323,11 +298,11 @@ msgstr ""
"un autre code. Trois types de modules nous concernent ici : les purs modules "
"Python, les modules d'extension, et les packages."
#: distutils/introduction.rst:162
#: distutils/introduction.rst:151
msgid "pure Python module"
msgstr "pur module Python"
#: distutils/introduction.rst:160
#: distutils/introduction.rst:149
msgid ""
"a module written in Python and contained in a single :file:`.py` file (and "
"possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure "
@ -336,11 +311,11 @@ msgstr ""
"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et "
"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\""
#: distutils/introduction.rst:170
#: distutils/introduction.rst:159
msgid "extension module"
msgstr "module d'extension"
#: distutils/introduction.rst:165
#: distutils/introduction.rst:154
msgid ""
"a module written in the low-level language of the Python implementation: C/C+"
"+ for Python, Java for Jython. Typically contained in a single dynamically "
@ -350,19 +325,19 @@ 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:175
#: distutils/introduction.rst:164
msgid "package"
msgstr "paquet"
#: distutils/introduction.rst:173
#: distutils/introduction.rst:162
msgid ""
"a module that contains other modules; typically contained in a directory in "
"the filesystem and distinguished from other directories by the presence of a "
@ -372,11 +347,11 @@ msgstr ""
"répertoire du système de fichier et qui se distingue des autres répertoires "
"par la présence d'un fichier :file:`__init__.py`."
#: distutils/introduction.rst:185
#: distutils/introduction.rst:174
msgid "root package"
msgstr "paquet racine"
#: distutils/introduction.rst:178
#: distutils/introduction.rst:167
msgid ""
"the root of the hierarchy of packages. (This isn't really a package, since "
"it doesn't have an :file:`__init__.py` file. But we have to call it "
@ -395,11 +370,11 @@ msgstr ""
"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` "
"contribuent à faire partie du package racine."
#: distutils/introduction.rst:190
#: distutils/introduction.rst:179
msgid "Distutils-specific terminology"
msgstr "Terminologie spécifique à Distutils"
#: distutils/introduction.rst:192
#: distutils/introduction.rst:181
msgid ""
"The following terms apply more specifically to the domain of distributing "
"Python modules using the Distutils:"
@ -407,11 +382,11 @@ msgstr ""
"Les termes suivant s'appliquent plus spécifiquement au domaine de la "
"distribution de modules Python en utilisant les Distutils :"
#: distutils/introduction.rst:201
#: distutils/introduction.rst:190
msgid "module distribution"
msgstr "module de distribution"
#: distutils/introduction.rst:196
#: distutils/introduction.rst:185
msgid ""
"a collection of Python modules distributed together as a single downloadable "
"resource and meant to be installed *en masse*. Examples of some well-known "
@ -426,11 +401,11 @@ msgstr ""
"soit déjà pris dans le contexte Python : une distribution de module simple "
"pourrait contenir zéro, on ou plusieurs packages Python"
#: distutils/introduction.rst:205
#: distutils/introduction.rst:194
msgid "pure module distribution"
msgstr "distribution de modules purs"
#: distutils/introduction.rst:204
#: distutils/introduction.rst:193
msgid ""
"a module distribution that contains only pure Python modules and packages. "
"Sometimes referred to as a \"pure distribution.\""
@ -438,11 +413,11 @@ msgstr ""
"une distribution de module qui contient seulement des modules purs et "
"packages Python. Parfois appelée « distribution pure »."
#: distutils/introduction.rst:209
#: distutils/introduction.rst:198
msgid "non-pure module distribution"
msgstr "distribution de module non pur"
#: distutils/introduction.rst:208
#: distutils/introduction.rst:197
msgid ""
"a module distribution that contains at least one extension module. "
"Sometimes referred to as a \"non-pure distribution.\""
@ -450,11 +425,11 @@ msgstr ""
"une distribution de module qui contient au moins un module d'extension. "
"Parfois appelée « distribution non-pure »."
#: distutils/introduction.rst:213
#: distutils/introduction.rst:202
msgid "distribution root"
msgstr "distribution racine"
#: distutils/introduction.rst:212
#: distutils/introduction.rst:201
msgid ""
"the top-level directory of your source tree (or source distribution); the "
"directory where :file:`setup.py` exists. Generally :file:`setup.py` will "
@ -463,3 +438,26 @@ msgstr ""
"le répertoire de plus haut niveau de votre arborescence (ou distribution "
"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:"
"`setup.py` est exécuté depuis ce répertoire."
#~ msgid ""
#~ "If you want to make things really easy for your users, you can create one "
#~ "or more built distributions for them. For instance, if you are running "
#~ "on a Windows machine, and want to make things easy for other Windows "
#~ "users, you can create an executable installer (the most appropriate type "
#~ "of built distribution for this platform) with the :command:"
#~ "`bdist_wininst` command. For example::"
#~ msgstr ""
#~ "Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, "
#~ "vous pouvez créer on ou plusieurs distributions compilées pour eux. En "
#~ "loccurrence, si vous tournez sous une machine Windows, et que vous "
#~ "voulez rendre les choses faciles pour les autres utilisateurs Windows, "
#~ "vous pouvez créer un installateur exécutable (le mode de distribution le "
#~ "plus approprié pour cette plateforme) avec la commande :command:"
#~ "`bdist_wininst`. Par exemple :"
#~ msgid ""
#~ "will create an executable installer, :file:`foo-1.0.win32.exe`, in the "
#~ "current directory."
#~ msgstr ""
#~ "va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le "
#~ "répertoire courant."

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: 2020-04-16 22:30+0200\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 ""
@ -983,7 +983,7 @@ msgstr ""
"installations ``système`` ; ``site.USER_BASE`` pour les installations "
"``utilisateur``). *Distutils* permet à *répertoire* d'être un chemin "
"d'installation absolu, mais cela est déconseillé dans la mesure où c'est "
"incompatible avec la mise au format `wheel` du paquet. Aucune information de "
"incompatible avec la mise au format *wheel* du paquet. Aucune information de "
"répertoire provenant de *fichiers* n'est utilisée pour déterminer "
"lemplacement final d'installation du fichier ; seul le nom du fichier est "
"utilisé."
@ -1262,7 +1262,7 @@ msgid ""
"``['foo', 'bar']``, Otherwise, it will be converted to a list of one string."
msgstr ""
"Pour préserver la rétrocompatibilité, ce champ accepte aussi une chaîne de "
"caractères. Si vous passez une chaine de caractères séparée par des virgules "
"caractères. Si vous passez une chaîne de caractères séparée par des virgules "
"``'truc, machin'``, elle sera convertie en ``['truc', 'machin']``, "
"Autrement, elle sera convertie en une liste d'une chaîne de caractères."

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-22 23:13+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"
@ -110,6 +110,10 @@ msgstr "``bztar``"
msgid "bzip2'ed tar file (:file:`.tar.bz2`)"
msgstr "Fichier *tar* compressé par *bzip2* (:file:`.tar.bz2`)"
#: distutils/sourcedist.rst:37 distutils/sourcedist.rst:43
msgid "\\(5)"
msgstr ""
#: distutils/sourcedist.rst:37
msgid "``xztar``"
msgstr "``xztar``"
@ -127,8 +131,8 @@ msgid "compressed tar file (:file:`.tar.Z`)"
msgstr "Fichier *tar* compressé par *compress* (:file:`.tar.Z`)"
#: distutils/sourcedist.rst:40
msgid "\\(4)"
msgstr "\\(4)"
msgid "(4),(5)"
msgstr ""
#: distutils/sourcedist.rst:43
msgid "``tar``"
@ -172,6 +176,12 @@ msgstr ""
#: distutils/sourcedist.rst:65
msgid ""
"deprecated by `PEP 527 <https://peps.python.org/pep-0527/>`_; `PyPI <https://"
"pypi.org>`_ only accepts ``.zip`` and ``.tar.gz`` files."
msgstr ""
#: distutils/sourcedist.rst:68
msgid ""
"When using any ``tar`` format (``gztar``, ``bztar``, ``xztar``, ``ztar`` or "
"``tar``), under Unix you can specify the ``owner`` and ``group`` names that "
"will be set for each member of the archive."
@ -181,17 +191,17 @@ msgstr ""
"propriétaire et le groupe qui seront appliqué pour chaque fichier de "
"l'archive."
#: distutils/sourcedist.rst:69
#: distutils/sourcedist.rst:72
msgid "For example, if you want all files of the archive to be owned by root::"
msgstr ""
"Par exemple, si vous voulez que tous les fichiers de l'archive soient détenu "
"par *root* ::"
#: distutils/sourcedist.rst:77
#: distutils/sourcedist.rst:80
msgid "Specifying the files to distribute"
msgstr "Spécifier les fichiers à distribuer"
#: distutils/sourcedist.rst:79
#: distutils/sourcedist.rst:82
msgid ""
"If you don't supply an explicit list of files (or instructions on how to "
"generate one), the :command:`sdist` command puts a minimal default set into "
@ -201,7 +211,7 @@ msgstr ""
"instructions pour la générer), la commande :command:`sdist` en met par "
"défaut le minimum dans la distribution source :"
#: distutils/sourcedist.rst:83
#: distutils/sourcedist.rst:86
msgid ""
"all Python source files implied by the ``py_modules`` and ``packages`` "
"options"
@ -209,14 +219,14 @@ msgstr ""
"tous les fichiers source Python sous-entendus par les options ``py_modules`` "
"et ``packages``"
#: distutils/sourcedist.rst:86
#: distutils/sourcedist.rst:89
msgid ""
"all C source files mentioned in the ``ext_modules`` or ``libraries`` options"
msgstr ""
"tous les fichiers source C mentionnés dans les arguments ``ext_modules`` ou "
"``libraries``"
#: distutils/sourcedist.rst:92
#: distutils/sourcedist.rst:95
msgid ""
"scripts identified by the ``scripts`` option See :ref:`distutils-installing-"
"scripts`."
@ -224,7 +234,7 @@ msgstr ""
"scripts identifiés par l'argument ``scripts``. Voir :ref:`distutils-"
"installing-scripts`."
#: distutils/sourcedist.rst:95
#: distutils/sourcedist.rst:98
msgid ""
"anything that looks like a test script: :file:`test/test\\*.py` (currently, "
"the Distutils don't do anything with test scripts except include them in "
@ -236,7 +246,7 @@ msgstr ""
"inclure dans les distributions sources, mais dans le futur un standard sera "
"implémenté pour tester les distributions de module Python)"
#: distutils/sourcedist.rst:100
#: distutils/sourcedist.rst:103
msgid ""
"Any of the standard README files (:file:`README`, :file:`README.txt`, or :"
"file:`README.rst`), :file:`setup.py` (or whatever you called your setup "
@ -247,7 +257,7 @@ msgstr ""
"script d'installation si vous l'avez appelé autrement) et le fichier :file:"
"`setup.cfg`."
#: distutils/sourcedist.rst:104
#: distutils/sourcedist.rst:107
msgid ""
"all files that matches the ``package_data`` metadata. See :ref:`distutils-"
"installing-package-data`."
@ -255,7 +265,7 @@ msgstr ""
"tous les fichiers associés aux méta-données ``package_data``. Voir :ref:"
"`distutils-installing-package-data`."
#: distutils/sourcedist.rst:107
#: distutils/sourcedist.rst:110
msgid ""
"all files that matches the ``data_files`` metadata. See :ref:`distutils-"
"additional-files`."
@ -263,7 +273,7 @@ msgstr ""
"tous les fichiers associés aux méta-données ``data_files``. Voir :ref:"
"`distutils-additional-files`."
#: distutils/sourcedist.rst:110
#: distutils/sourcedist.rst:113
msgid ""
"Sometimes this is enough, but usually you will want to specify additional "
"files to distribute. The typical way to do this is to write a *manifest "
@ -283,7 +293,7 @@ msgstr ""
"`sdist` traite ce modèle et génère un manifeste à partir de ces instructions "
"et de ce qu'elle trouve dans le système de fichiers."
#: distutils/sourcedist.rst:118
#: distutils/sourcedist.rst:121
msgid ""
"If you prefer to roll your own manifest file, the format is simple: one "
"filename per line, regular files (or symlinks to them) only. If you do "
@ -296,7 +306,7 @@ msgstr ""
"vous devez tout spécifier : les groupes de fichiers par défaut décrits au-"
"dessus ne sont pas inclus automatiquement dans ce cas."
#: distutils/sourcedist.rst:123
#: distutils/sourcedist.rst:126
msgid ""
"An existing generated :file:`MANIFEST` will be regenerated without :command:"
"`sdist` comparing its modification time to the one of :file:`MANIFEST.in` "
@ -306,7 +316,7 @@ msgstr ""
"command:`sdist` ne compare son heure de modification à :file:`MANIFEST.in` "
"ou :file:`setup.py`."
#: distutils/sourcedist.rst:128
#: distutils/sourcedist.rst:131
msgid ""
":file:`MANIFEST` files start with a comment indicating they are generated. "
"Files without this comment are not overwritten or removed."
@ -315,7 +325,7 @@ msgstr ""
"sont générés. Les fichiers sans ce commentaire ne sont pas réécrits ou "
"supprimés."
#: distutils/sourcedist.rst:132
#: distutils/sourcedist.rst:135
msgid ""
":command:`sdist` will read a :file:`MANIFEST` file if no :file:`MANIFEST.in` "
"exists, like it used to do."
@ -323,14 +333,14 @@ msgstr ""
":command:`sdist` lira un ficher :file:`MANIFEST` s'il n'existe pas de :file:"
"`MANIFEST.in` , tel qu'il en avait l'habitude."
#: distutils/sourcedist.rst:136
#: distutils/sourcedist.rst:139
msgid ""
":file:`README.rst` is now included in the list of distutils standard READMEs."
msgstr ""
"Le fichier :file:`README.rst` est maintenant inclus dans la liste des "
"fichiers *README* standards de *distutils*."
#: distutils/sourcedist.rst:140
#: distutils/sourcedist.rst:143
msgid ""
"The manifest template has one command per line, where each command specifies "
"a set of files to include or exclude from the source distribution. For an "
@ -340,7 +350,7 @@ msgstr ""
"spécifie un ensemble de fichiers à inclure ou à exclure de la distribution "
"source. Par exemple, regardons à nouveau le propre manifeste de Distutils :"
#: distutils/sourcedist.rst:150
#: distutils/sourcedist.rst:153
msgid ""
"The meanings should be fairly clear: include all files in the distribution "
"root matching :file:`\\*.txt`, all files anywhere under the :file:`examples` "
@ -363,7 +373,7 @@ msgstr ""
"inclusions standards). Il existe d'autres commandes dans le langage du "
"fichier manifeste, consultez le chapitre :ref:`sdist-cmd`."
#: distutils/sourcedist.rst:160
#: distutils/sourcedist.rst:163
msgid ""
"The order of commands in the manifest template matters: initially, we have "
"the list of default files as described above, and each command in the "
@ -377,13 +387,13 @@ msgstr ""
"Une fois que le traitement du manifeste modèle est fini, nous enlevons les "
"fichiers qui ne doivent pas être inclus dans la distribution source :"
#: distutils/sourcedist.rst:166
#: distutils/sourcedist.rst:169
msgid "all files in the Distutils \"build\" tree (default :file:`build/`)"
msgstr ""
"tous les fichiers dans l'arborescence de *build* de Distutils (par défaut :"
"file:`build/`)"
#: distutils/sourcedist.rst:168
#: distutils/sourcedist.rst:171
msgid ""
"all files in directories named :file:`RCS`, :file:`CVS`, :file:`.svn`, :file:"
"`.hg`, :file:`.git`, :file:`.bzr` or :file:`_darcs`"
@ -391,7 +401,7 @@ msgstr ""
"tous les fichiers dans les dossiers nommés :file:`RCS`, :file:`CVS`, :file:`."
"svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` ou :file:`_darcs`"
#: distutils/sourcedist.rst:171
#: distutils/sourcedist.rst:174
msgid ""
"Now we have our complete list of files, which is written to the manifest for "
"future reference, and then used to build the source distribution archive(s)."
@ -400,7 +410,7 @@ msgstr ""
"écrite dans le manifeste pour une utilisation future et sera utilisée pour "
"construire la ou les archive(s) de notre distribution source."
#: distutils/sourcedist.rst:174
#: distutils/sourcedist.rst:177
msgid ""
"You can disable the default set of included files with the :option:`!--no-"
"defaults` option, and you can disable the standard exclude set with :option:"
@ -410,7 +420,7 @@ msgstr ""
"utilisant l'option :option:`!--no-defaults`, ainsi que désactiver les "
"exclusions standards avec l'option :option:`!--no-prune`."
#: distutils/sourcedist.rst:178
#: distutils/sourcedist.rst:181
msgid ""
"Following the Distutils' own manifest template, let's trace how the :command:"
"`sdist` command builds the list of files to include in the Distutils source "
@ -420,7 +430,7 @@ msgstr ""
"`sdist` construit la liste des fichiers à inclure dans la distribution "
"source de Distutils."
#: distutils/sourcedist.rst:182
#: distutils/sourcedist.rst:185
msgid ""
"include all Python source files in the :file:`distutils` and :file:"
"`distutils/command` subdirectories (because packages corresponding to those "
@ -433,7 +443,7 @@ msgstr ""
"``packages`` du script d'installation --- voir le chapitre :ref:`setup-"
"script`)"
#: distutils/sourcedist.rst:187
#: distutils/sourcedist.rst:190
msgid ""
"include :file:`README.txt`, :file:`setup.py`, and :file:`setup.cfg` "
"(standard files)"
@ -441,11 +451,11 @@ msgstr ""
"inclure :file:`README.txt`, :file:`setup.py` et :file:`setup.cfg` (fichiers "
"standards)"
#: distutils/sourcedist.rst:190
#: distutils/sourcedist.rst:193
msgid "include :file:`test/test\\*.py` (standard files)"
msgstr "inclure :file:`test/test\\*.py` (fichiers standard)"
#: distutils/sourcedist.rst:192
#: distutils/sourcedist.rst:195
msgid ""
"include :file:`\\*.txt` in the distribution root (this will find :file:"
"`README.txt` a second time, but such redundancies are weeded out later)"
@ -454,7 +464,7 @@ msgstr ""
"`README.txt` une seconde fois, mais les redondances sont supprimées plus "
"tard)"
#: distutils/sourcedist.rst:195
#: distutils/sourcedist.rst:198
msgid ""
"include anything matching :file:`\\*.txt` or :file:`\\*.py` in the sub-tree "
"under :file:`examples`,"
@ -462,7 +472,7 @@ msgstr ""
"inclure tout fichier de la forme :file:`\\*.txt` ou :file:`\\*.py` dans la "
"sous-arborescence de :file:`examples`,"
#: distutils/sourcedist.rst:198
#: distutils/sourcedist.rst:201
msgid ""
"exclude all files in the sub-trees starting at directories matching :file:"
"`examples/sample?/build`\\ ---this may exclude files included by the "
@ -475,7 +485,7 @@ msgstr ""
"important que la commande ``prune`` dans le manifeste modèle vienne après la "
"commande ``recursive-include``"
#: distutils/sourcedist.rst:203
#: distutils/sourcedist.rst:206
msgid ""
"exclude the entire :file:`build` tree, and any :file:`RCS`, :file:`CVS`, :"
"file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` and :file:`_darcs` "
@ -485,7 +495,7 @@ msgstr ""
"`RCS`, :file:`CVS`, :file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` "
"et :file:`_darcs`"
#: distutils/sourcedist.rst:207
#: distutils/sourcedist.rst:210
msgid ""
"Just like in the setup script, file and directory names in the manifest "
"template should always be slash-separated; the Distutils will take care of "
@ -498,11 +508,11 @@ msgstr ""
"la représentation standard de votre plateforme. De cette manière, le "
"manifeste modèle est portable sur tout système d'exploitation."
#: distutils/sourcedist.rst:216
#: distutils/sourcedist.rst:219
msgid "Manifest-related options"
msgstr "Options pour le manifeste"
#: distutils/sourcedist.rst:218
#: distutils/sourcedist.rst:221
msgid ""
"The normal course of operations for the :command:`sdist` command is as "
"follows:"
@ -510,7 +520,7 @@ msgstr ""
"L'ordre normal des opérations pour la commande :command:`sdist` est le "
"suivant :"
#: distutils/sourcedist.rst:220
#: distutils/sourcedist.rst:223
msgid ""
"if the manifest file (:file:`MANIFEST` by default) exists and the first line "
"does not have a comment indicating it is generated from :file:`MANIFEST.in`, "
@ -520,7 +530,7 @@ msgstr ""
"première ligne n'a pas de commentaire indiquant qu'il a été généré par :file:"
"`MANIFEST.in`, alors il est utilisé tel quel, inchangé"
#: distutils/sourcedist.rst:224
#: distutils/sourcedist.rst:227
msgid ""
"if the manifest file doesn't exist or has been previously automatically "
"generated, read :file:`MANIFEST.in` and create the manifest"
@ -528,7 +538,7 @@ msgstr ""
"si le manifeste n'existe pas ou s'il a été généré automatiquement, lire :"
"file:`MANIFEST.in` et créer le manifeste"
#: distutils/sourcedist.rst:227
#: distutils/sourcedist.rst:230
msgid ""
"if neither :file:`MANIFEST` nor :file:`MANIFEST.in` exist, create a manifest "
"with just the default file set"
@ -536,7 +546,7 @@ msgstr ""
"s'il n'existe ni :file:`MANIFEST`, ni :file:`MANIFEST.in`, alors créer un "
"manifeste contenant uniquement le groupe de fichiers par défaut"
#: distutils/sourcedist.rst:230
#: distutils/sourcedist.rst:233
msgid ""
"use the list of files now in :file:`MANIFEST` (either just generated or read "
"in) to create the source distribution archive(s)"
@ -544,7 +554,7 @@ msgstr ""
"utiliser maintenant la liste de fichiers de :file:`MANIFEST` (qu'il ait été "
"généré ou lu) pour créer la ou les archive(s) de la distribution source"
#: distutils/sourcedist.rst:233
#: distutils/sourcedist.rst:236
msgid ""
"There are a couple of options that modify this behaviour. First, use the :"
"option:`!--no-defaults` and :option:`!--no-prune` to disable the standard "
@ -554,7 +564,7 @@ msgstr ""
"options :option:`!--no-defaults` et :option:`!--no-prune` pour désactiver "
"les inclusions et exclusions standards."
#: distutils/sourcedist.rst:237
#: distutils/sourcedist.rst:240
msgid ""
"Second, you might just want to (re)generate the manifest, but not create a "
"source distribution::"
@ -562,8 +572,11 @@ msgstr ""
"Ensuite, si vous ne voulez que (ré)générer le manifeste, mais pas créer la "
"distribution source ::"
#: distutils/sourcedist.rst:242
#: distutils/sourcedist.rst:245
msgid ":option:`!-o` is a shortcut for :option:`!--manifest-only`."
msgstr ""
"L'option :option:`!-o` est un raccourci pour l'option :option:`!--manifest-"
"only`."
#~ msgid "\\(4)"
#~ msgstr "\\(4)"

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: 2019-10-19 23:06+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"Language: fr\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 "
@ -140,7 +141,7 @@ msgstr ""
"précédent n'utilise qu'une partie. L'exemple précise des méta-informations "
"pour construire les paquets, et définir le contenu du paquet. Normalement un "
"paquet contient des modules additionnels, comme des modules sources, "
"documentation, sous paquets, etc. Referez-vous à la documentation de "
"documentation, sous paquets, etc. Référez-vous à la documentation de "
"*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les "
"fonctionnalités de *distutils*. Cette section n'explique que la construction "
"de modules d'extension."

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-12-25 17:24+0100\n"
"Last-Translator: Antoine <antoine.venier@hotmail.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -421,9 +421,10 @@ msgstr ""
"compiler :"
#: extending/embedding.rst:304
#, fuzzy
msgid ""
"``pythonX.Y-config --ldflags`` will give you the recommended flags when "
"linking:"
"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags "
"when linking:"
msgstr ""
"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de "
"l'édition de lien :"

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: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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-02-24 17:33+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-02-07 20:03+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -28,7 +28,7 @@ msgstr ""
#: extending/newtypes.rst:14
msgid ""
"Here is the definition of :c:type:`PyTypeObject`, with some fields only used "
"in debug builds omitted:"
"in :ref:`debug builds <debug-build>` omitted:"
msgstr ""
#: extending/newtypes.rst:20
@ -94,7 +94,13 @@ msgid ""
"of this function::"
msgstr ""
#: extending/newtypes.rst:83
#: extending/newtypes.rst:79
msgid ""
"If your type supports garbage collection, the destructor should call :c:func:"
"`PyObject_GC_UnTrack` before clearing any member fields::"
msgstr ""
#: extending/newtypes.rst:95
msgid ""
"One important requirement of the deallocator function is that it leaves any "
"pending exceptions alone. This is important since deallocators are "
@ -109,7 +115,7 @@ msgid ""
"c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` functions::"
msgstr ""
#: extending/newtypes.rst:122
#: extending/newtypes.rst:134
msgid ""
"There are limitations to what you can safely do in a deallocator function. "
"First, if your type supports garbage collection (using :c:member:"
@ -122,43 +128,43 @@ msgid ""
"tp_dealloc` again, causing a double free and a crash."
msgstr ""
#: extending/newtypes.rst:131
#: extending/newtypes.rst:143
msgid ""
"Starting with Python 3.4, it is recommended not to put any complex "
"finalization code in :c:member:`~PyTypeObject.tp_dealloc`, and instead use "
"the new :c:member:`~PyTypeObject.tp_finalize` type method."
msgstr ""
#: extending/newtypes.rst:136
#: extending/newtypes.rst:148
msgid ":pep:`442` explains the new finalization scheme."
msgstr ":pep:`442` explique le nouveau schéma de finalisation."
#: extending/newtypes.rst:143
#: extending/newtypes.rst:155
msgid "Object Presentation"
msgstr "Présentation de l'objet"
#: extending/newtypes.rst:145
#: extending/newtypes.rst:157
msgid ""
"In Python, there are two ways to generate a textual representation of an "
"object: the :func:`repr` function, and the :func:`str` function. (The :func:"
"`print` function just calls :func:`str`.) These handlers are both optional."
msgstr ""
#: extending/newtypes.rst:154
#: extending/newtypes.rst:166
msgid ""
"The :c:member:`~PyTypeObject.tp_repr` handler should return a string object "
"containing a representation of the instance for which it is called. Here is "
"a simple example::"
msgstr ""
#: extending/newtypes.rst:165
#: extending/newtypes.rst:177
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:169
#: extending/newtypes.rst:181
msgid ""
"The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what the :c:"
"member:`~PyTypeObject.tp_repr` handler described above is to :func:`repr`; "
@ -169,15 +175,15 @@ msgid ""
"the :c:member:`~PyTypeObject.tp_repr` handler is used instead."
msgstr ""
#: extending/newtypes.rst:176
#: extending/newtypes.rst:188
msgid "Here is a simple example::"
msgstr "Voici un exemple simple ::"
#: extending/newtypes.rst:188
#: extending/newtypes.rst:200
msgid "Attribute Management"
msgstr "Gestion des attributs"
#: extending/newtypes.rst:190
#: extending/newtypes.rst:202
msgid ""
"For every object which can support attributes, the corresponding type must "
"provide the functions that control how the attributes are resolved. There "
@ -187,37 +193,37 @@ msgid ""
"handler is ``NULL``."
msgstr ""
#: extending/newtypes.rst:196
#: extending/newtypes.rst:208
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:208
#: 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 "
"mechanism that is available."
msgstr ""
#: extending/newtypes.rst:219
#: extending/newtypes.rst:231
msgid "Generic Attribute Management"
msgstr "Gestion des attributs génériques"
#: extending/newtypes.rst:221
#: extending/newtypes.rst:233
msgid ""
"Most extension types only use *simple* attributes. So, what makes the "
"attributes simple? There are only a couple of conditions that must be met:"
msgstr ""
#: extending/newtypes.rst:224
#: extending/newtypes.rst:236
msgid ""
"The name of the attributes must be known when :c:func:`PyType_Ready` is "
"called."
@ -225,19 +231,19 @@ msgstr ""
"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:"
"`PyType_Ready`."
#: extending/newtypes.rst:227
#: extending/newtypes.rst:239
msgid ""
"No special processing is needed to record that an attribute was looked up or "
"set, nor do actions need to be taken based on the value."
msgstr ""
#: extending/newtypes.rst:230
#: extending/newtypes.rst:242
msgid ""
"Note that this list does not place any restrictions on the values of the "
"attributes, when the values are computed, or how relevant data is stored."
msgstr ""
#: extending/newtypes.rst:233
#: extending/newtypes.rst:245
msgid ""
"When :c:func:`PyType_Ready` is called, it uses three tables referenced by "
"the type object to create :term:`descriptor`\\s which are placed in the "
@ -249,19 +255,19 @@ msgid ""
"``NULL`` as well, allowing the base type to handle attributes."
msgstr ""
#: extending/newtypes.rst:241
#: extending/newtypes.rst:253
msgid "The tables are declared as three fields of the type object::"
msgstr ""
"Les tables sont déclarées sous la forme de trois champs de type objet ::"
#: extending/newtypes.rst:247
#: extending/newtypes.rst:259
msgid ""
"If :c:member:`~PyTypeObject.tp_methods` is not ``NULL``, it must refer to an "
"array of :c:type:`PyMethodDef` structures. Each entry in the table is an "
"instance of this structure::"
msgstr ""
#: extending/newtypes.rst:258
#: extending/newtypes.rst:270
msgid ""
"One entry should be defined for each method provided by the type; no entries "
"are needed for methods inherited from a base type. One additional entry is "
@ -269,7 +275,7 @@ msgid ""
"attr:`ml_name` field of the sentinel must be ``NULL``."
msgstr ""
#: extending/newtypes.rst:263
#: extending/newtypes.rst:275
msgid ""
"The second table is used to define attributes which map directly to data "
"stored in the instance. A variety of primitive C types are supported, and "
@ -277,7 +283,7 @@ msgid ""
"defined as::"
msgstr ""
#: extending/newtypes.rst:275
#: extending/newtypes.rst:287
msgid ""
"For each entry in the table, a :term:`descriptor` will be constructed and "
"added to the type which will be able to extract a value from the instance "
@ -288,53 +294,48 @@ msgid ""
"accessed."
msgstr ""
#: extending/newtypes.rst:282
#: extending/newtypes.rst:294
msgid ""
"The following flag constants are defined in :file:`structmember.h`; they may "
"be combined using bitwise-OR."
msgstr ""
#: extending/newtypes.rst:286
#: extending/newtypes.rst:298
msgid "Constant"
msgstr "Constante"
#: extending/newtypes.rst:286
#: extending/newtypes.rst:298
msgid "Meaning"
msgstr "Signification"
#: extending/newtypes.rst:288
#: extending/newtypes.rst:300
msgid ":const:`READONLY`"
msgstr ":const:`READONLY`"
#: extending/newtypes.rst:288
#: extending/newtypes.rst:300
msgid "Never writable."
msgstr "Jamais disponible en écriture."
#: extending/newtypes.rst:290
msgid ":const:`READ_RESTRICTED`"
msgstr ":const:`READ_RESTRICTED`"
#: extending/newtypes.rst:302
#, fuzzy
msgid ":const:`PY_AUDIT_READ`"
msgstr ":const:`READONLY`"
#: extending/newtypes.rst:290
msgid "Not readable in restricted mode."
msgstr "Non disponible en lecture, dans le mode restreint."
#: extending/newtypes.rst:302
msgid ""
"Emit an ``object.__getattr__`` :ref:`audit events <audit-events>` before "
"reading."
msgstr ""
#: extending/newtypes.rst:292
msgid ":const:`WRITE_RESTRICTED`"
msgstr ":const:`WRITE_RESTRICTED`"
#: extending/newtypes.rst:307
msgid ""
":const:`RESTRICTED`, :const:`READ_RESTRICTED` and :const:`WRITE_RESTRICTED` "
"are deprecated. However, :const:`READ_RESTRICTED` is an alias for :const:"
"`PY_AUDIT_READ`, so fields that specify either :const:`RESTRICTED` or :const:"
"`READ_RESTRICTED` will also raise an audit event."
msgstr ""
#: extending/newtypes.rst:292
msgid "Not writable in restricted mode."
msgstr "Non disponible en écriture dans le mode restreint."
#: extending/newtypes.rst:294
msgid ":const:`RESTRICTED`"
msgstr ":const:`RESTRICTED`"
#: extending/newtypes.rst:294
msgid "Not readable or writable in restricted mode."
msgstr "Non disponible en lecture ou écriture, en mode restreint."
#: extending/newtypes.rst:303
#: extending/newtypes.rst:320
msgid ""
"An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` "
"table to build descriptors that are used at runtime is that any attribute "
@ -351,39 +352,39 @@ msgstr ""
"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` "
"pour renvoyer le *docstring*."
#: extending/newtypes.rst:309
#: extending/newtypes.rst:326
msgid ""
"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry "
"with a :attr:`name` value of ``NULL`` is required."
msgstr ""
#: extending/newtypes.rst:323
#: extending/newtypes.rst:340
msgid "Type-specific Attribute Management"
msgstr "Gestion des attributs de type spécifiques"
#: extending/newtypes.rst:325
#: 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 "
"functionality, you'll understand what needs to be done."
msgstr ""
#: extending/newtypes.rst:333
#: extending/newtypes.rst:350
msgid ""
"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object "
"requires an attribute look-up. It is called in the same situations where "
"the :meth:`__getattr__` method of a class would be called."
msgstr ""
#: extending/newtypes.rst:337
#: extending/newtypes.rst:354
msgid "Here is an example::"
msgstr "Voici un exemple ::"
#: extending/newtypes.rst:353
#: extending/newtypes.rst:370
msgid ""
"The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:"
"`__setattr__` or :meth:`__delattr__` method of a class instance would be "
@ -393,11 +394,11 @@ msgid ""
"should be set to ``NULL``. ::"
msgstr ""
#: extending/newtypes.rst:367
#: extending/newtypes.rst:384
msgid "Object Comparison"
msgstr "Comparaison des objets"
#: extending/newtypes.rst:373
#: extending/newtypes.rst:390
msgid ""
"The :c:member:`~PyTypeObject.tp_richcompare` handler is called when "
"comparisons are needed. It is analogous to the :ref:`rich comparison "
@ -405,34 +406,34 @@ msgid ""
"`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`."
msgstr ""
#: extending/newtypes.rst:378
#: extending/newtypes.rst:395
msgid ""
"This function is called with two Python objects and the operator as "
"arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, "
"``Py_GT``, ``Py_LT`` or ``Py_GT``. It should compare the two objects with "
"``Py_GE``, ``Py_LT`` or ``Py_GT``. It should compare the two objects with "
"respect to the specified operator and return ``Py_True`` or ``Py_False`` if "
"the comparison is successful, ``Py_NotImplemented`` to indicate that "
"comparison is not implemented and the other object's comparison method "
"should be tried, or ``NULL`` if an exception was set."
msgstr ""
#: extending/newtypes.rst:386
#: extending/newtypes.rst:403
msgid ""
"Here is a sample implementation, for a datatype that is considered equal if "
"the size of an internal pointer is equal::"
msgstr ""
#: extending/newtypes.rst:416
#: extending/newtypes.rst:433
msgid "Abstract Protocol Support"
msgstr "Support pour le protocole abstrait"
#: extending/newtypes.rst:418
#: extending/newtypes.rst:435
msgid ""
"Python supports a variety of *abstract* 'protocols;' the specific interfaces "
"provided to use these interfaces are documented in :ref:`abstract`."
msgstr ""
#: extending/newtypes.rst:422
#: extending/newtypes.rst:439
msgid ""
"A number of these abstract interfaces were defined early in the development "
"of the Python implementation. In particular, the number, mapping, and "
@ -447,7 +448,7 @@ msgid ""
"slot, but a slot may still be unfilled.) ::"
msgstr ""
#: extending/newtypes.rst:437
#: extending/newtypes.rst:454
msgid ""
"If you wish your object to be able to act like a number, a sequence, or a "
"mapping object, then you place the address of a structure that implements "
@ -458,13 +459,13 @@ msgid ""
"distribution. ::"
msgstr ""
#: extending/newtypes.rst:446
#: extending/newtypes.rst:463
msgid ""
"This function, if you choose to provide it, should return a hash number for "
"an instance of your data type. Here is a simple example::"
msgstr ""
#: extending/newtypes.rst:459
#: extending/newtypes.rst:476
msgid ""
":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. "
"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, "
@ -472,7 +473,7 @@ msgid ""
"computation is successful, as seen above."
msgstr ""
#: extending/newtypes.rst:468
#: extending/newtypes.rst:485
msgid ""
"This function is called when an instance of your data type is \"called\", "
"for example, if ``obj1`` is an instance of your data type and the Python "
@ -480,23 +481,23 @@ msgid ""
"handler is invoked."
msgstr ""
#: extending/newtypes.rst:472
#: extending/newtypes.rst:489
msgid "This function takes three arguments:"
msgstr "Cette fonction prend trois arguments :"
#: extending/newtypes.rst:474
#: extending/newtypes.rst:491
msgid ""
"*self* is the instance of the data type which is the subject of the call. If "
"the call is ``obj1('hello')``, then *self* is ``obj1``."
msgstr ""
#: extending/newtypes.rst:477
#: extending/newtypes.rst:494
msgid ""
"*args* is a tuple containing the arguments to the call. You can use :c:func:"
"`PyArg_ParseTuple` to extract the arguments."
msgstr ""
#: extending/newtypes.rst:480
#: extending/newtypes.rst:497
msgid ""
"*kwds* is a dictionary of keyword arguments that were passed. If this is non-"
"``NULL`` and you support keyword arguments, use :c:func:"
@ -505,11 +506,11 @@ msgid ""
"`TypeError` with a message saying that keyword arguments are not supported."
msgstr ""
#: extending/newtypes.rst:486
#: extending/newtypes.rst:503
msgid "Here is a toy ``tp_call`` implementation::"
msgstr "Ceci est une implémentation ``tp_call`` très simple ::"
#: extending/newtypes.rst:512
#: extending/newtypes.rst:529
msgid ""
"These functions provide support for the iterator protocol. Both handlers "
"take exactly one parameter, the instance for which they are being called, "
@ -520,7 +521,7 @@ msgid ""
"__next__` method."
msgstr ""
#: extending/newtypes.rst:519
#: extending/newtypes.rst:536
msgid ""
"Any :term:`iterable` object must implement the :c:member:`~PyTypeObject."
"tp_iter` handler, which must return an :term:`iterator` object. Here the "
@ -531,7 +532,7 @@ msgstr ""
"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que "
"pour les classes *Python* :"
#: extending/newtypes.rst:523
#: extending/newtypes.rst:540
msgid ""
"For collections (such as lists and tuples) which can support multiple "
"independent iterators, a new iterator should be created and returned by each "
@ -541,7 +542,7 @@ msgstr ""
"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être "
"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`."
#: extending/newtypes.rst:526
#: extending/newtypes.rst:543
msgid ""
"Objects which can only be iterated over once (usually due to side effects of "
"iteration, such as file objects) can implement :c:member:`~PyTypeObject."
@ -549,7 +550,7 @@ msgid ""
"therefore implement the :c:member:`~PyTypeObject.tp_iternext` handler."
msgstr ""
#: extending/newtypes.rst:531
#: extending/newtypes.rst:548
msgid ""
"Any :term:`iterator` object should implement both :c:member:`~PyTypeObject."
"tp_iter` and :c:member:`~PyTypeObject.tp_iternext`. An iterator's :c:member:"
@ -564,11 +565,11 @@ msgid ""
"``NULL``."
msgstr ""
#: extending/newtypes.rst:547
#: extending/newtypes.rst:564
msgid "Weak Reference Support"
msgstr "Prise en charge de la référence faible"
#: extending/newtypes.rst:549
#: extending/newtypes.rst:566
msgid ""
"One of the goals of Python's weak reference implementation is to allow any "
"type to participate in the weak reference mechanism without incurring the "
@ -579,11 +580,11 @@ msgstr ""
"faible sans avoir à supporter le surcoût de la performance critique des "
"certains objets, tels que les nombres."
#: extending/newtypes.rst:554
#: extending/newtypes.rst:571
msgid "Documentation for the :mod:`weakref` module."
msgstr "Documentation pour le module :mod:`weakref`."
#: extending/newtypes.rst:556
#: extending/newtypes.rst:573
msgid ""
"For an object to be weakly referencable, the extension type must do two "
"things:"
@ -591,9 +592,10 @@ msgstr ""
"Pour qu'un objet soit faiblement référençable, le type d'extension doit "
"faire deux choses :"
#: extending/newtypes.rst:558
#: 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`)."
@ -603,7 +605,7 @@ msgstr ""
"la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise le champ par "
"défaut :c:member:`~PyTypeObject.tp_alloc`)."
#: extending/newtypes.rst:563
#: extending/newtypes.rst:580
msgid ""
"Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the "
"offset of the aforementioned field in the C object structure, so that the "
@ -614,7 +616,7 @@ msgstr ""
"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le "
"modifier."
#: extending/newtypes.rst:567
#: extending/newtypes.rst:584
msgid ""
"Concretely, here is how a trivial object structure would be augmented with "
"the required field::"
@ -622,12 +624,13 @@ msgstr ""
"Concrètement, voici comment une structure d'objet simple serait complétée "
"par le champ requis ::"
#: extending/newtypes.rst:575
msgid "And the corresponding member in the statically-declared type object::"
#: extending/newtypes.rst:592
#, 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 ::"
#: extending/newtypes.rst:583
#: extending/newtypes.rst:600
msgid ""
"The only further addition is that ``tp_dealloc`` needs to clear any weak "
"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-"
@ -637,11 +640,11 @@ msgstr ""
"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ "
"est non ``NULL`` ::"
#: extending/newtypes.rst:599
#: extending/newtypes.rst:616
msgid "More Suggestions"
msgstr "Plus de suggestions"
#: extending/newtypes.rst:601
#: extending/newtypes.rst:618
msgid ""
"In order to learn how to implement any specific method for your new data "
"type, get the :term:`CPython` source code. Go to the :file:`Objects` "
@ -656,7 +659,7 @@ msgstr ""
"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous "
"voulez implémenter."
#: extending/newtypes.rst:607
#: extending/newtypes.rst:624
msgid ""
"When you need to verify that an object is a concrete instance of the type "
"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A "
@ -666,20 +669,38 @@ msgstr ""
"du type que vous implémentez, utilisez la fonction :c:func:"
"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::"
#: extending/newtypes.rst:618
#: extending/newtypes.rst:635
msgid "Download CPython source releases."
msgstr "Télécharger les versions sources de *CPython*."
#: extending/newtypes.rst:618
#: extending/newtypes.rst:635
msgid "https://www.python.org/downloads/source/"
msgstr "https://www.python.org/downloads/source/"
#: extending/newtypes.rst:620
#: extending/newtypes.rst:637
msgid ""
"The CPython project on GitHub, where the CPython source code is developed."
msgstr ""
"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*."
#: extending/newtypes.rst:621
#: extending/newtypes.rst:638
msgid "https://github.com/python/cpython"
msgstr "https://github.com/python/cpython"
#~ msgid ":const:`READ_RESTRICTED`"
#~ msgstr ":const:`READ_RESTRICTED`"
#~ msgid "Not readable in restricted mode."
#~ msgstr "Non disponible en lecture, dans le mode restreint."
#~ msgid ":const:`WRITE_RESTRICTED`"
#~ msgstr ":const:`WRITE_RESTRICTED`"
#~ msgid "Not writable in restricted mode."
#~ msgstr "Non disponible en écriture dans le mode restreint."
#~ msgid ":const:`RESTRICTED`"
#~ msgstr ":const:`RESTRICTED`"
#~ msgid "Not readable or writable in restricted mode."
#~ msgstr "Non disponible en lecture ou écriture, en mode restreint."

View File

@ -5,9 +5,9 @@ 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-06-17 10:15+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"MIME-Version: 1.0\n"
@ -16,7 +16,7 @@ msgstr ""
#: extending/newtypes_tutorial.rst:7
msgid "Defining Extension Types: Tutorial"
msgstr ""
msgstr "Tutoriel : définir des types dans des extensions"
#: extending/newtypes_tutorial.rst:14
msgid ""
@ -26,15 +26,21 @@ msgid ""
"pattern, but there are some details that you need to understand before you "
"can get started. This document is a gentle introduction to the topic."
msgstr ""
"Python permet à l'auteur d'un module d'extension C de définir de nouveaux "
"types qui peuvent être manipulés depuis du code Python, à la manière des "
"types natifs :class:`str` et :class:`list`. Les implémentations de tous les "
"types d'extension ont des similarités, mais quelques subtilités doivent être "
"abordées avant de commencer."
#: extending/newtypes_tutorial.rst:24
msgid "The Basics"
msgstr ""
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 "
@ -42,12 +48,23 @@ msgid ""
"an object, a method called, or it is multiplied by another object. These C "
"functions are called \"type methods\"."
msgstr ""
":term:`CPython` considère que tous les objets Python sont des variables de "
"type :c:type:`PyObject\\*`, qui sert de type de base pour tous les objets "
"Python. La structure de :c:type:`PyObject` ne contient que le :term:"
"`compteur de références <reference count>` et un pointeur vers un objet de "
"type « type de l'objet ». C'est ici que tout se joue : l'objet type "
"détermine quelle fonction C doit être appelée par l'interpréteur quand, par "
"exemple, un attribut est recherché sur un objet, quand une méthode est "
"appelée, ou quand l'objet est multiplié par un autre objet. Ces fonctions C "
"sont appelées des « méthodes de type »."
#: extending/newtypes_tutorial.rst:35
msgid ""
"So, if you want to define a new extension type, you need to create a new "
"type object."
msgstr ""
"Donc, pour définir un nouveau type dans une extension, vous devez créer un "
"nouvel objet type."
#: extending/newtypes_tutorial.rst:38
msgid ""
@ -55,6 +72,9 @@ msgid ""
"but complete, module that defines a new type named :class:`Custom` inside a "
"C extension module :mod:`custom`:"
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` :"
#: extending/newtypes_tutorial.rst:43
msgid ""
@ -63,18 +83,27 @@ msgid ""
"allows defining heap-allocated extension types using the :c:func:"
"`PyType_FromSpec` function, which isn't covered in this tutorial."
msgstr ""
"Ce qui est montré ici est la manière traditionnelle de définir des types "
"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C "
"permet aussi de définir des types alloués sur le tas, via la fonction :c:"
"func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel."
#: extending/newtypes_tutorial.rst:50
msgid ""
"Now that's quite a bit to take in at once, but hopefully bits will seem "
"familiar from the previous chapter. This file defines three things:"
msgstr ""
"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux "
"expliqués au chapitre précédent. Ce fichier définit trois choses :"
#: extending/newtypes_tutorial.rst:53
msgid ""
"What a :class:`Custom` **object** contains: this is the ``CustomObject`` "
"struct, which is allocated once for each :class:`Custom` instance."
msgstr ""
"Ce qu'un **objet** :class:`Custom` contient : c'est la structure "
"``CustomObject``, qui est allouée une fois pour chaque instance de :class:"
"`Custom`."
#: extending/newtypes_tutorial.rst:55
msgid ""
@ -82,76 +111,109 @@ msgid ""
"which defines a set of flags and function pointers that the interpreter "
"inspects when specific operations are requested."
msgstr ""
"Comment le **type** :class:`Custom` se comporte : c'est la structure "
"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction "
"utilisés par l'interpréteur."
#: extending/newtypes_tutorial.rst:58
msgid ""
"How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` "
"function and the associated ``custommodule`` struct."
msgstr ""
"Comment initialiser le module :mod:`custom` : c'est la fonction "
"``PyInit_custom`` et la structure associée ``custommodule``."
#: extending/newtypes_tutorial.rst:61
msgid "The first bit is::"
msgstr ""
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 "
"abstract away the layout and to enable additional fields in debug builds."
"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 ""
"C'est ce qu'un objet ``Custom`` contient. ``PyObject_HEAD`` est "
"obligatoirement au début de chaque structure d'objet et définit un champ "
"appelé ``ob_base`` de type :c:type:`PyObject`, contenant un pointeur vers un "
"objet type et un compteur de références (on peut y accéder en utilisant les "
"macros :c:macro:`Py_TYPE` et :c:macro:`Py_REFCNT`, respectivement). La "
"raison d'être de ces macros est d'abstraire l'agencement de la structure, et "
"ainsi de permettre l'ajout de champs en :ref:`mode débogage <debug-build>`."
#: extending/newtypes_tutorial.rst:75
#: extending/newtypes_tutorial.rst:76
msgid ""
"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be "
"wary of adding one by accident: some compilers will complain."
msgstr ""
"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. "
"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient "
"s'en plaindre."
#: extending/newtypes_tutorial.rst:78
#: extending/newtypes_tutorial.rst:79
msgid ""
"Of course, objects generally store additional data besides the standard "
"``PyObject_HEAD`` boilerplate; for example, here is the definition for "
"standard Python floats::"
msgstr ""
"Bien sûr, les objets ajoutent généralement des données supplémentaires après "
"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type "
"standard Python ``float`` ::"
#: extending/newtypes_tutorial.rst:87
#: extending/newtypes_tutorial.rst:88
msgid "The second bit is the definition of the type object. ::"
msgstr ""
msgstr "La deuxième partie est la définition de l'objet type ::"
#: extending/newtypes_tutorial.rst:100
#: extending/newtypes_tutorial.rst:101
msgid ""
"We recommend using C99-style designated initializers as above, to avoid "
"listing all the :c:type:`PyTypeObject` fields that you don't care about and "
"also to avoid caring about the fields' declaration order."
msgstr ""
"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour "
"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les "
"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas "
"vous soucier de leur ordre."
#: extending/newtypes_tutorial.rst:104
#: extending/newtypes_tutorial.rst:105
msgid ""
"The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many "
"more :ref:`fields <type-structs>` than the definition above. The remaining "
"fields will be filled with zeros by the C compiler, and it's common practice "
"to not specify them explicitly unless you need them."
msgstr ""
"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en "
"fait bien plus de :ref:`champs <type-structs>` que la définition ci-dessus. "
"Les champs restants sont mis à zéro par le compilateur C, et c'est une "
"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin."
#: extending/newtypes_tutorial.rst:109
#: extending/newtypes_tutorial.rst:110
msgid "We're going to pick it apart, one field at a time::"
msgstr ""
msgstr "Regardons les champs de cette structure, un par un ::"
#: extending/newtypes_tutorial.rst:113
#: extending/newtypes_tutorial.rst:114
msgid ""
"This line is mandatory boilerplate to initialize the ``ob_base`` field "
"mentioned above. ::"
msgstr ""
"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné "
"précédemment."
#: extending/newtypes_tutorial.rst:118
#: extending/newtypes_tutorial.rst:119
msgid ""
"The name of our type. This will appear in the default textual "
"representation of our objects and in some error messages, for example:"
msgstr ""
"C'est le nom de notre type. Il apparaît dans la représentation textuelle par "
"défaut de nos objets, ainsi que dans quelques messages d'erreur, par "
"exemple :"
#: extending/newtypes_tutorial.rst:128
#: extending/newtypes_tutorial.rst:129
msgid ""
"Note that the name is a dotted name that includes both the module name and "
"the name of the type within the module. The module in this case is :mod:"
@ -159,15 +221,24 @@ msgid ""
"`custom.Custom`. Using the real dotted import path is important to make your "
"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::"
msgstr ""
"Notez que le nom comporte un point : il inclut le nom du module et le nom du "
"type. Dans ce cas le module est :mod:`custom`, et le type est :class:"
"`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer "
"correctement son type, avec le point, est important pour le rendre "
"compatible avec :mod:`pydoc` et :mod:`pickle`. ::"
#: extending/newtypes_tutorial.rst:137
#: extending/newtypes_tutorial.rst:138
msgid ""
"This is so that Python knows how much memory to allocate when creating new :"
"class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only "
"used for variable-sized objects and should otherwise be zero."
msgstr ""
"C'est pour que Python sache combien de mémoire allouer à la création d'une "
"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` "
"n'est utilisé que pour les objets de taille variable, sinon il doit rester à "
"zéro."
#: extending/newtypes_tutorial.rst:143
#: extending/newtypes_tutorial.rst:144
msgid ""
"If you want your type to be subclassable from Python, and your type has the "
"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have "
@ -180,24 +251,42 @@ msgid ""
"type will be :class:`object`, or else you will be adding data members to "
"your base type, and therefore increasing its size."
msgstr ""
"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que "
"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, "
"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe "
"Python de votre type devra lister votre type en premier dans son :attr:"
"`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler la méthode :"
"meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce problème en "
"vous assurant que votre type a un :c:member:`~PyTypeObject.tp_basicsize` "
"plus grand que son parent. La plupart du temps ce sera vrai (soit son parent "
"sera :class:`object`, soit vous ajouterez des attributs à votre type, "
"augmentant ainsi sa taille)."
#: extending/newtypes_tutorial.rst:153
#: extending/newtypes_tutorial.rst:154
msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::"
msgstr ""
"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de "
"type. ::"
#: extending/newtypes_tutorial.rst:157
#: extending/newtypes_tutorial.rst:158
msgid ""
"All types should include this constant in their flags. It enables all of "
"the members defined until at least Python 3.3. If you need further members, "
"you will need to OR the corresponding flags."
msgstr ""
"Chaque type doit inclure cette constante dans ses options : elle active tous "
"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus "
"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* "
"binaire."
#: extending/newtypes_tutorial.rst:161
#: extending/newtypes_tutorial.rst:162
msgid ""
"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::"
msgstr ""
"On fournit une *docstring* pour ce type via le membre :c:member:"
"`~PyTypeObject.tp_doc`. ::"
#: extending/newtypes_tutorial.rst:165
#: extending/newtypes_tutorial.rst:166
msgid ""
"To enable object creation, we have to provide a :c:member:`~PyTypeObject."
"tp_new` handler. This is the equivalent of the Python method :meth:"
@ -205,54 +294,68 @@ msgid ""
"use the default implementation provided by the API function :c:func:"
"`PyType_GenericNew`. ::"
msgstr ""
"Pour permettre la création d'une instance, nous devons fournir un *handler* :"
"c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la méthode Python :"
"meth:`__new__`, mais elle a besoin d'être spécifiée explicitement. Dans ce "
"cas, on se contente de l'implémentation par défaut fournie par la fonction :"
"c:func:`PyType_GenericNew` de l'API."
#: extending/newtypes_tutorial.rst:172
#: extending/newtypes_tutorial.rst:173
msgid ""
"Everything else in the file should be familiar, except for some code in :c:"
"func:`PyInit_custom`::"
msgstr ""
"Le reste du fichier doit vous être familier, en dehors du code de :c:func:"
"`PyInit_custom` ::"
#: extending/newtypes_tutorial.rst:178
#: extending/newtypes_tutorial.rst:179
msgid ""
"This initializes the :class:`Custom` type, filling in a number of members to "
"the appropriate default values, including :attr:`ob_type` that we initially "
"set to ``NULL``. ::"
msgstr ""
"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs "
"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement "
"``NULL``. ::"
#: extending/newtypes_tutorial.rst:189
#: extending/newtypes_tutorial.rst:190
msgid ""
"This adds the type to the module dictionary. This allows us to create :"
"class:`Custom` instances by calling the :class:`Custom` class:"
msgstr ""
"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une "
"instance de :class:`Custom` en appelant la classe :class:`Custom` :"
#: extending/newtypes_tutorial.rst:197
#: extending/newtypes_tutorial.rst:198
msgid ""
"That's it! All that remains is to build it; put the above code in a file "
"called :file:`custom.c` and:"
msgstr ""
"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans "
"un fichier :file:`custom.c` et :"
#: extending/newtypes_tutorial.rst:206
#: extending/newtypes_tutorial.rst:207
msgid "in a file called :file:`setup.py`; then typing"
msgstr ""
#: extending/newtypes_tutorial.rst:212
#: extending/newtypes_tutorial.rst:213
msgid ""
"at a shell should produce a file :file:`custom.so` in a subdirectory; move "
"to that directory and fire up Python --- you should be able to ``import "
"custom`` and play around with Custom objects."
msgstr ""
#: extending/newtypes_tutorial.rst:216
#: extending/newtypes_tutorial.rst:217
msgid "That wasn't so hard, was it?"
msgstr ""
#: extending/newtypes_tutorial.rst:218
#: extending/newtypes_tutorial.rst:219
msgid ""
"Of course, the current Custom type is pretty uninteresting. It has no data "
"and doesn't do anything. It can't even be subclassed."
msgstr ""
#: extending/newtypes_tutorial.rst:222
#: extending/newtypes_tutorial.rst:223
msgid ""
"While this documentation showcases the standard :mod:`distutils` module for "
"building C extensions, it is recommended in real-world use cases to use the "
@ -262,32 +365,32 @@ msgid ""
"packages/>`_."
msgstr ""
#: extending/newtypes_tutorial.rst:230
#: extending/newtypes_tutorial.rst:231
msgid "Adding data and methods to the Basic example"
msgstr ""
#: extending/newtypes_tutorial.rst:232
#: extending/newtypes_tutorial.rst:233
msgid ""
"Let's extend the basic example to add some data and methods. Let's also "
"make the type usable as a base class. We'll create a new module, :mod:"
"`custom2` that adds these capabilities:"
msgstr ""
#: extending/newtypes_tutorial.rst:239
#: extending/newtypes_tutorial.rst:240
msgid "This version of the module has a number of changes."
msgstr ""
#: extending/newtypes_tutorial.rst:241
#: extending/newtypes_tutorial.rst:242
msgid "We've added an extra include::"
msgstr ""
#: extending/newtypes_tutorial.rst:245
#: extending/newtypes_tutorial.rst:246
msgid ""
"This include provides declarations that we use to handle attributes, as "
"described a bit later."
msgstr ""
#: extending/newtypes_tutorial.rst:248
#: extending/newtypes_tutorial.rst:249
msgid ""
"The :class:`Custom` type now has three data attributes in its C struct, "
"*first*, *last*, and *number*. The *first* and *last* variables are Python "
@ -295,21 +398,21 @@ msgid ""
"integer."
msgstr ""
#: extending/newtypes_tutorial.rst:252
#: extending/newtypes_tutorial.rst:253
msgid "The object structure is updated accordingly::"
msgstr ""
#: extending/newtypes_tutorial.rst:261
#: extending/newtypes_tutorial.rst:262
msgid ""
"Because we now have data to manage, we have to be more careful about object "
"allocation and deallocation. At a minimum, we need a deallocation method::"
msgstr ""
#: extending/newtypes_tutorial.rst:272
#: extending/newtypes_tutorial.rst:273
msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::"
msgstr ""
#: extending/newtypes_tutorial.rst:276
#: extending/newtypes_tutorial.rst:277
msgid ""
"This method first clears the reference counts of the two Python attributes. :"
"c:func:`Py_XDECREF` correctly handles the case where its argument is "
@ -320,7 +423,7 @@ msgid ""
"instance of a subclass."
msgstr ""
#: extending/newtypes_tutorial.rst:285
#: extending/newtypes_tutorial.rst:286
msgid ""
"The explicit cast to ``destructor`` above is needed because we defined "
"``Custom_dealloc`` to take a ``CustomObject *`` argument, but the "
@ -329,17 +432,17 @@ msgid ""
"oriented polymorphism, in C!"
msgstr ""
#: extending/newtypes_tutorial.rst:291
#: extending/newtypes_tutorial.rst:292
msgid ""
"We want to make sure that the first and last names are initialized to empty "
"strings, so we provide a ``tp_new`` implementation::"
msgstr ""
#: extending/newtypes_tutorial.rst:315
#: extending/newtypes_tutorial.rst:316
msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::"
msgstr ""
#: extending/newtypes_tutorial.rst:319
#: extending/newtypes_tutorial.rst:320
msgid ""
"The ``tp_new`` handler is responsible for creating (as opposed to "
"initializing) objects of the type. It is exposed in Python as the :meth:"
@ -350,7 +453,7 @@ msgid ""
"attributes to non-``NULL`` default values."
msgstr ""
#: extending/newtypes_tutorial.rst:327
#: extending/newtypes_tutorial.rst:328
msgid ""
"``tp_new`` is passed the type being instantiated (not necessarily "
"``CustomType``, if a subclass is instantiated) and any arguments passed when "
@ -360,25 +463,25 @@ msgid ""
"k.a. ``tp_init`` in C or ``__init__`` in Python) methods."
msgstr ""
#: extending/newtypes_tutorial.rst:335
#: extending/newtypes_tutorial.rst:336
msgid ""
"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do "
"it itself."
msgstr ""
#: extending/newtypes_tutorial.rst:338
#: extending/newtypes_tutorial.rst:339
msgid ""
"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` "
"slot to allocate memory::"
msgstr ""
#: extending/newtypes_tutorial.rst:343
#: extending/newtypes_tutorial.rst:344
msgid ""
"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject."
"tp_alloc` result against ``NULL`` before proceeding."
msgstr ""
#: extending/newtypes_tutorial.rst:347
#: extending/newtypes_tutorial.rst:348
msgid ""
"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. "
"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base "
@ -386,7 +489,7 @@ msgid ""
"allocation strategy."
msgstr ""
#: extending/newtypes_tutorial.rst:353
#: extending/newtypes_tutorial.rst:354
msgid ""
"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one "
"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:"
@ -399,17 +502,17 @@ msgid ""
"subclasses without getting a :exc:`TypeError`.)"
msgstr ""
#: extending/newtypes_tutorial.rst:363
#: extending/newtypes_tutorial.rst:364
msgid ""
"We also define an initialization function which accepts arguments to provide "
"initial values for our instance::"
msgstr ""
#: extending/newtypes_tutorial.rst:392
#: extending/newtypes_tutorial.rst:393
msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:396
#: extending/newtypes_tutorial.rst:397
msgid ""
"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:"
"`__init__` method. It is used to initialize an object after it's created. "
@ -417,7 +520,7 @@ msgid ""
"return either ``0`` on success or ``-1`` on error."
msgstr ""
#: extending/newtypes_tutorial.rst:401
#: extending/newtypes_tutorial.rst:402
msgid ""
"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is "
"called at all (for example, the :mod:`pickle` module by default doesn't "
@ -428,7 +531,7 @@ msgid ""
"``first`` member like this::"
msgstr ""
#: extending/newtypes_tutorial.rst:415
#: extending/newtypes_tutorial.rst:416
msgid ""
"But this would be risky. Our type doesn't restrict the type of the "
"``first`` member, so it could be any kind of object. It could have a "
@ -438,49 +541,49 @@ msgid ""
"accesses and modifies our object."
msgstr ""
#: extending/newtypes_tutorial.rst:422
#: extending/newtypes_tutorial.rst:423
msgid ""
"To be paranoid and protect ourselves against this possibility, we almost "
"always reassign members before decrementing their reference counts. When "
"don't we have to do this?"
msgstr ""
#: extending/newtypes_tutorial.rst:426
#: extending/newtypes_tutorial.rst:427
msgid "when we absolutely know that the reference count is greater than 1;"
msgstr ""
#: extending/newtypes_tutorial.rst:428
#: extending/newtypes_tutorial.rst:429
msgid ""
"when we know that deallocation of the object [#]_ will neither release the :"
"term:`GIL` nor cause any calls back into our type's code;"
msgstr ""
#: extending/newtypes_tutorial.rst:431
#: extending/newtypes_tutorial.rst:432
msgid ""
"when decrementing a reference count in a :c:member:`~PyTypeObject."
"tp_dealloc` handler on a type which doesn't support cyclic garbage "
"collection [#]_."
msgstr ""
#: extending/newtypes_tutorial.rst:434
#: extending/newtypes_tutorial.rst:435
msgid ""
"We want to expose our instance variables as attributes. There are a number "
"of ways to do that. The simplest way is to define member definitions::"
msgstr ""
#: extending/newtypes_tutorial.rst:447
#: extending/newtypes_tutorial.rst:448
msgid ""
"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:451
#: extending/newtypes_tutorial.rst:452
msgid ""
"Each member definition has a member name, type, offset, access flags and "
"documentation string. See the :ref:`Generic-Attribute-Management` section "
"below for details."
msgstr ""
#: extending/newtypes_tutorial.rst:455
#: extending/newtypes_tutorial.rst:456
msgid ""
"A disadvantage of this approach is that it doesn't provide a way to restrict "
"the types of objects that can be assigned to the Python attributes. We "
@ -491,13 +594,13 @@ msgid ""
"deleted."
msgstr ""
#: extending/newtypes_tutorial.rst:462
#: extending/newtypes_tutorial.rst:463
msgid ""
"We define a single method, :meth:`Custom.name()`, that outputs the objects "
"name as the concatenation of the first and last names. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:479
#: extending/newtypes_tutorial.rst:480
msgid ""
"The method is implemented as a C function that takes a :class:`Custom` (or :"
"class:`Custom` subclass) instance as the first argument. Methods always "
@ -507,7 +610,7 @@ msgid ""
"method is equivalent to the Python method:"
msgstr ""
#: extending/newtypes_tutorial.rst:491
#: extending/newtypes_tutorial.rst:492
msgid ""
"Note that we have to check for the possibility that our :attr:`first` and :"
"attr:`last` members are ``NULL``. This is because they can be deleted, in "
@ -516,23 +619,23 @@ msgid ""
"We'll see how to do that in the next section."
msgstr ""
#: extending/newtypes_tutorial.rst:497
#: extending/newtypes_tutorial.rst:498
msgid ""
"Now that we've defined the method, we need to create an array of method "
"definitions::"
msgstr ""
#: extending/newtypes_tutorial.rst:507
#: extending/newtypes_tutorial.rst:508
msgid ""
"(note that we used the :const:`METH_NOARGS` flag to indicate that the method "
"is expecting no arguments other than *self*)"
msgstr ""
#: extending/newtypes_tutorial.rst:510
#: extending/newtypes_tutorial.rst:511
msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:514
#: extending/newtypes_tutorial.rst:515
msgid ""
"Finally, we'll make our type usable as a base class for subclassing. We've "
"written our methods carefully so far so that they don't make any assumptions "
@ -540,22 +643,22 @@ msgid ""
"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::"
msgstr ""
#: extending/newtypes_tutorial.rst:521
#: extending/newtypes_tutorial.rst:522
msgid ""
"We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the "
"module name in the :c:type:`PyModuleDef` struct, and update the full class "
"name in the :c:type:`PyTypeObject` struct."
msgstr ""
#: extending/newtypes_tutorial.rst:525
#: extending/newtypes_tutorial.rst:526
msgid "Finally, we update our :file:`setup.py` file to build the new module:"
msgstr ""
#: extending/newtypes_tutorial.rst:538
#: extending/newtypes_tutorial.rst:539
msgid "Providing finer control over data attributes"
msgstr ""
#: extending/newtypes_tutorial.rst:540
#: extending/newtypes_tutorial.rst:541
msgid ""
"In this section, we'll provide finer control over how the :attr:`first` and :"
"attr:`last` attributes are set in the :class:`Custom` example. In the "
@ -564,14 +667,14 @@ msgid ""
"make sure that these attributes always contain strings."
msgstr ""
#: extending/newtypes_tutorial.rst:549
#: extending/newtypes_tutorial.rst:550
msgid ""
"To provide greater control, over the :attr:`first` and :attr:`last` "
"attributes, we'll use custom getter and setter functions. Here are the "
"functions for getting and setting the :attr:`first` attribute::"
msgstr ""
#: extending/newtypes_tutorial.rst:580
#: extending/newtypes_tutorial.rst:581
msgid ""
"The getter function is passed a :class:`Custom` object and a \"closure\", "
"which is a void pointer. In this case, the closure is ignored. (The "
@ -581,7 +684,7 @@ msgid ""
"data in the closure.)"
msgstr ""
#: extending/newtypes_tutorial.rst:586
#: extending/newtypes_tutorial.rst:587
msgid ""
"The setter function is passed the :class:`Custom` object, the new value, and "
"the closure. The new value may be ``NULL``, in which case the attribute is "
@ -589,32 +692,32 @@ msgid ""
"or if its new value is not a string."
msgstr ""
#: extending/newtypes_tutorial.rst:591
#: extending/newtypes_tutorial.rst:592
msgid "We create an array of :c:type:`PyGetSetDef` structures::"
msgstr ""
#: extending/newtypes_tutorial.rst:601
#: extending/newtypes_tutorial.rst:602
msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:605
#: extending/newtypes_tutorial.rst:606
msgid ""
"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" "
"mentioned above. In this case, we aren't using a closure, so we just pass "
"``NULL``."
msgstr ""
#: extending/newtypes_tutorial.rst:608
#: extending/newtypes_tutorial.rst:609
msgid "We also remove the member definitions for these attributes::"
msgstr ""
#: extending/newtypes_tutorial.rst:616
#: extending/newtypes_tutorial.rst:617
msgid ""
"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only "
"allow strings [#]_ to be passed::"
msgstr ""
#: extending/newtypes_tutorial.rst:645
#: extending/newtypes_tutorial.rst:646
msgid ""
"With these changes, we can assure that the ``first`` and ``last`` members "
"are never ``NULL`` so we can remove checks for ``NULL`` values in almost all "
@ -624,25 +727,25 @@ msgid ""
"possibility that the initialization of these members failed in ``tp_new``."
msgstr ""
#: extending/newtypes_tutorial.rst:652
#: extending/newtypes_tutorial.rst:653
msgid ""
"We also rename the module initialization function and module name in the "
"initialization function, as we did before, and we add an extra definition to "
"the :file:`setup.py` file."
msgstr ""
#: extending/newtypes_tutorial.rst:658
#: extending/newtypes_tutorial.rst:659
msgid "Supporting cyclic garbage collection"
msgstr ""
#: extending/newtypes_tutorial.rst:660
#: extending/newtypes_tutorial.rst:661
msgid ""
"Python has a :term:`cyclic garbage collector (GC) <garbage collection>` that "
"can identify unneeded objects even when their reference counts are not zero. "
"This can happen when objects are involved in cycles. For example, consider:"
msgstr ""
#: extending/newtypes_tutorial.rst:670
#: extending/newtypes_tutorial.rst:671
msgid ""
"In this example, we create a list that contains itself. When we delete it, "
"it still has a reference from itself. Its reference count doesn't drop to "
@ -650,7 +753,7 @@ msgid ""
"out that the list is garbage and free it."
msgstr ""
#: extending/newtypes_tutorial.rst:675
#: extending/newtypes_tutorial.rst:676
msgid ""
"In the second version of the :class:`Custom` example, we allowed any kind of "
"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. "
@ -659,7 +762,7 @@ msgid ""
"reasons, :class:`Custom` objects can participate in cycles:"
msgstr ""
#: extending/newtypes_tutorial.rst:689
#: extending/newtypes_tutorial.rst:690
msgid ""
"To allow a :class:`Custom` instance participating in a reference cycle to be "
"properly detected and collected by the cyclic GC, our :class:`Custom` type "
@ -667,13 +770,13 @@ msgid ""
"slots:"
msgstr ""
#: extending/newtypes_tutorial.rst:696
#: extending/newtypes_tutorial.rst:697
msgid ""
"First, the traversal method lets the cyclic GC know about subobjects that "
"could participate in cycles::"
msgstr ""
#: extending/newtypes_tutorial.rst:716
#: extending/newtypes_tutorial.rst:717
msgid ""
"For each subobject that can participate in cycles, we need to call the :c:"
"func:`visit` function, which is passed to the traversal method. The :c:func:"
@ -682,26 +785,26 @@ msgid ""
"be returned if it is non-zero."
msgstr ""
#: extending/newtypes_tutorial.rst:722
#: extending/newtypes_tutorial.rst:723
msgid ""
"Python provides a :c:func:`Py_VISIT` macro that automates calling visit "
"functions. With :c:func:`Py_VISIT`, we can minimize the amount of "
"boilerplate in ``Custom_traverse``::"
msgstr ""
#: extending/newtypes_tutorial.rst:735
#: extending/newtypes_tutorial.rst:736
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its "
"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`."
msgstr ""
#: extending/newtypes_tutorial.rst:738
#: extending/newtypes_tutorial.rst:739
msgid ""
"Second, we need to provide a method for clearing any subobjects that can "
"participate in cycles::"
msgstr ""
#: extending/newtypes_tutorial.rst:749
#: extending/newtypes_tutorial.rst:750
msgid ""
"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and "
"safe way to clear data attributes of arbitrary types while decrementing "
@ -711,18 +814,18 @@ msgid ""
"again (*especially* if there is a reference cycle)."
msgstr ""
#: extending/newtypes_tutorial.rst:757
#: extending/newtypes_tutorial.rst:758
msgid "You could emulate :c:func:`Py_CLEAR` by writing::"
msgstr ""
#: extending/newtypes_tutorial.rst:764
#: extending/newtypes_tutorial.rst:765
msgid ""
"Nevertheless, it is much easier and less error-prone to always use :c:func:"
"`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the "
"expense of robustness!"
msgstr ""
#: extending/newtypes_tutorial.rst:768
#: extending/newtypes_tutorial.rst:769
msgid ""
"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing "
"attributes. It means the circular GC can be triggered inside the function. "
@ -732,12 +835,12 @@ msgid ""
"`PyObject_GC_UnTrack` and ``Custom_clear``::"
msgstr ""
#: extending/newtypes_tutorial.rst:783
#: extending/newtypes_tutorial.rst:784
msgid ""
"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::"
msgstr ""
#: extending/newtypes_tutorial.rst:787
#: extending/newtypes_tutorial.rst:788
msgid ""
"That's pretty much it. If we had written custom :c:member:`~PyTypeObject."
"tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify "
@ -745,11 +848,11 @@ msgid ""
"automatically provided."
msgstr ""
#: extending/newtypes_tutorial.rst:793
#: extending/newtypes_tutorial.rst:794
msgid "Subclassing other types"
msgstr ""
#: extending/newtypes_tutorial.rst:795
#: extending/newtypes_tutorial.rst:796
msgid ""
"It is possible to create new extension types that are derived from existing "
"types. It is easiest to inherit from the built in types, since an extension "
@ -757,7 +860,7 @@ msgid ""
"share these :c:type:`PyTypeObject` structures between extension modules."
msgstr ""
#: extending/newtypes_tutorial.rst:800
#: extending/newtypes_tutorial.rst:801
msgid ""
"In this example we will create a :class:`SubList` type that inherits from "
"the built-in :class:`list` type. The new type will be completely compatible "
@ -765,34 +868,34 @@ msgid ""
"that increases an internal counter:"
msgstr ""
#: extending/newtypes_tutorial.rst:820
#: extending/newtypes_tutorial.rst:821
msgid ""
"As you can see, the source code closely resembles the :class:`Custom` "
"examples in previous sections. We will break down the main differences "
"between them. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:828
#: extending/newtypes_tutorial.rst:829
msgid ""
"The primary difference for derived type objects is that the base type's "
"object structure must be the first value. The base type will already "
"include the :c:func:`PyObject_HEAD` at the beginning of its structure."
msgstr ""
#: extending/newtypes_tutorial.rst:832
#: extending/newtypes_tutorial.rst:833
msgid ""
"When a Python object is a :class:`SubList` instance, its ``PyObject *`` "
"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject "
"*``::"
msgstr ""
#: extending/newtypes_tutorial.rst:844
#: extending/newtypes_tutorial.rst:845
msgid ""
"We see above how to call through to the :attr:`__init__` method of the base "
"type."
msgstr ""
#: extending/newtypes_tutorial.rst:847
#: extending/newtypes_tutorial.rst:848
msgid ""
"This pattern is important when writing a type with custom :c:member:"
"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. "
@ -801,7 +904,7 @@ msgid ""
"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`."
msgstr ""
#: extending/newtypes_tutorial.rst:853
#: extending/newtypes_tutorial.rst:854
msgid ""
"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject."
"tp_base` specifying the type's concrete base class. Due to cross-platform "
@ -810,7 +913,7 @@ msgid ""
"function::"
msgstr ""
#: extending/newtypes_tutorial.rst:881
#: extending/newtypes_tutorial.rst:882
msgid ""
"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:"
"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an "
@ -819,29 +922,29 @@ msgid ""
"from the base type will be inherited."
msgstr ""
#: extending/newtypes_tutorial.rst:887
#: extending/newtypes_tutorial.rst:888
msgid ""
"After that, calling :c:func:`PyType_Ready` and adding the type object to the "
"module is the same as with the basic :class:`Custom` examples."
msgstr ""
#: extending/newtypes_tutorial.rst:892
#: extending/newtypes_tutorial.rst:893
msgid "Footnotes"
msgstr "Notes"
#: extending/newtypes_tutorial.rst:893
#: extending/newtypes_tutorial.rst:894
msgid ""
"This is true when we know that the object is a basic type, like a string or "
"a float."
msgstr ""
#: extending/newtypes_tutorial.rst:896
#: extending/newtypes_tutorial.rst:897
msgid ""
"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in "
"this example, because our type doesn't support garbage collection."
msgstr ""
#: extending/newtypes_tutorial.rst:899
#: extending/newtypes_tutorial.rst:900
msgid ""
"We now know that the first and last members are strings, so perhaps we could "
"be less careful about decrementing their reference counts, however, we "
@ -851,7 +954,7 @@ msgid ""
"objects."
msgstr ""
#: extending/newtypes_tutorial.rst:905
#: extending/newtypes_tutorial.rst:906
msgid ""
"Also, even with our attributes restricted to strings instances, the user "
"could pass arbitrary :class:`str` subclasses and therefore still create "

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-22 23:13+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 "

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-08-24 09:01+0200\n"
"PO-Revision-Date: 2020-03-03 19:27+0100\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"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.3\n"
"X-Generator: Poedit 3.0\n"
#: faq/extending.rst:3
msgid "Extending/Embedding FAQ"
@ -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,50 +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. The one "
"solution then is to call :c:func:`PyParser_ParseString` and test for ``e."
"error`` equal to ``E_EOF``, which means the input is incomplete. Here's a "
"sample code fragment, untested, inspired by code from Alex Farber::"
msgstr ""
"Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans le "
"même fil dexécution que le reste de votre application et vous ne pouvez pas "
"laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées utilisateur. La "
"seule solution est alors d'appeler :c:func:`PyParser_ParseString` et de "
"tester si ``e.error`` égale ``E_EOF``, ce qui signifie que l'entrée est "
"incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par "
"Alex Farber ::"
#: faq/extending.rst:310
msgid ""
"Another 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 ""
"Une autre 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 vous est possible d'ignorer **SIGINT** "
"lors de l'appel à ``readline()``) ::"
#: faq/extending.rst:432
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:434
#: 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 "
@ -513,7 +477,7 @@ msgstr ""
"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule."
"so mymodule.o``)."
#: faq/extending.rst:440
#: 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)?"
@ -521,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:442
#: faq/extending.rst:286
msgid ""
"Yes, you can inherit from built-in classes such as :class:`int`, :class:"
"`list`, :class:`dict`, etc."
@ -529,12 +493,57 @@ msgstr ""
"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :"
"class:`list`, :class:`dict`, etc."
#: faq/extending.rst:445
#: 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 ""
"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/"
"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:"
#~ "`PyRun_InteractiveLoop` to stop while waiting for user input. The one "
#~ "solution then is to call :c:func:`PyParser_ParseString` and test for ``e."
#~ "error`` equal to ``E_EOF``, which means the input is incomplete. Here's "
#~ "a sample code fragment, untested, inspired by code from Alex Farber::"
#~ msgstr ""
#~ "Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans "
#~ "le même fil dexécution que le reste de votre application et vous ne "
#~ "pouvez pas laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées "
#~ "utilisateur. La seule solution est alors d'appeler :c:func:"
#~ "`PyParser_ParseString` et de tester si ``e.error`` égale ``E_EOF``, ce "
#~ "qui signifie que l'entrée est incomplète. Voici un exemple de code, non "
#~ "testé, inspiré d'un code écrit par Alex Farber ::"

View File

@ -5,15 +5,15 @@ 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: 2020-11-07 17:18+0100\n"
"Last-Translator: Mindiell <mindiell@mindiell.net>\n"
"POT-Creation-Date: 2023-02-12 11:56+0100\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"
"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.1\n"
"X-Generator: Poedit 3.0\n"
#: faq/general.rst:5
msgid "General Python FAQ"
@ -63,8 +63,8 @@ msgid ""
"to Python <https://wiki.python.org/moin/BeginnersGuide>`_ links to other "
"introductory tutorials and resources for learning Python."
msgstr ""
"Pour en savoir plus, commencez par :ref:`tutorial-index`. Le « `Guide des "
"Débutants pour Python <https://wiki.python.org/moin/BeginnersGuide>`_ » "
"Pour en savoir plus, commencez par :ref:`tutorial-index`. Le « `Guide des "
"Débutants pour Python <https://wiki.python.org/moin/BeginnersGuide>`_ » "
"renvoie vers d'autres tutoriels et ressources d'initiation pour apprendre "
"Python."
@ -100,7 +100,7 @@ msgstr ""
#: faq/general.rst:48
msgid "Are there copyright restrictions on the use of Python?"
msgstr ""
"Existe-il des restrictions liées à la propriété intellectuelle quant à "
"Existe-t-il des restrictions liées à la propriété intellectuelle quant à "
"l'utilisation de Python ?"
#: faq/general.rst:50
@ -239,8 +239,8 @@ msgid ""
"to USENET. The rest is in the ``Misc/HISTORY`` file."
msgstr ""
"En Février 1991, juste après un peu plus d'un an de développement, j'ai "
"décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/"
"HISTORY »."
"décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/"
"HISTORY »."
#: faq/general.rst:109
msgid "What is Python good for?"
@ -255,16 +255,17 @@ msgstr ""
"utilisé pour pallier à différents problèmes."
#: faq/general.rst:114
#, fuzzy
msgid ""
"The language comes with a large standard library that covers areas such as "
"string processing (regular expressions, Unicode, calculating differences "
"between files), Internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI "
"programming), software engineering (unit testing, logging, profiling, "
"parsing Python code), and operating system interfaces (system calls, "
"filesystems, TCP/IP sockets). Look at the table of contents for :ref:"
"`library-index` to get an idea of what's available. A wide variety of third-"
"party extensions are also available. Consult `the Python Package Index "
"<https://pypi.org>`_ to find packages of interest to you."
"between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), "
"software engineering (unit testing, logging, profiling, parsing Python "
"code), and operating system interfaces (system calls, filesystems, TCP/IP "
"sockets). Look at the table of contents for :ref:`library-index` to get an "
"idea of what's available. A wide variety of third-party extensions are also "
"available. Consult `the Python Package Index <https://pypi.org>`_ to find "
"packages of interest to you."
msgstr ""
"Le langage vient avec une bibliothèque standard importante qui couvre des "
"domaines tels que le traitement des chaînes de caractères (expressions "
@ -283,21 +284,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 +328,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 "
@ -341,13 +360,13 @@ msgid ""
"is incremented to the next minor version, which becomes the \"a0\" version, "
"e.g. \"2.4a0\"."
msgstr ""
"Vous pouvez aussi trouver des versions avec un signe « + » en suffixe, par "
"exemple « 2.2+». Ces versions sont non distribuées, construites directement "
"Vous pouvez aussi trouver des versions avec un signe « + » en suffixe, par "
"exemple « 2.2+ ». Ces versions sont non distribuées, construites directement "
"depuis le dépôt de développement de CPython. En pratique, après la sortie "
"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 +374,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 +389,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 +402,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 +412,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 +426,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 ?"
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 +451,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 +461,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 +482,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 +495,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 +503,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 +520,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,35 +529,19 @@ 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
#, fuzzy
msgid ""
"To report a bug or submit a patch, please use the Roundup installation at "
"https://bugs.python.org/."
"To report a bug or submit a patch, use the issue tracker at https://github."
"com/python/cpython/issues."
msgstr ""
"Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://"
"bugs.python.org/."
#: faq/general.rst:236
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 "
"Roundup to send you updates as we act on your bug. If you had previously "
"used SourceForge to report bugs to Python, you can obtain your Roundup "
"password through Roundup's `password reset procedure <https://bugs.python."
"org/user?@template=forgotten>`_."
msgstr ""
"Vous devez avoir un compte Roundup pour reporter des bogues; cela nous "
"permet de vous contacter si nous avons des questions complémentaires. Cela "
"permettra aussi le suivi de traitement de votre bogue. Si vous avez "
"auparavant utilisé SourceForge pour reporter des bogues sur Python, vous "
"pouvez obtenir un mot de passe Roundup grâce à la `procédure de "
"réinitialisation de mot de passe de Roundup <https://bugs.python.org/user?"
"@template=forgotten>`_."
#: faq/general.rst:242
msgid ""
"For more information on how Python is developed, consult `the Python "
@ -558,9 +563,10 @@ msgstr ""
"Python."
#: faq/general.rst:251
#, fuzzy
msgid ""
"The very first article about Python was written in 1991 and is now quite "
"outdated."
"The `very first article <https://ir.cwi.nl/pub/18204>`_ about Python was "
"written in 1991 and is now quite outdated."
msgstr ""
"Le tout premier article à propos de Python a été écrit en 1991 et est "
"maintenant obsolète."
@ -571,8 +577,8 @@ msgid ""
"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 "
"(December 1991), Amsterdam, pp 283--303."
msgstr ""
"Guido van Rossum et Jelke de Boer, « *Interactively Testing Remote Servers "
"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 "
"Guido van Rossum et Jelke de Boer, « *Interactively Testing Remote Servers "
"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 "
"(December 1991), Amsterdam, pp 283--303."
#: faq/general.rst:260
@ -593,17 +599,18 @@ msgid ""
"Monty Python references; or perhaps search for \"Python\" and \"language\"."
msgstr ""
"Vous pouvez aussi chercher chez les revendeurs de livres en ligne avec le "
"terme « Python » et éliminer les références concernant les Monty Python, ou "
"peut-être faire une recherche avec les termes « langage » et « Python »."
"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
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
#, 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 "
@ -672,12 +679,13 @@ msgstr ""
"versions correctives."
#: faq/general.rst:309
#, fuzzy
msgid ""
"The latest stable releases can always be found on the `Python download page "
"<https://www.python.org/downloads/>`_. There are two production-ready "
"versions of Python: 2.x and 3.x. The recommended version is 3.x, which is "
"supported by most widely used libraries. Although 2.x is still widely used, "
"`it is not maintained anymore <https://www.python.org/dev/peps/pep-0373/>`_."
"`it is not maintained anymore <https://peps.python.org/pep-0373/>`_."
msgstr ""
"Les dernières versions stables peuvent toujours être trouvées sur la `page "
"de téléchargement Python <https://www.python.org/downloads/>`_. Il existe "
@ -729,16 +737,17 @@ msgid ""
"different companies and organizations."
msgstr ""
"Voir https://www.python.org/about/success pour avoir une liste des projets "
"qui utilisent Python. En consultant les comptes-rendu des `conférences "
"qui utilisent Python. En consultant les comptes-rendus des `conférences "
"Python précédentes <https://www.python.org/community/workshops/>`_ il "
"s'avère que les contributions proviennent de nombreux organismes et "
"entreprises divers."
#: faq/general.rst:337
#, 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."
@ -755,12 +764,13 @@ 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
#, fuzzy
msgid ""
"See https://www.python.org/dev/peps/ for the Python Enhancement Proposals "
"(PEPs). PEPs are design documents describing a suggested new feature for "
"Python, providing a concise technical specification and a rationale. Look "
"for a PEP titled \"Python X.Y Release Schedule\", where X.Y is a version "
"that hasn't been publicly released yet."
"See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). "
"PEPs are design documents describing a suggested new feature for Python, "
"providing a concise technical specification and a rationale. Look for a PEP "
"titled \"Python X.Y Release Schedule\", where X.Y is a version that hasn't "
"been publicly released yet."
msgstr ""
"Regardez les propositions d'amélioration de Python (« *Python Enhancement "
"Proposals* », ou *PEP*) sur https://www.python.org/dev/peps/. Les PEP sont "
@ -908,19 +918,20 @@ msgstr ""
"ils travaillent."
#: faq/general.rst:437
#, 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 multiplateforme pour Python qui est écrit en Python "
"Python. IDLE est un EDI multiplateformes pour Python qui est écrit en Python "
"en utilisant Tkinter. *PythonWin* est un IDE spécifique à Windows. Les "
"utilisateurs d'Emcs seront heureux d'apprendre qu'il y a un très bon mode "
"utilisateurs d'Emacs seront heureux d'apprendre qu'il y a un très bon mode "
"Python pour Emacs. Tous ces environnements de développement intégrés "
"fournissent la coloration syntaxique, l'auto-indentation, et l'accès à "
"l'interpréteur interactif durant le codage. Consultez `le wiki Python "
@ -936,3 +947,49 @@ 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."
#~ 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 Roundup to send you updates as we act on your bug. If you had "
#~ "previously used SourceForge to report bugs to Python, you can obtain your "
#~ "Roundup password through Roundup's `password reset procedure <https://"
#~ "bugs.python.org/user?@template=forgotten>`_."
#~ msgstr ""
#~ "Vous devez avoir un compte Roundup pour reporter des bogues; cela nous "
#~ "permet de vous contacter si nous avons des questions complémentaires. "
#~ "Cela permettra aussi le suivi de traitement de votre bogue. Si vous avez "
#~ "auparavant utilisé SourceForge pour reporter des bogues sur Python, vous "
#~ "pouvez obtenir un mot de passe Roundup grâce à la `procédure de "
#~ "réinitialisation de mot de passe de Roundup <https://bugs.python.org/user?"
#~ "@template=forgotten>`_."

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: 2019-09-04 11:44+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"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\n"
#: faq/gui.rst:5
msgid "Graphic User Interface FAQ"
@ -28,34 +28,17 @@ msgid "General GUI Questions"
msgstr "Questions générales sur l'interface graphique"
#: faq/gui.rst:18
msgid "What platform-independent GUI toolkits exist for Python?"
msgstr ""
"Quelles bibliothèques d'interfaces graphiques multi-plateformes existent en "
"Python ?"
msgid "What GUI toolkits exist for Python?"
msgstr "Quelles boîtes à outils IUG existent pour Python ?"
#: faq/gui.rst:20
msgid ""
"Depending on what platform(s) you are aiming at, there are several. Some of "
"them haven't been ported to Python 3 yet. At least `Tkinter`_ and `Qt`_ are "
"known to be Python 3-compatible."
msgstr ""
"Selon les plateformes que vous comptez utiliser, il en existe plusieurs. "
"Certaines ne sont cependant pas encore disponibles en Python 3. A minima, "
"`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3."
#: faq/gui.rst:27
msgid "Tkinter"
msgstr "*Tkinter*"
#: faq/gui.rst:29
msgid ""
"Standard builds of Python include an object-oriented interface to the Tcl/Tk "
"widget set, called :ref:`tkinter <Tkinter>`. This is probably the easiest "
"to install (since it comes included with most `binary distributions <https://"
"www.python.org/downloads/>`_ of Python) and use. For more info about Tk, "
"including pointers to the source, see the `Tcl/Tk home page <https://www.tcl."
"tk>`_. Tcl/Tk is fully portable to the Mac OS X, Windows, and Unix "
"platforms."
"tk>`_. Tcl/Tk is fully portable to the macOS, Windows, and Unix platforms."
msgstr ""
"Les versions standards de Python incluent une interface orientée objet pour "
"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter <Tkinter>`. "
@ -63,188 +46,32 @@ msgstr ""
"la plupart des `distributions binaires <https://www.python.org/downloads/>`_ "
"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les "
"liens vers les sources, voir la page d'accueil `Tcl/Tk <https://www.tcl."
"tk>`_. *Tcl/Tk* est entièrement portable sur les plates-formes Mac OS X, "
"tk>`_. *Tcl/Tk* est entièrement portable sur les plates-formes macOS, "
"Windows et Unix."
#: faq/gui.rst:38
msgid "wxWidgets"
msgstr "*wxWidgets*"
#: faq/gui.rst:40
#: faq/gui.rst:28
msgid ""
"wxWidgets (https://www.wxwidgets.org) is a free, portable GUI class library "
"written in C++ that provides a native look and feel on a number of "
"platforms, with Windows, Mac OS X, GTK, X11, all listed as current stable "
"targets. Language bindings are available for a number of languages "
"including Python, Perl, Ruby, etc."
"Depending on what platform(s) you are aiming at, there are also several "
"alternatives. A `list of cross-platform <https://wiki.python.org/moin/"
"GuiProgramming#Cross-Platform_Frameworks>`_ and `platform-specific <https://"
"wiki.python.org/moin/GuiProgramming#Platform-specific_Frameworks>`_ GUI "
"frameworks can be found on the python wiki."
msgstr ""
"`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG "
"portable et gratuite écrite en C++ qui fournit une apparence native sur un "
"certain nombre de plates-formes, elle est notamment en version stable pour "
"Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un certain "
"nombre de langages, y compris Python, Perl, Ruby, etc."
"D'autres outils existent. Le choix doit dépendre notamment de la ou des "
"plateformes que vous visez. Sur le Wiki Python se trouvent des listes de "
"bibliothèques graphiques `multiplateformes <https://wiki.python.org/moin/"
"GuiProgramming#Cross-Platform_Frameworks>`_ et `pour une seule plate-forme "
"<https://wiki.python.org/moin/GuiProgramming#Platform-specific_Frameworks>`_."
#: faq/gui.rst:46
msgid ""
"`wxPython <https://www.wxpython.org>`_ is the Python binding for wxwidgets. "
"While it often lags slightly behind the official wxWidgets releases, it also "
"offers a number of features via pure Python extensions that are not "
"available in other language bindings. There is an active wxPython user and "
"developer community."
msgstr ""
"`wxPython <http://www.wxpython.org>`_ est le portage Python de *wxWidgets*. "
"Bien quil soit légèrement en retard sur les versions officielles de "
"*wxWidgets*, il offre également des fonctionnalités propres à Python qui ne "
"sont pas disponibles pour les clients d'autres langages. *WxPython* dispose "
"de plus, dune communauté dutilisateurs et de développeurs active."
#: faq/gui.rst:52
msgid ""
"Both wxWidgets and wxPython are free, open source, software with permissive "
"licences that allow their use in commercial products as well as in freeware "
"or shareware."
msgstr ""
"*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open source, "
"avec des licences permissives qui permettent leur utilisation dans des "
"produits commerciaux ainsi que dans des logiciels gratuits ou contributifs "
"(*shareware*)."
#: faq/gui.rst:58
msgid "Qt"
msgstr "*Qt*"
#: faq/gui.rst:60
msgid ""
"There are bindings available for the Qt toolkit (using either `PyQt <https://"
"riverbankcomputing.com/software/pyqt/intro>`_ or `PySide <https://wiki.qt.io/"
"PySide>`_) and for KDE (`PyKDE4 <https://techbase.kde.org/Languages/Python/"
"Using_PyKDE_4>`__). PyQt is currently more mature than PySide, but you must "
"buy a PyQt license from `Riverbank Computing <https://www.riverbankcomputing."
"com/commercial/license-faq>`_ if you want to write proprietary "
"applications. PySide is free for all applications."
msgstr ""
"Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant "
"soit `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_ ou `PySide "
"<https://wiki.qt.io/PySide>`_) et pour *KDE* (`PyKDE4 <https://techbase.kde."
"org/Languages/Python/Using_PyKDE_4>`__). *PyQt* est actuellement plus mûre "
"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank "
"Computing <https://www.riverbankcomputing.com/commercial/license-faq>`_ si "
"vous voulez écrire des applications propriétaires. *PySide* est gratuit "
"pour toutes les applications."
#: faq/gui.rst:67
msgid ""
"Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses "
"are available from `The Qt Company <https://www.qt.io/licensing/>`_."
msgstr ""
"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont "
"disponibles auprès de `The Qt Company <https://www.qt.io/licensing/>`_."
#: faq/gui.rst:71
msgid "Gtk+"
msgstr "*Gtk+*"
#: faq/gui.rst:73
msgid ""
"The `GObject introspection bindings <https://wiki.gnome.org/Projects/"
"PyGObject>`_ for Python allow you to write GTK+ 3 applications. There is "
"also a `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs."
"io>`_."
msgstr ""
"Les `GObject introspection bindings <https://wiki.gnome.org/Projects/"
"PyGObject>`_ pour Python vous permettent d'écrire des applications GTK+ 3. "
"Il y a aussi un tutoriel `Python GTK+ 3 <https://python-gtk-3-tutorial."
"readthedocs.io>`_."
#: faq/gui.rst:77
msgid ""
"The older PyGtk bindings for the `Gtk+ 2 toolkit <https://www.gtk.org>`_ "
"have been implemented by James Henstridge; see <http://www.pygtk.org>."
msgstr ""
"Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit <https://www.gtk."
"org>`_ ont été implémentées par James Henstridge ; voir <http://www.pygtk."
"org>."
#: faq/gui.rst:81
msgid "Kivy"
msgstr "*Kivy*"
#: faq/gui.rst:83
msgid ""
"`Kivy <https://kivy.org/>`_ is a cross-platform GUI library supporting both "
"desktop operating systems (Windows, macOS, Linux) and mobile devices "
"(Android, iOS). It is written in Python and Cython, and can use a range of "
"windowing backends."
msgstr ""
"`*Kivy* <https://kivy.org/>`_ est une bibliothèque GUI multi-plateformes "
"disponible à la fois sur les systèmes d'exploitation de bureau (Windows, "
"MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite en "
"Python et Cython, et peut utiliser une série de fenêtres de *backends*."
#: faq/gui.rst:88
msgid ""
"Kivy is free and open source software distributed under the MIT license."
msgstr ""
"*Kivy* est un logiciel libre et open source distribué sous licence MIT."
#: faq/gui.rst:91
msgid "FLTK"
msgstr "*FLTK*"
#: faq/gui.rst:93
#, fuzzy
msgid ""
"Python bindings for `the FLTK toolkit <http://www.fltk.org>`_, a simple yet "
"powerful and mature cross-platform windowing system, are available from `the "
"PyFLTK project <https://pyfltk.sourceforge.io/>`_."
msgstr ""
"Les liaisons Python pour `the FLTK toolkit <http://www.fltk.org>`_, un "
"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont "
"disponibles auprès de `the PyFLTK project <http://pyfltk.sourceforge.net>`_."
#: faq/gui.rst:98
msgid "OpenGL"
msgstr "*OpenGL*"
#: faq/gui.rst:100
msgid "For OpenGL bindings, see `PyOpenGL <http://pyopengl.sourceforge.net>`_."
msgstr ""
"Pour les clients OpenGL, voir `PyOpenGL <http://pyopengl.sourceforge.net>`_."
#: faq/gui.rst:104
msgid "What platform-specific GUI toolkits exist for Python?"
msgstr ""
"Quelles boîtes à outils IUG spécifiques à la plate-forme existent pour "
"Python ?"
#: faq/gui.rst:106
msgid ""
"By installing the `PyObjc Objective-C bridge <https://pypi.org/project/"
"pyobjc/>`_, Python programs can use Mac OS X's Cocoa libraries."
msgstr ""
"En installant le `PyObjc Objective-C bridge <https://pypi.org/project/pyobjc/"
">`_, les programmes Python peuvent utiliser les bibliothèques Cocoa de Mac "
"OS X."
#: faq/gui.rst:110
msgid ""
":ref:`Pythonwin <windows-faq>` by Mark Hammond includes an interface to the "
"Microsoft Foundation Classes and a Python programming environment that's "
"written mostly in Python using the MFC classes."
msgstr ""
":ref:`Pythonwin <windows-faq>` de Mark Hammond inclut une interface vers les "
"classes `Microsoft Foundation Classes` et un environnement de programmation "
"Python qui est écrit principalement en Python utilisant les classes *MFC*."
#: faq/gui.rst:116
#: faq/gui.rst:36
msgid "Tkinter questions"
msgstr "Questions à propos de *Tkinter*"
#: faq/gui.rst:119
#: faq/gui.rst:39
msgid "How do I freeze Tkinter applications?"
msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?"
#: faq/gui.rst:121
#: faq/gui.rst:41
msgid ""
"Freeze is a tool to create stand-alone applications. When freezing Tkinter "
"applications, the applications will not be truly stand-alone, as the "
@ -255,7 +82,7 @@ msgstr ""
"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et "
"Tk."
#: faq/gui.rst:125
#: faq/gui.rst:45
msgid ""
"One solution is to ship the application with the Tcl and Tk libraries, and "
"point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:"
@ -265,11 +92,12 @@ msgstr ""
"l'application et de les retrouver à l'exécution en utilisant les variables "
"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`."
#: faq/gui.rst:129
#: 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 "
@ -277,7 +105,7 @@ msgstr ""
"Un outil supportant cela est *SAM* (modules autonomes), qui fait partie de "
"la distribution *Tix* (http://tix.sourceforge.net/)."
#: faq/gui.rst:134
#: faq/gui.rst:54
msgid ""
"Build Tix with SAM enabled, perform the appropriate call to :c:func:"
"`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link "
@ -288,11 +116,11 @@ msgstr ""
"et liez avec *libtclsam* et *libtksam* (il est également possible d'inclure "
"les bibliothèques *Tix*)."
#: faq/gui.rst:141
#: faq/gui.rst:61
msgid "Can I have Tk events handled while waiting for I/O?"
msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?"
#: faq/gui.rst:143
#: faq/gui.rst:63
msgid ""
"On platforms other than Windows, yes, and you don't even need threads! But "
"you'll have to restructure your I/O code a bit. Tk has the equivalent of "
@ -307,13 +135,13 @@ msgstr ""
"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur "
"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`."
#: faq/gui.rst:151
#: faq/gui.rst:71
msgid "I can't get key bindings to work in Tkinter: why?"
msgstr ""
"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : "
"pourquoi ?"
#: faq/gui.rst:153
#: faq/gui.rst:73
msgid ""
"An often-heard complaint is that event handlers bound to events with the :"
"meth:`bind` method don't get handled even when the appropriate key is "
@ -323,7 +151,7 @@ msgstr ""
"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même "
"lorsque la touche appropriée est activée."
#: faq/gui.rst:156
#: faq/gui.rst:76
msgid ""
"The most common cause is that the widget to which the binding applies "
"doesn't have \"keyboard focus\". Check out the Tk documentation for the "
@ -331,7 +159,175 @@ msgid ""
"it (but not for labels; see the takefocus option)."
msgstr ""
"La cause la plus fréquente est que l'objet graphique auquel s'applique la "
"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour "
"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour "
"la commande *focus*. Habituellement, un objet graphique reçoit le focus du "
"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option "
"*takefocus*)."
#~ msgid "What platform-independent GUI toolkits exist for Python?"
#~ msgstr ""
#~ "Quelles bibliothèques d'interfaces graphiques multi-plateformes existent "
#~ "en Python ?"
#~ msgid ""
#~ "Depending on what platform(s) you are aiming at, there are several. Some "
#~ "of them haven't been ported to Python 3 yet. At least `Tkinter`_ and "
#~ "`Qt`_ are known to be Python 3-compatible."
#~ msgstr ""
#~ "Selon les plateformes que vous comptez utiliser, il en existe plusieurs. "
#~ "Certaines ne sont cependant pas encore disponibles en Python 3. A minima, "
#~ "`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3."
#~ msgid "Tkinter"
#~ msgstr "*Tkinter*"
#~ msgid "wxWidgets"
#~ msgstr "*wxWidgets*"
#~ msgid ""
#~ "wxWidgets (https://www.wxwidgets.org) is a free, portable GUI class "
#~ "library written in C++ that provides a native look and feel on a number "
#~ "of platforms, with Windows, Mac OS X, GTK, X11, all listed as current "
#~ "stable targets. Language bindings are available for a number of "
#~ "languages including Python, Perl, Ruby, etc."
#~ msgstr ""
#~ "`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG "
#~ "portable et gratuite écrite en C++ qui fournit une apparence native sur "
#~ "un certain nombre de plates-formes, elle est notamment en version stable "
#~ "pour Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un "
#~ "certain nombre de langages, y compris Python, Perl, Ruby, etc."
#~ msgid ""
#~ "`wxPython <https://www.wxpython.org>`_ is the Python binding for "
#~ "wxwidgets. While it often lags slightly behind the official wxWidgets "
#~ "releases, it also offers a number of features via pure Python extensions "
#~ "that are not available in other language bindings. There is an active "
#~ "wxPython user and developer community."
#~ msgstr ""
#~ "`wxPython <http://www.wxpython.org>`_ est le portage Python de "
#~ "*wxWidgets*. Bien quil soit légèrement en retard sur les versions "
#~ "officielles de *wxWidgets*, il offre également des fonctionnalités "
#~ "propres à Python qui ne sont pas disponibles pour les clients d'autres "
#~ "langages. *WxPython* dispose de plus, dune communauté dutilisateurs et "
#~ "de développeurs active."
#~ msgid ""
#~ "Both wxWidgets and wxPython are free, open source, software with "
#~ "permissive licences that allow their use in commercial products as well "
#~ "as in freeware or shareware."
#~ msgstr ""
#~ "*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open "
#~ "source, avec des licences permissives qui permettent leur utilisation "
#~ "dans des produits commerciaux ainsi que dans des logiciels gratuits ou "
#~ "contributifs (*shareware*)."
#~ msgid "Qt"
#~ msgstr "*Qt*"
#~ msgid ""
#~ "There are bindings available for the Qt toolkit (using either `PyQt "
#~ "<https://riverbankcomputing.com/software/pyqt/intro>`_ or `PySide "
#~ "<https://wiki.qt.io/PySide>`_) and for KDE (`PyKDE4 <https://techbase.kde."
#~ "org/Languages/Python/Using_PyKDE_4>`__). PyQt is currently more mature "
#~ "than PySide, but you must buy a PyQt license from `Riverbank Computing "
#~ "<https://www.riverbankcomputing.com/commercial/license-faq>`_ if you want "
#~ "to write proprietary applications. PySide is free for all applications."
#~ msgstr ""
#~ "Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant "
#~ "soit `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_ ou "
#~ "`PySide <https://wiki.qt.io/PySide>`_) et pour *KDE* (`PyKDE4 <https://"
#~ "techbase.kde.org/Languages/Python/Using_PyKDE_4>`__). *PyQt* est "
#~ "actuellement plus mûre que *PySide*, mais*PyQt* nécessite d'acheter une "
#~ "licence de `Riverbank Computing <https://www.riverbankcomputing.com/"
#~ "commercial/license-faq>`_ si vous voulez écrire des applications "
#~ "propriétaires. *PySide* est gratuit pour toutes les applications."
#~ msgid ""
#~ "Qt 4.5 upwards is licensed under the LGPL license; also, commercial "
#~ "licenses are available from `The Qt Company <https://www.qt.io/licensing/"
#~ ">`_."
#~ msgstr ""
#~ "*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales "
#~ "sont disponibles auprès de `The Qt Company <https://www.qt.io/licensing/"
#~ ">`_."
#~ msgid "Gtk+"
#~ msgstr "*Gtk+*"
#~ msgid ""
#~ "The `GObject introspection bindings <https://wiki.gnome.org/Projects/"
#~ "PyGObject>`_ for Python allow you to write GTK+ 3 applications. There is "
#~ "also a `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs."
#~ "io>`_."
#~ msgstr ""
#~ "Les `GObject introspection bindings <https://wiki.gnome.org/Projects/"
#~ "PyGObject>`_ pour Python vous permettent d'écrire des applications GTK+ "
#~ "3. Il y a aussi un tutoriel `Python GTK+ 3 <https://python-gtk-3-"
#~ "tutorial.readthedocs.io>`_."
#~ msgid ""
#~ "The older PyGtk bindings for the `Gtk+ 2 toolkit <https://www.gtk.org>`_ "
#~ "have been implemented by James Henstridge; see <http://www.pygtk.org>."
#~ msgstr ""
#~ "Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit <https://www."
#~ "gtk.org>`_ ont été implémentées par James Henstridge ; voir <http://www."
#~ "pygtk.org>."
#~ msgid "Kivy"
#~ msgstr "*Kivy*"
#~ msgid ""
#~ "`Kivy <https://kivy.org/>`_ is a cross-platform GUI library supporting "
#~ "both desktop operating systems (Windows, macOS, Linux) and mobile devices "
#~ "(Android, iOS). It is written in Python and Cython, and can use a range "
#~ "of windowing backends."
#~ msgstr ""
#~ "`*Kivy* <https://kivy.org/>`_ est une bibliothèque GUI multi-plateformes "
#~ "disponible à la fois sur les systèmes d'exploitation de bureau (Windows, "
#~ "MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite "
#~ "en Python et Cython, et peut utiliser une série de fenêtres de *backends*."
#~ msgid ""
#~ "Kivy is free and open source software distributed under the MIT license."
#~ msgstr ""
#~ "*Kivy* est un logiciel libre et open source distribué sous licence MIT."
#~ msgid "FLTK"
#~ msgstr "*FLTK*"
#~ msgid ""
#~ "Python bindings for `the FLTK toolkit <http://www.fltk.org>`_, a simple "
#~ "yet powerful and mature cross-platform windowing system, are available "
#~ "from `the PyFLTK project <https://pyfltk.sourceforge.io/>`_."
#~ msgstr ""
#~ "Les liaisons Python pour `the FLTK toolkit <http://www.fltk.org>`_, un "
#~ "système de fenêtrage multi-plateformes simple mais puissant et mûr, sont "
#~ "disponibles auprès de `the PyFLTK project <http://pyfltk.sourceforge."
#~ "io>`_."
#~ msgid "OpenGL"
#~ msgstr "*OpenGL*"
#~ msgid ""
#~ "For OpenGL bindings, see `PyOpenGL <http://pyopengl.sourceforge.net>`_."
#~ msgstr ""
#~ "Pour les clients OpenGL, voir `PyOpenGL <http://pyopengl.sourceforge."
#~ "net>`_."
#~ msgid ""
#~ "By installing the `PyObjc Objective-C bridge <https://pypi.org/project/"
#~ "pyobjc/>`_, Python programs can use Mac OS X's Cocoa libraries."
#~ msgstr ""
#~ "En installant le `PyObjc Objective-C bridge <https://pypi.org/project/"
#~ "pyobjc/>`_, les programmes Python peuvent utiliser les bibliothèques "
#~ "Cocoa de Mac OS X."
#~ msgid ""
#~ ":ref:`Pythonwin <windows-faq>` by Mark Hammond includes an interface to "
#~ "the Microsoft Foundation Classes and a Python programming environment "
#~ "that's written mostly in Python using the MFC classes."
#~ msgstr ""
#~ ":ref:`Pythonwin <windows-faq>` de Mark Hammond inclut une interface vers "
#~ "les classes `Microsoft Foundation Classes` et un environnement de "
#~ "programmation Python qui est écrit principalement en Python utilisant les "
#~ "classes *MFC*."

View File

@ -5,15 +5,15 @@ 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-10-04 16:57+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2021-10-17 18: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 2.1.1\n"
"X-Generator: Poedit 3.0\n"
#: faq/installed.rst:3
msgid "\"Why is Python Installed on my Computer?\" FAQ"
@ -93,12 +93,12 @@ msgstr ""
#: faq/installed.rst:32
msgid ""
"Many Unix-compatible operating systems, such as Mac OS X and some Linux "
"Many Unix-compatible operating systems, such as macOS and some Linux "
"distributions, have Python installed by default; it's included in the base "
"installation."
msgstr ""
"Python est installé par défaut et à l'installation par de nombreux systèmes "
"Unix, comme Mac OS X et certaines distributions Linux."
"Python est installé par défaut sur de nombreux systèmes compatibles Unix, "
"comme macOS et certaines distributions Linux."
#: faq/installed.rst:38
msgid "Can I delete Python?"

View File

@ -5,15 +5,15 @@ 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: 2020-11-07 16:04+0100\n"
"Last-Translator: Mindiell <mindiell@mindiell.net>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"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.1\n"
"X-Generator: Poedit 3.0\n"
#: faq/library.rst:5
msgid "Library and Extension FAQ"
@ -30,7 +30,7 @@ msgstr "Questions générales sur la bibliothèque"
#: faq/library.rst:15
msgid "How do I find a module or application to perform task X?"
msgstr ""
"Comment trouver un module ou une application pour effectuer la tâche X ?"
"Comment trouver un module ou une application pour effectuer la tâche X ?"
#: faq/library.rst:17
msgid ""
@ -45,7 +45,7 @@ msgstr ""
#: faq/library.rst:21
msgid ""
"For third-party packages, search the `Python Package Index <https://pypi."
"org>`_ or try `Google <https://www.google.com>`_ or another Web search "
"org>`_ or try `Google <https://www.google.com>`_ or another web search "
"engine. Searching for \"Python\" plus a keyword or two for your topic of "
"interest will usually find something helpful."
msgstr ""
@ -96,12 +96,12 @@ msgid ""
"modules written in C and linked with the interpreter; to get a list of "
"these, type::"
msgstr ""
"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, "
"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, "
"entrez ::"
#: faq/library.rst:47
msgid "How do I make a Python script executable on Unix?"
msgstr "Comment rendre un script Python exécutable sous Unix ?"
msgstr "Comment rendre un script Python exécutable sous Unix ?"
#: faq/library.rst:49
msgid ""
@ -127,7 +127,7 @@ msgid ""
"to write ::"
msgstr ""
"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à "
"écrire au tout début du fichier ::"
"écrire au tout début du fichier ::"
#: faq/library.rst:61
msgid ""
@ -165,7 +165,7 @@ msgid ""
"try the following hack (due to Alex Rezinsky):"
msgstr ""
"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le "
"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* "
"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* "
"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, "
"élaborée par Alex Rezinsky :"
@ -175,11 +175,11 @@ msgid ""
"However, you can fix that by adding ::"
msgstr ""
"Le léger inconvénient est que cela définit la variable *__doc__* du script. "
"Cependant, il est possible de corriger cela en ajoutant ::"
"Cependant, il est possible de corriger cela en ajoutant ::"
#: faq/library.rst:94
msgid "Is there a curses/termcap package for Python?"
msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?"
msgstr "Existe-t-il un module *curses* ou *termcap* en Python ?"
#: faq/library.rst:98
msgid ""
@ -188,7 +188,7 @@ msgid ""
"compiled by default. (Note that this is not available in the Windows "
"distribution -- there is no curses module for Windows.)"
msgstr ""
"Pour les dérivés d'Unix : la distribution standard de Python contient un "
"Pour les dérivés d'Unix : la distribution standard de Python contient un "
"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit "
"pas compilé par défaut. Il n'est pas disponible en Windows — le module "
"*curses* n'existant pas en Windows."
@ -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 ?"
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,31 +222,31 @@ 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-t'ils pas ?"
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 ::"
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 ::"
"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 ?"
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 ::"
"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* ?"
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 ?"
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 ?"
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,19 +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:246
msgid ""
"Aahz has a set of slides from his threading tutorial that are helpful; see "
"http://www.pythoncraft.com/OSCON2001/."
msgstr ""
"Un ensemble de diapositives issues du didacticiel de Aahz sur les fils "
"d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/."
#: faq/library.rst:251
#: faq/library.rst:245
msgid "None of my threads seem to run: why?"
msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?"
msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?"
#: faq/library.rst:253
#: 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."
@ -409,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:256
#: 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::"
@ -417,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:271
#: 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 "
@ -425,16 +410,16 @@ msgid ""
msgstr ""
"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas "
"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après "
"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne "
"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:275
#: 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:288
#: 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:"
@ -449,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:296
#: 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 ?"
"d'exécutions ?"
#: faq/library.rst:298
#: faq/library.rst:292
msgid ""
"The easiest way is to use the :mod:`concurrent.futures` module, especially "
"the :mod:`~concurrent.futures.ThreadPoolExecutor` class."
@ -464,7 +449,7 @@ msgstr ""
"futures`, en particulier la classe :mod:`~concurrent.futures."
"ThreadPoolExecutor`."
#: faq/library.rst:301
#: 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 "
@ -481,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:308
#: faq/library.rst:302
msgid "Here's a trivial example::"
msgstr "Voici un exemple trivial ::"
#: faq/library.rst:346
#: 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 :"
msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :"
#: faq/library.rst:364
#: faq/library.rst:358
msgid ""
"Consult the module's documentation for more details; the :class:`~queue."
"Queue` class provides a featureful interface."
@ -497,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:369
#: 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:371
#: 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 "
@ -516,12 +501,12 @@ msgstr ""
"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la "
"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De "
"manière générale, Python ne change de fil qu'entre les instructions du code "
"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la "
"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la "
"fréquence de bascule entre les fils. Chaque instruction du code "
"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:378
#: 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 "
@ -531,10 +516,10 @@ msgstr ""
"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance "
"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les "
"opérations sur des variables partagées de type natif (les entier, les "
"listes, les dictionnaires etc.) qui « semblent atomiques » le sont "
"listes, les dictionnaires, etc.) qui « semblent atomiques » le sont "
"réellement."
#: faq/library.rst:383
#: 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)::"
@ -543,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:398
#: faq/library.rst:392
msgid "These aren't::"
msgstr "Les suivantes ne le sont pas ::"
#: faq/library.rst:405
#: 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 "
@ -557,14 +542,14 @@ msgstr ""
"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :"
"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, "
"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les "
"des changements massifs sur des dictionnaires ou des listes. En cas de "
"doute, il vaut mieux utiliser un mutex."
"changements massifs sur des dictionnaires ou des listes. En cas de doute, il "
"vaut mieux utiliser un mutex !"
#: faq/library.rst:412
#: 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 ?"
msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?"
#: faq/library.rst:416
#: 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 "
@ -578,7 +563,7 @@ msgstr ""
"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL "
"acquis."
#: faq/library.rst:421
#: 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 "
@ -594,11 +579,11 @@ msgstr ""
"le GIL par des verrous plus granulaires. Adam Olsen a conduit une expérience "
"similaire dans son projet `python-safethread <https://code.google.com/"
"archive/p/python-safethread>`_. Malheureusement, ces deux tentatives ont "
"induit une baisse significative (d'au moins 30%) des performances du code à "
"induit une baisse significative (d'au moins 30 %) des performances du code à "
"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:429
#: 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 "
@ -609,14 +594,14 @@ msgid ""
"dispatching of tasks."
msgstr ""
"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des "
"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le "
"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le "
"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils "
"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du "
"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; "
"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; "
"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:437
#: 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 "
@ -630,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:443
#: 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 "
@ -651,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:452
#: 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 "
@ -663,24 +648,24 @@ 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:457
#: 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?"
msgstr ""
"Et enfin, quel intérêt y-a t'il à avoir plusieurs interpréteurs qui ne "
"Et enfin, quel intérêt y a-t-il à avoir plusieurs interpréteurs qui ne "
"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans "
"un processus différent ?"
"un processus différent ?"
#: faq/library.rst:462
#: faq/library.rst:456
msgid "Input and Output"
msgstr "Les entrées/sorties"
#: faq/library.rst:465
#: 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…)"
msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)"
#: faq/library.rst:467
#: 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."
@ -691,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:471
#: 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 "
@ -705,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:477
#: 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:479
#: 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. "
@ -723,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:484
#: 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 :"
@ -733,22 +718,24 @@ msgstr ""
"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :"
"func:`~shutil.copytree` et :func:`~shutil.rmtree`."
#: faq/library.rst:490
#: faq/library.rst:484
msgid "How do I copy a file?"
msgstr "Comment copier un fichier ?"
msgstr "Comment copier un fichier ?"
#: faq/library.rst:492
#: 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:497
msgid "How do I read (or write) binary data?"
msgstr "Comment lire (ou écrire) des données binaires ?"
msgstr "Comment lire (ou écrire) des données binaires ?"
#: faq/library.rst:499
msgid ""
@ -805,7 +792,7 @@ msgstr ""
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 ?"
"popen()`` ; pourquoi ?"
#: faq/library.rst:531
msgid ""
@ -824,15 +811,15 @@ msgstr ""
#: 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) ?"
msgstr "Comment accéder au port de transmission en série (RS-232) ?"
#: faq/library.rst:620
msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:"
msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :"
msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:"
msgstr "Pour Win32, OSX, Linux, BSD, Jython et IronPython :"
#: faq/library.rst:622
msgid "http://pyserial.sourceforge.net"
msgstr "http://pyserial.sourceforge.net"
msgid "https://pypi.org/project/pyserial/"
msgstr "https://pypi.org/project/pyserial/"
#: faq/library.rst:624
msgid "For Unix, see a Usenet post by Mitch Chapman:"
@ -847,7 +834,7 @@ msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
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 ?"
"réellement ?"
#: faq/library.rst:632
msgid ""
@ -879,7 +866,7 @@ msgid ""
"associated C file descriptor."
msgstr ""
"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en "
"Python, car leur statut en C est lui-aussi spécial. Exécuter ``sys.stdout."
"Python, car leur statut en C est lui aussi spécial. Exécuter ``sys.stdout."
"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais "
"le descripteur de fichier C associé n'est *pas* fermé."
@ -906,7 +893,7 @@ msgstr "Programmation réseau et Internet"
#: faq/library.rst:661
msgid "What WWW tools are there for Python?"
msgstr "Quels sont les outils Python dédiés à la Toile ?"
msgstr "Quels sont les outils Python dédiés à la Toile ?"
#: faq/library.rst:663
msgid ""
@ -927,9 +914,11 @@ msgstr ""
"l'adresse https://wiki.python.org/moin/WebProgramming\\ ."
#: 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/"
@ -945,7 +934,7 @@ msgid ""
"there existing code that would let me do this easily?"
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 ?"
"Toile. Existe-t-il déjà du code qui pourrait m'aider à le faire facilement ?"
#: faq/library.rst:682
msgid "Yes. Here's a simple example that uses :mod:`urllib.request`::"
@ -958,7 +947,7 @@ msgid ""
"``name=Guy Steele, Jr.``::"
msgstr ""
"Remarquez qu'en général, la chaîne de caractères d'une requête POST encodée "
"avec des des signes « % » doit être mise entre guillemets à l'aide de :func:"
"avec des signes « % » doit être mise entre guillemets à l'aide de :func:"
"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr."
"`` ::"
@ -968,7 +957,7 @@ msgstr ":ref:`urllib-howto` pour des exemples complets."
#: 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 ?"
msgstr "Quel module utiliser pour générer du HTML ?"
#: faq/library.rst:713
msgid ""
@ -980,7 +969,7 @@ msgstr ""
#: faq/library.rst:718
msgid "How do I send mail from a Python script?"
msgstr "Comment envoyer un courriel avec un script Python ?"
msgstr "Comment envoyer un courriel avec un script Python ?"
#: faq/library.rst:720
msgid "Use the standard library module :mod:`smtplib`."
@ -1010,7 +999,7 @@ msgstr ""
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 ?"
"réseau ?"
#: faq/library.rst:764
msgid ""
@ -1071,7 +1060,7 @@ msgstr "Bases de données"
#: 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 ?"
"Existe-t-il des modules Python pour s'interfacer avec des bases de données ?"
#: faq/library.rst:793
msgid "Yes."
@ -1087,7 +1076,7 @@ msgstr ""
"La distribution standard de Python fournit aussi des interfaces à des bases "
"de données comme :mod:`DBM <dbm.ndbm>` ou :mod:`GDBM <dbm.gnu>`. Il existe "
"aussi le module :mod:`sqlite3` qui implémente une base de données "
"relationelle légère sur disque."
"relationnelle légère sur disque."
#: faq/library.rst:800
msgid ""
@ -1101,7 +1090,7 @@ msgstr ""
#: faq/library.rst:806
msgid "How do you implement persistent objects in Python?"
msgstr "Comment implémenter la persistance d'objets en Python ?"
msgstr "Comment implémenter la persistance d'objets en Python ?"
#: faq/library.rst:808
msgid ""
@ -1121,7 +1110,7 @@ msgstr "Mathématiques et calcul numérique"
#: faq/library.rst:818
msgid "How do I generate random numbers in Python?"
msgstr "Comment générer des nombres aléatoires en Python ?"
msgstr "Comment générer des nombres aléatoires en Python ?"
#: faq/library.rst:820
msgid ""
@ -1140,7 +1129,7 @@ msgstr ""
#: 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 :"
msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :"
#: faq/library.rst:830
msgid "``randrange(a, b)`` chooses an integer in the range [a, b)."
@ -1160,7 +1149,7 @@ msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)."
#: 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 :"
"Des fonctions de haut niveau opèrent directement sur des séquences comme :"
#: faq/library.rst:836
msgid "``choice(S)`` chooses a random element from a given sequence."
@ -1179,3 +1168,28 @@ msgid ""
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/."
#~ msgstr ""
#~ "Un ensemble de diapositives issues du didacticiel de Aahz sur les fils "
#~ "d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/."
#~ msgid "http://pyserial.sourceforge.net"
#~ msgstr "http://pyserial.sourceforge.net"

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-01-28 16:02+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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.2\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 reconnaitre 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 ""
@ -233,6 +233,8 @@ msgid ""
"See :ref:`faq-create-standalone-binary` for a list of tools that can be used "
"to make executables."
msgstr ""
"Voir :ref:`faq-create-standalone-binary` pour une liste d'outils qui créent "
"des exécutables."
#: faq/windows.rst:148
msgid "Is a ``*.pyd`` file the same as a DLL?"
@ -249,8 +251,8 @@ msgid ""
msgstr ""
"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques "
"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une "
"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import "
"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et "
"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import "
"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et "
"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour "
"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas "
"Windows aura besoin de la DLL."
@ -287,19 +289,20 @@ msgstr ""
"résumer comme suit :"
#: faq/windows.rst:170
#, fuzzy
msgid ""
"Do _not_ build Python into your .exe file directly. On Windows, Python must "
"be a DLL to handle importing modules that are themselves DLL's. (This is "
"the first key undocumented fact.) Instead, link to :file:`python{NN}.dll`; "
"it is typically installed in ``C:\\Windows\\System``. *NN* is the Python "
"version, a number such as \"33\" for Python 3.3."
"Do **not** build Python into your .exe file directly. On Windows, Python "
"must be a DLL to handle importing modules that are themselves DLL's. (This "
"is the first key undocumented fact.) Instead, link to :file:`python{NN}."
"dll`; it is typically installed in ``C:\\Windows\\System``. *NN* is the "
"Python version, a number such as \"33\" for Python 3.3."
msgstr ""
"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous "
"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont "
"eux-mêmes des DLL (ceci constitue une information de première importance non "
"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui "
"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version "
"Python, par exemple « 33 » pour Python 3.3."
"Python, par exemple « 33 » pour Python 3.3."
#: faq/windows.rst:176
msgid ""
@ -312,8 +315,8 @@ msgstr ""
"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien "
"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis "
"qu'un lien au moment de l'exécution signifie pointer vers :file:`python{NN}."
"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import "
"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des "
"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import "
"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des "
"liens symboliques pour l'éditeur de liens.)"
#: faq/windows.rst:182
@ -335,30 +338,23 @@ 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
#, fuzzy
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 "
"just about all the grungy details for you. The result is C code that you "
"link *into* your .exe file (!) You do _not_ have to create a DLL file, and "
"this also simplifies linking."
"link *into* your .exe file (!) You do **not** have to create a DLL file, "
"and this also simplifies linking."
msgstr ""
"Si vous utilisez SWIG, il est facile de créer un « module d'extension » "
"Si vous utilisez SWIG, il est facile de créer un « module d'extension » "
"Python qui rendra les données et les méthodes de l'application disponibles "
"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le "
"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous "
"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 "
@ -373,7 +369,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 "
@ -383,7 +379,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."
@ -391,7 +387,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."
@ -400,12 +396,13 @@ msgstr ""
"utilisez un compilateur autre que MSVC, le compilateur utilisé pour "
"construire *pythonNN.dll*."
#: faq/windows.rst:224
#: faq/windows.rst:221
#, fuzzy
msgid ""
"Problem 1: The so-called \"Very High Level\" functions that take FILE * "
"Problem 1: The so-called \"Very High Level\" functions that take ``FILE *`` "
"arguments will not work in a multi-compiler environment because each "
"compiler's notion of a struct FILE will be different. From an "
"implementation standpoint these are very _low_ level functions."
"compiler's notion of a ``struct FILE`` will be different. From an "
"implementation standpoint these are very low level functions."
msgstr ""
"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les "
"arguments FILE * ne fonctionneront pas dans un environnement multi-"
@ -413,7 +410,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:"
@ -421,7 +418,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 "
@ -432,7 +429,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 "
@ -442,7 +439,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 "
@ -457,19 +454,19 @@ msgstr ""
"depuis votre application Windows n'est pas une bonne idée ; la fenêtre "
"résultante sera indépendante du système de fenêtrage de votre application. "
"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre "
"d'interpréteur « native ». Il est facile de connecter cette fenêtre à "
"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers "
"d'interpréteur « native ». Il est facile de connecter cette fenêtre à "
"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers "
"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce "
"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 "
@ -480,7 +477,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 :"
@ -494,7 +491,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:"
@ -504,13 +501,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 "
@ -521,6 +518,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

465
howto/annotations.po Normal file
View File

@ -0,0 +1,465 @@
# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-12 09:43+0200\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"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"
#: howto/annotations.rst:5
msgid "Annotations Best Practices"
msgstr "Bonnes pratiques concernant les annotations"
#: howto/annotations.rst:0
msgid "author"
msgstr "auteur"
#: howto/annotations.rst:7
msgid "Larry Hastings"
msgstr "Larry Hastings"
#: howto/annotations.rst:None
msgid "Abstract"
msgstr "Résumé"
#: howto/annotations.rst:11
msgid ""
"This document is designed to encapsulate the best practices for working with "
"annotations dicts. If you write Python code that examines "
"``__annotations__`` on Python objects, we encourage you to follow the "
"guidelines described below."
msgstr ""
"Ce document a pour but de regrouper les bonnes pratiques de travail avec le "
"dictionnaire d'annotations. Si vous écrivez du code Python qui examine les "
"``__annotations__`` des objets, nous vous encourageons à suivre les "
"recommandations décrites dans la suite."
#: howto/annotations.rst:16
msgid ""
"The document is organized into four sections: best practices for accessing "
"the annotations of an object in Python versions 3.10 and newer, best "
"practices for accessing the annotations of an object in Python versions 3.9 "
"and older, other best practices for ``__annotations__`` that apply to any "
"Python version, and quirks of ``__annotations__``."
msgstr ""
"Ce document est organisé en quatre sections : bonnes pratiques pour accéder "
"aux annotations d'un objet en Python 3.10 et plus récent, bonnes pratiques "
"pour accéder aux annotations d'un objet en Python 3.9 et antérieur, autres "
"bonnes pratiques pour ``__annotations__`` à appliquer quelle que soit la "
"version de Python, et enfin les curiosités concernant ``__annotations__``."
#: howto/annotations.rst:26
msgid ""
"Note that this document is specifically about working with "
"``__annotations__``, not uses *for* annotations. If you're looking for "
"information on how to use \"type hints\" in your code, please see the :mod:"
"`typing` module."
msgstr ""
"Notez que ce document traite spécifiquement du traitement des "
"``__annotations__``, et non de l'*utilisation* des annotations. Si vous "
"cherchez des informations sur la façon d'utiliser les « indications de "
"type » dans votre code, veuillez consulter le module :mod:`typing`."
#: howto/annotations.rst:33
msgid "Accessing The Annotations Dict Of An Object In Python 3.10 And Newer"
msgstr ""
"Accès au dictionnaire des annotations d'un objet dans Python 3.10 et plus "
"récent"
#: howto/annotations.rst:35
msgid ""
"Python 3.10 adds a new function to the standard library: :func:`inspect."
"get_annotations`. In Python versions 3.10 and newer, calling this function "
"is the best practice for accessing the annotations dict of any object that "
"supports annotations. This function can also \"un-stringize\" stringized "
"annotations for you."
msgstr ""
"Python 3.10 ajoute une nouvelle fonction à la bibliothèque standard : :func:"
"`inspect.get_annotations`. Dans les versions Python 3.10 et plus récentes, "
"l'appel à cette fonction est la meilleure pratique pour accéder au "
"dictionnaire d'annotations de tout objet qui prend en charge les "
"annotations. Cette fonction peut également convertir pour vous les "
"annotations contenues dans des chaînes de caractères en objets."
#: howto/annotations.rst:42
msgid ""
"If for some reason :func:`inspect.get_annotations` isn't viable for your use "
"case, you may access the ``__annotations__`` data member manually. Best "
"practice for this changed in Python 3.10 as well: as of Python 3.10, ``o."
"__annotations__`` is guaranteed to *always* work on Python functions, "
"classes, and modules. If you're certain the object you're examining is one "
"of these three *specific* objects, you may simply use ``o.__annotations__`` "
"to get at the object's annotations dict."
msgstr ""
"Si pour une raison quelconque, :func:`inspect.get_annotations` n'est pas "
"viable pour votre cas d'utilisation, vous pouvez accéder à l'attribut de "
"données ``__annotations__`` manuellement. La bonne pratique pour cela a "
"également changé en Python 3.10 : à partir de Python 3.10, le fonctionnement "
"de ``o.__annotations__`` est *toujours* garanti sur les fonctions, classes "
"et modules Python. Si vous êtes certain que l'objet que vous examinez est "
"l'un de ces trois objets *spécifiques*, vous pouvez simplement utiliser ``o."
"__annotations__`` pour accéder au dictionnaire d'annotations de l'objet."
#: howto/annotations.rst:52
msgid ""
"However, other types of callables--for example, callables created by :func:"
"`functools.partial`--may not have an ``__annotations__`` attribute defined. "
"When accessing the ``__annotations__`` of a possibly unknown object, best "
"practice in Python versions 3.10 and newer is to call :func:`getattr` with "
"three arguments, for example ``getattr(o, '__annotations__', None)``."
msgstr ""
"Cependant, d'autres types d'objets appelables par exemple, les objets "
"appelables créés par :func:`functools.partial` peuvent ne pas avoir "
"d'attribut ``__annotations__`` défini. Pour accéder à l'attribut "
"``__annotations__`` d'un objet éventuellement inconnu, la meilleure "
"pratique, à partir de la version 3.10 de Python, est d'appeler :func:"
"`getattr` avec trois arguments, par exemple ``getattr(o, '__annotations__', "
"None)``."
#: howto/annotations.rst:60
msgid ""
"Before Python 3.10, accessing ``__annotations__`` on a class that defines no "
"annotations but that has a parent class with annotations would return the "
"parent's ``__annotations__``. In Python 3.10 and newer, the child class's "
"annotations will be an empty dict instead."
msgstr ""
#: howto/annotations.rst:68
msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older"
msgstr ""
"Accès au dictionnaire des annotations d'un objet en Python 3.9 et antérieur"
#: howto/annotations.rst:70
msgid ""
"In Python 3.9 and older, accessing the annotations dict of an object is much "
"more complicated than in newer versions. The problem is a design flaw in "
"these older versions of Python, specifically to do with class annotations."
msgstr ""
"En Python 3.9 et antérieur, l'accès au dictionnaire des annotations d'un "
"objet est beaucoup plus compliqué que dans les versions plus récentes. Le "
"problème est dû à un défaut de conception de ces anciennes versions de "
"Python, notamment en ce qui concerne les annotations de classe."
#: howto/annotations.rst:75
msgid ""
"Best practice for accessing the annotations dict of other objects--"
"functions, other callables, and modules--is the same as best practice for "
"3.10, assuming you aren't calling :func:`inspect.get_annotations`: you "
"should use three-argument :func:`getattr` to access the object's "
"``__annotations__`` attribute."
msgstr ""
"La bonne pratique pour accéder au dictionnaire d'annotations d'autres objets "
" fonctions, autres objets appelables et modules est la même que pour la "
"3.10, en supposant que vous n'appelez pas :func:`inspect.get_annotations` : "
"vous devez utiliser la forme à trois arguments de :func:`getattr` pour "
"accéder à l'attribut ``__annotations__`` de l'objet."
#: howto/annotations.rst:82
msgid ""
"Unfortunately, this isn't best practice for classes. The problem is that, "
"since ``__annotations__`` is optional on classes, and because classes can "
"inherit attributes from their base classes, accessing the "
"``__annotations__`` attribute of a class may inadvertently return the "
"annotations dict of a *base class.* As an example::"
msgstr ""
"Malheureusement, ce n'est pas la bonne pratique pour les classes. Le "
"problème est que, puisque ``__annotations__`` est optionnel sur les classes "
"et que les classes peuvent hériter des attributs de leurs classes de base, "
"accéder à l'attribut ``__annotations__`` d'une classe peut par inadvertance "
"renvoyer le dictionnaire d'annotations d'une *classe de base.* Par "
"exemple : ::"
#: howto/annotations.rst:98
msgid "This will print the annotations dict from ``Base``, not ``Derived``."
msgstr ""
"Ceci affiche le dictionnaire d'annotations de ``Base``, pas de ``Derived``."
#: howto/annotations.rst:101
msgid ""
"Your code will have to have a separate code path if the object you're "
"examining is a class (``isinstance(o, type)``). In that case, best practice "
"relies on an implementation detail of Python 3.9 and before: if a class has "
"annotations defined, they are stored in the class's ``__dict__`` "
"dictionary. Since the class may or may not have annotations defined, best "
"practice is to call the ``get`` method on the class dict."
msgstr ""
"Votre code doit gérer les différentes options si l'objet que vous examinez "
"est une classe (``isinstance(o, type)``). Dans ce cas, la bonne pratique "
"repose sur un détail d'implémentation de Python 3.9 et antérieur : si une "
"classe a des annotations définies, elles sont stockées dans le dictionnaire "
"``__dict__`` de la classe. Puisque la classe peut avoir ou non des "
"annotations définies, la bonne pratique est d'appeler la méthode ``get`` sur "
"le dictionnaire de la classe."
#: howto/annotations.rst:109
msgid ""
"To put it all together, here is some sample code that safely accesses the "
"``__annotations__`` attribute on an arbitrary object in Python 3.9 and "
"before::"
msgstr ""
"Pour résumer, voici un exemple de code qui accède en toute sécurité à "
"l'attribut ``__annotations__`` d'un objet quelconque en Python 3.9 et "
"antérieur : ::"
#: howto/annotations.rst:118
msgid ""
"After running this code, ``ann`` should be either a dictionary or ``None``. "
"You're encouraged to double-check the type of ``ann`` using :func:"
"`isinstance` before further examination."
msgstr ""
"Après avoir exécuté ce code, ``ann`` pourra être soit un dictionnaire, soit "
"``None``. Nous vous conseillons de vérifier le type de ``ann`` en "
"utilisant :func:`isinstance` avant de poursuivre l'analyse."
#: howto/annotations.rst:123
msgid ""
"Note that some exotic or malformed type objects may not have a ``__dict__`` "
"attribute, so for extra safety you may also wish to use :func:`getattr` to "
"access ``__dict__``."
msgstr ""
"Notez que certains objets de type exotique ou malformé peuvent ne pas avoir "
"d'attribut ``__dict__`` donc, pour plus de sécurité, vous pouvez également "
"utiliser :func:`getattr` pour accéder à ``__dict__``."
#: howto/annotations.rst:129
msgid "Manually Un-Stringizing Stringized Annotations"
msgstr ""
"Conversion manuelle des annotations contenues dans une chaîne de caractères"
#: howto/annotations.rst:131
msgid ""
"In situations where some annotations may be \"stringized\", and you wish to "
"evaluate those strings to produce the Python values they represent, it "
"really is best to call :func:`inspect.get_annotations` to do this work for "
"you."
msgstr ""
"Dans les situations où certaines annotations peuvent se présenter sous forme "
"de chaînes de caractères brutes, et que vous souhaitez évaluer ces chaînes "
"pour trouver les valeurs Python qu'elles représentent, il est vraiment "
"préférable d'appeler :func:`inspect.get_annotations` pour faire ce travail à "
"votre place."
#: howto/annotations.rst:137
msgid ""
"If you're using Python 3.9 or older, or if for some reason you can't use :"
"func:`inspect.get_annotations`, you'll need to duplicate its logic. You're "
"encouraged to examine the implementation of :func:`inspect.get_annotations` "
"in the current Python version and follow a similar approach."
msgstr ""
"Si vous utilisez Python 3.9 ou antérieur ou, si pour une raison quelconque, "
"vous ne pouvez pas utiliser :func:`inspect.get_annotations`, vous devrez "
"dupliquer son principe de fonctionnement. Nous vous encourageons à examiner "
"l'implémentation de :func:`inspect.get_annotations` dans la version actuelle "
"de Python et à suivre une approche similaire."
#: howto/annotations.rst:143
msgid ""
"In a nutshell, if you wish to evaluate a stringized annotation on an "
"arbitrary object ``o``:"
msgstr ""
"En bref, si vous souhaitez évaluer une annotation empaquetée en chaîne de "
"caractères sur un objet arbitraire ``o`` :"
#: howto/annotations.rst:146
msgid ""
"If ``o`` is a module, use ``o.__dict__`` as the ``globals`` when calling :"
"func:`eval`."
msgstr ""
"Si ``o`` est un module, utilisez ``o.__dict__`` pour accéder aux noms "
"``globals`` lors de l'appel à :func:`eval`."
#: howto/annotations.rst:148
msgid ""
"If ``o`` is a class, use ``sys.modules[o.__module__].__dict__`` as the "
"``globals``, and ``dict(vars(o))`` as the ``locals``, when calling :func:"
"`eval`."
msgstr ""
"Si ``o`` est une classe, utilisez ``sys.modules[o.__module__].__dict__`` "
"pour désigner les noms ``globals``, et ``dict(vars(o))`` pour désigner les "
"``locals``, lorsque vous appelez :func:`eval`."
#: howto/annotations.rst:151
msgid ""
"If ``o`` is a wrapped callable using :func:`functools.update_wrapper`, :func:"
"`functools.wraps`, or :func:`functools.partial`, iteratively unwrap it by "
"accessing either ``o.__wrapped__`` or ``o.func`` as appropriate, until you "
"have found the root unwrapped function."
msgstr ""
"Si ``o`` est un appelable encapsulé à l'aide de :func:`functools."
"update_wrapper`, :func:`functools.wraps`, ou :func:`functools.partial`, dés-"
"encapsulez-le itérativement en accédant à ``o.__wrapped__`` ou ``o.func`` "
"selon le cas, jusqu'à ce que vous ayez trouvé la fonction racine."
#: howto/annotations.rst:155
msgid ""
"If ``o`` is a callable (but not a class), use ``o.__globals__`` as the "
"globals when calling :func:`eval`."
msgstr ""
"Si ``o`` est un objet appelable (mais pas une classe), utilisez ``o."
"__globals__`` pour désigner les globales lors de l'appel de :func:`eval`."
#: howto/annotations.rst:158
msgid ""
"However, not all string values used as annotations can be successfully "
"turned into Python values by :func:`eval`. String values could theoretically "
"contain any valid string, and in practice there are valid use cases for type "
"hints that require annotating with string values that specifically *can't* "
"be evaluated. For example:"
msgstr ""
"Cependant, toutes les valeurs de chaîne utilisées comme annotations ne "
"peuvent pas être transformées avec succès en valeurs Python par :func:"
"`eval`. Les valeurs de chaîne peuvent théoriquement contenir des chaînes "
"valides et, en pratique, il existe des cas d'utilisation valables pour les "
"indications de type qui nécessitent d'annoter avec des valeurs de chaîne qui "
"*ne peuvent pas* être évaluées. Par exemple :"
#: howto/annotations.rst:165
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 "
"charge ne soit ajoutée à Python 3.10."
#: howto/annotations.rst:167
msgid ""
"Definitions that aren't needed at runtime, only imported when :const:`typing."
"TYPE_CHECKING` is true."
msgstr ""
"Les définitions qui ne sont pas nécessaires à l'exécution, importées "
"uniquement lorsque :const:`typing.TYPE_CHECKING` est vrai."
#: howto/annotations.rst:170
msgid ""
"If :func:`eval` attempts to evaluate such values, it will fail and raise an "
"exception. So, when designing a library API that works with annotations, "
"it's recommended to only attempt to evaluate string values when explicitly "
"requested to by the caller."
msgstr ""
"Si :func:`eval` tente d'évaluer de telles valeurs, elle échoue et lève une "
"exception. Ainsi, lors de la conception d'une API de bibliothèque "
"fonctionnant avec des annotations, il est recommandé de ne tenter d'évaluer "
"des valeurs de type chaîne que si l'appelant le demande explicitement."
#: howto/annotations.rst:178
msgid "Best Practices For ``__annotations__`` In Any Python Version"
msgstr ""
"Bonnes pratiques pour ``__annotations__`` dans toutes les versions de Python"
#: howto/annotations.rst:180
msgid ""
"You should avoid assigning to the ``__annotations__`` member of objects "
"directly. Let Python manage setting ``__annotations__``."
msgstr ""
"Évitez d'assigner directement des objets à l'élément ``__annotations__``. "
"Laissez Python gérer le paramétrage de ``__annotations__``."
#: howto/annotations.rst:183
msgid ""
"If you do assign directly to the ``__annotations__`` member of an object, "
"you should always set it to a ``dict`` object."
msgstr ""
"Si vous assignez directement à l'élément ``__annotations__`` d'un objet, "
"vous devez toujours le définir comme un ``dict``."
#: howto/annotations.rst:186
msgid ""
"If you directly access the ``__annotations__`` member of an object, you "
"should ensure that it's a dictionary before attempting to examine its "
"contents."
msgstr ""
"Si vous accédez directement à l'élément ``__annotations__`` d'un objet, vous "
"devez vous assurer qu'il s'agit d'un dictionnaire avant de tenter d'examiner "
"son contenu."
#: howto/annotations.rst:190
msgid "You should avoid modifying ``__annotations__`` dicts."
msgstr "Évitez de modifier les dictionnaires ``__annotations__``."
#: howto/annotations.rst:192
msgid ""
"You should avoid deleting the ``__annotations__`` attribute of an object."
msgstr "Évitez de supprimer l'attribut ``__annotations__`` d'un objet."
#: howto/annotations.rst:197
msgid "``__annotations__`` Quirks"
msgstr "Les curiosités concernant ``__annotations__``"
#: howto/annotations.rst:199
msgid ""
"In all versions of Python 3, function objects lazy-create an annotations "
"dict if no annotations are defined on that object. You can delete the "
"``__annotations__`` attribute using ``del fn.__annotations__``, but if you "
"then access ``fn.__annotations__`` the object will create a new empty dict "
"that it will store and return as its annotations. Deleting the annotations "
"on a function before it has lazily created its annotations dict will throw "
"an ``AttributeError``; using ``del fn.__annotations__`` twice in a row is "
"guaranteed to always throw an ``AttributeError``."
msgstr ""
"Dans toutes les versions de Python 3, les fonctions créent paresseusement un "
"dictionnaire d'annotations si aucune annotation n'est définie sur cet "
"objet. Vous pouvez supprimer l'attribut ``__annotations__`` en utilisant "
"``del fn.__annotations__``, mais si vous accédez ensuite à ``fn."
"__annotations__``, l'objet créera un nouveau dictionnaire vide qu'il "
"stockera et renverra quand on lui demande ses annotations. Si vous "
"supprimez les annotations d'une fonction avant qu'elle n'ait créé "
"paresseusement son dictionnaire d'annotations, vous obtiendrez une exception "
"``AttributeError`` ; si vous utilisez ``del fn.__annotations__`` deux fois "
"de suite, vous êtes sûr de toujours obtenir ``AttributeError``."
#: howto/annotations.rst:209
msgid ""
"Everything in the above paragraph also applies to class and module objects "
"in Python 3.10 and newer."
msgstr ""
"Tout ce qui est dit dans le paragraphe précédent s'applique également aux "
"objets de type classe et module en Python 3.10 et suivants."
#: howto/annotations.rst:212
msgid ""
"In all versions of Python 3, you can set ``__annotations__`` on a function "
"object to ``None``. However, subsequently accessing the annotations on that "
"object using ``fn.__annotations__`` will lazy-create an empty dictionary as "
"per the first paragraph of this section. This is *not* true of modules and "
"classes, in any Python version; those objects permit setting "
"``__annotations__`` to any Python value, and will retain whatever value is "
"set."
msgstr ""
"Dans toutes les versions de Python 3, vous pouvez définir à ``None`` "
"l'élément ``__annotations__`` sur un objet fonction. Cependant, si vous "
"accédez ensuite aux annotations de cet objet en utilisant ``fn."
"__annotations__``, un dictionnaire vide sera créé paresseusement, comme "
"indiqué dans le premier paragraphe de cette section. Ce *n'est pas* le cas "
"des modules et des classes, quelle que soit la version de Python ; ces "
"objets permettent de définir ``__annotations__`` à n'importe quelle valeur "
"Python, et conserveront la valeur définie."
#: howto/annotations.rst:220
msgid ""
"If Python stringizes your annotations for you (using ``from __future__ "
"import annotations``), and you specify a string as an annotation, the string "
"will itself be quoted. In effect the annotation is quoted *twice.* For "
"example::"
msgstr ""
"Si Python convertit vos annotations en chaînes de caractères (en utilisant "
"``from __future__ import annotations``), et que vous spécifiez une chaîne de "
"caractères comme annotation, la chaîne sera elle-même entre guillemets. En "
"fait, l'annotation est mise entre guillemets *deux fois*. Par exemple : ::"
#: howto/annotations.rst:231
msgid ""
"This prints ``{'a': \"'str'\"}``. This shouldn't really be considered a "
"\"quirk\"; it's mentioned here simply because it might be surprising."
msgstr ""
"Ceci renvoie : ``{'a': \"'str'\"}``. Cela ne devrait pas vraiment être "
"considéré comme une « bizarrerie » ; nous le mentionnons ici simplement "
"parce que cela peut être surprenant."

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: 2019-07-25 16:44+0200\n"
"Last-Translator: Antonin Décimo <antonin.decimo@gmail.com>\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n"
"X-Generator: Poedit 3.0\n"
#: howto/argparse.rst:3
msgid "Argparse Tutorial"
@ -419,25 +419,25 @@ msgstr ""
#: howto/argparse.rst:470
msgid ""
"We have introduced another action, \"count\", to count the number of "
"occurrences of a specific optional arguments:"
"occurrences of specific options."
msgstr ""
"Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre "
"doccurrences d'une argument optionnel en particulier :"
"doccurrences d'une option en particulier :"
#: howto/argparse.rst:498
#: howto/argparse.rst:499
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:501
#: howto/argparse.rst:502
msgid "It also behaves similar to \"store_true\" action."
msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``."
#: howto/argparse.rst:503
#: howto/argparse.rst:504
msgid ""
"Now here's a demonstration of what the \"count\" action gives. You've "
"probably seen this sort of usage before."
@ -445,7 +445,7 @@ msgstr ""
"Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. "
"Vous avez sûrement vu ce genre d'utilisation auparavant."
#: howto/argparse.rst:506
#: howto/argparse.rst:507
msgid ""
"And if you don't specify the ``-v`` flag, that flag is considered to have "
"``None`` value."
@ -453,7 +453,7 @@ msgstr ""
"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur "
"``None``."
#: howto/argparse.rst:509
#: howto/argparse.rst:510
msgid ""
"As should be expected, specifying the long form of the flag, we should get "
"the same output."
@ -461,7 +461,7 @@ msgstr ""
"Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait "
"obtenir la même sortie."
#: howto/argparse.rst:512
#: howto/argparse.rst:513
msgid ""
"Sadly, our help output isn't very informative on the new ability our script "
"has acquired, but that can always be fixed by improving the documentation "
@ -471,19 +471,19 @@ msgstr ""
"nouvelles possibilités de notre programme, mais cela peut toujours être "
"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)."
#: howto/argparse.rst:516
#: howto/argparse.rst:517
msgid "That last output exposes a bug in our program."
msgstr "La dernière sortie du programme montre que celui-ci contient un bogue."
#: howto/argparse.rst:519
#: howto/argparse.rst:520
msgid "Let's fix::"
msgstr "Corrigeons ::"
#: howto/argparse.rst:538
#: howto/argparse.rst:539
msgid "And this is what it gives:"
msgstr "Et c'est ce que ça donne :"
#: howto/argparse.rst:553
#: howto/argparse.rst:554
msgid ""
"First output went well, and fixes the bug we had before. That is, we want "
"any value >= 2 to be as verbose as possible."
@ -492,15 +492,15 @@ msgstr ""
"avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= "
"2 rende le programme aussi verbeux que possible."
#: howto/argparse.rst:556
#: howto/argparse.rst:557
msgid "Third output not so good."
msgstr "La troisième sortie de programme n'est pas si bien que ça."
#: howto/argparse.rst:558
#: howto/argparse.rst:559
msgid "Let's fix that bug::"
msgstr "Corrigeons ce bogue ::"
#: howto/argparse.rst:575
#: howto/argparse.rst:576
msgid ""
"We've just introduced yet another keyword, ``default``. We've set it to "
"``0`` in order to make it comparable to the other int values. Remember that "
@ -514,11 +514,11 @@ msgstr ""
"il sera définit à ``None``, et ne pourra pas être comparé à une valeur de "
"type entier (une erreur :exc:`TypeError` serait alors levée)."
#: howto/argparse.rst:582
#: howto/argparse.rst:583
msgid "And:"
msgstr "Et :"
#: howto/argparse.rst:589
#: howto/argparse.rst:590
msgid ""
"You can go quite far just with what we've learned so far, and we have only "
"scratched the surface. The :mod:`argparse` module is very powerful, and "
@ -529,11 +529,11 @@ msgstr ""
"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce "
"tutoriel."
#: howto/argparse.rst:596
#: howto/argparse.rst:597
msgid "Getting a little more advanced"
msgstr "Aller un peu plus loin"
#: howto/argparse.rst:598
#: howto/argparse.rst:599
msgid ""
"What if we wanted to expand our tiny program to perform other powers, not "
"just squares::"
@ -541,11 +541,11 @@ msgstr ""
"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre "
"capable de calculer d'autres puissances, et pas seulement des carrés ::"
#: howto/argparse.rst:653
#: howto/argparse.rst:654
msgid "Output:"
msgstr "Sortie :"
#: howto/argparse.rst:636
#: howto/argparse.rst:637
msgid ""
"Notice that so far we've been using verbosity level to *change* the text "
"that gets displayed. The following example instead uses verbosity level to "
@ -555,11 +555,11 @@ msgstr ""
"pour *changer* le texte qui est affiché. L'exemple suivant au contraire "
"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::"
#: howto/argparse.rst:667
#: howto/argparse.rst:668
msgid "Conflicting options"
msgstr "Paramètres en conflit"
#: howto/argparse.rst:669
#: howto/argparse.rst:670
msgid ""
"So far, we have been working with two methods of an :class:`argparse."
"ArgumentParser` instance. Let's introduce a third one, :meth:"
@ -576,7 +576,7 @@ msgstr ""
"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--"
"verbose`` ::"
#: howto/argparse.rst:695
#: howto/argparse.rst:696
msgid ""
"Our program is now simpler, and we've lost some functionality for the sake "
"of demonstration. Anyways, here's the output:"
@ -585,7 +585,7 @@ msgstr ""
"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie "
"du programme :"
#: howto/argparse.rst:713
#: howto/argparse.rst:714
msgid ""
"That should be easy to follow. I've added that last output so you can see "
"the sort of flexibility you get, i.e. mixing long form options with short "
@ -595,7 +595,7 @@ msgstr ""
"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par "
"exemple pour faire un mélange entre des paramètres courts et longs."
#: howto/argparse.rst:717
#: howto/argparse.rst:718
msgid ""
"Before we conclude, you probably want to tell your users the main purpose of "
"your program, just in case they don't know::"
@ -604,21 +604,21 @@ msgstr ""
"le but principal de votre programme, juste dans le cas ou ils ne le "
"sauraient pas ::"
#: howto/argparse.rst:738
#: howto/argparse.rst:739
msgid ""
"Note that slight difference in the usage text. Note the ``[-v | -q]``, which "
"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 :"
#: howto/argparse.rst:760
#: howto/argparse.rst:761
msgid "Conclusion"
msgstr "Conclusion"
#: howto/argparse.rst:762
#: howto/argparse.rst:763
msgid ""
"The :mod:`argparse` module offers a lot more than shown here. Its docs are "
"quite detailed and thorough, and full of examples. Having gone through this "

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""

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: 2020-09-04 23:34+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-16 14:42+0100\n"
"Last-Translator: Khaïs COLIN <kh.col@orange.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.4\n"
"X-Generator: Poedit 3.2.1\n"
#: howto/curses.rst:5
msgid "Curses Programming with Python"
@ -139,23 +139,17 @@ 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."
"disponible."
#: 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 +167,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 +180,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 +200,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 +211,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 +222,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 +239,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 +247,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 +257,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 +273,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 +281,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 "
@ -304,16 +298,16 @@ msgstr ""
"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable "
"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état "
"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:"
"`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du "
"`try`\\ :keyword:`except` qui capture les exceptions, restaure l'état du "
"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste "
"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 +318,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 +334,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 +351,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 +363,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 +373,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 +392,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 +410,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 +425,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 +439,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 +449,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 +458,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 +466,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 +475,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 +498,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 +510,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:345
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 +538,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 +560,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,22 +570,21 @@ 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 "
"terminal as-is. Strings are encoded to bytes using the value of the "
"window's :attr:`encoding` attribute; this defaults to the default system "
"encoding as returned by :func:`locale.getpreferredencoding`."
"encoding as returned by :func:`locale.getencoding`."
msgstr ""
"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une "
"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le "
"terminal tel quel. Les chaînes sont encodées en octets en utilisant la "
"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut "
"l'encodage du système tel que renvoyé par :func:`locale."
"getpreferredencoding`."
"l'encodage du système tel que renvoyé par :func:`locale.getencoding`."
#: howto/curses.rst:309
#: howto/curses.rst:304
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 +593,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:307
msgid ""
"Constants are provided for extension characters; these constants are "
"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- "
@ -613,7 +606,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:313
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 +625,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:321
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 +642,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:330
msgid "Attributes and Color"
msgstr "Attributs et couleurs"
#: howto/curses.rst:337
#: howto/curses.rst:332
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 +659,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:337
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 +676,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:345
msgid "Attribute"
msgstr "Attribut"
#: howto/curses.rst:352
#: howto/curses.rst:347
msgid ":const:`A_BLINK`"
msgstr ":const:`A_BLINK`"
#: howto/curses.rst:352
#: howto/curses.rst:347
msgid "Blinking text"
msgstr "Texte clignotant"
#: howto/curses.rst:354
#: howto/curses.rst:349
msgid ":const:`A_BOLD`"
msgstr ":const:`A_BOLD`"
#: howto/curses.rst:354
#: howto/curses.rst:349
msgid "Extra bright or bold text"
msgstr "Texte en surbrillance ou en gras"
#: howto/curses.rst:356
#: howto/curses.rst:351
msgid ":const:`A_DIM`"
msgstr ":const:`A_DIM`"
#: howto/curses.rst:356
#: howto/curses.rst:351
msgid "Half bright text"
msgstr "Texte en demi-ton"
#: howto/curses.rst:358
#: howto/curses.rst:353
msgid ":const:`A_REVERSE`"
msgstr ":const:`A_REVERSE`"
#: howto/curses.rst:358
#: howto/curses.rst:353
msgid "Reverse-video text"
msgstr "Texte en mode vidéo inversé"
#: howto/curses.rst:360
#: howto/curses.rst:355
msgid ":const:`A_STANDOUT`"
msgstr ":const:`A_STANDOUT`"
#: howto/curses.rst:360
#: howto/curses.rst:355
msgid "The best highlighting mode available"
msgstr "Le meilleur mode de mis en valeur pour le texte"
#: howto/curses.rst:362
#: howto/curses.rst:357
msgid ":const:`A_UNDERLINE`"
msgstr ":const:`A_UNDERLINE`"
#: howto/curses.rst:362
#: howto/curses.rst:357
msgid "Underlined text"
msgstr "Texte souligné"
#: howto/curses.rst:365
#: howto/curses.rst:360
msgid ""
"So, to display a reverse-video status line on the top line of the screen, "
"you could code::"
@ -743,7 +736,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:367
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 +746,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:371
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 +766,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:381
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 +783,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:388
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:393
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 +802,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:398
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 +818,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:404
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:409
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 +835,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:415
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 +856,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:426
msgid "User Input"
msgstr "Entrées de l'utilisateur"
#: howto/curses.rst:433
#: howto/curses.rst:428
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 +872,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:433
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:435
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 +888,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:440
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 +901,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:445
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 +922,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:455
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 +939,7 @@ msgstr ""
"La boucle principale de votre programme pourrait ressembler à quelque chose "
"comme ::"
#: howto/curses.rst:476
#: howto/curses.rst:471
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 +956,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:478
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 +970,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:489
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 +983,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:513
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:517
msgid "For More Information"
msgstr "Pour aller plus loin"
#: howto/curses.rst:524
#: howto/curses.rst:519
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 +1007,7 @@ msgstr ""
"`curses` est maintenant suffisamment complète. Nous vous encourageons à la "
"parcourir."
#: howto/curses.rst:529
#: howto/curses.rst:524
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 +1022,7 @@ msgstr ""
"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des "
"caractères disponibles."
#: howto/curses.rst:536
#: howto/curses.rst:531
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 +1040,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:539
#, 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:541
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:542
#, 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:543
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 +1072,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:545
#, 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."

File diff suppressed because it is too large Load Diff

1635
howto/enum.po Normal file

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-01-28 15:41+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
"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\n"
#: howto/instrumentation.rst:7
msgid "Instrumenting CPython with DTrace and SystemTap"
@ -100,10 +100,12 @@ msgid "or::"
msgstr "ou ::"
#: howto/instrumentation.rst:49
msgid "CPython must then be configured ``--with-dtrace``:"
msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::"
msgid ""
"CPython must then be :option:`configured with the --with-dtrace option <--"
"with-dtrace>`:"
msgstr "CPython doit être configuré avec l'option :option:`--with-dtrace` ::"
#: howto/instrumentation.rst:55
#: howto/instrumentation.rst:56
msgid ""
"On macOS, you can list available DTrace probes by running a Python process "
"in the background and listing all probes made available by the Python "
@ -113,7 +115,7 @@ msgstr ""
"un processus Python en arrière-plan et en listant toutes les sondes mises à "
"disposition par le fournisseur Python ::"
#: howto/instrumentation.rst:72
#: howto/instrumentation.rst:73
msgid ""
"On Linux, you can verify if the SystemTap static markers are present in the "
"built binary by seeing if it contains a \".note.stapsdt\" section."
@ -122,25 +124,27 @@ msgstr ""
"présents dans le binaire compilé, il suffit de regarder s'il contient une "
"section ``.note.stapsdt``."
#: howto/instrumentation.rst:80
#: howto/instrumentation.rst:81
msgid ""
"If you've built Python as a shared library (with --enable-shared), you need "
"to look instead within the shared library. For example::"
"If you've built Python as a shared library (with the :option:`--enable-"
"shared` configure option), you need to look instead within the shared "
"library. For example::"
msgstr ""
"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--"
"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. "
"Par exemple ::"
"Si vous avez compilé Python en tant que bibliothèque partagée (avec "
"l'option :option:`--enable-shared` du script ``configure``), vous devez "
"plutôt regarder dans la bibliothèque partagée. Par exemple ::"
#: howto/instrumentation.rst:86
#: howto/instrumentation.rst:88
msgid "Sufficiently modern readelf can print the metadata::"
msgstr ""
"Une version suffisamment moderne de *readelf* peut afficher les "
"métadonnées ::"
#: howto/instrumentation.rst:123
#: 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* "
@ -148,11 +152,11 @@ msgstr ""
"stratégiquement placées pour activer les crochets de traçage utilisés par un "
"script *SystemTap*."
#: howto/instrumentation.rst:129
#: howto/instrumentation.rst:131
msgid "Static DTrace probes"
msgstr "Sondes DTrace statiques"
#: howto/instrumentation.rst:131
#: howto/instrumentation.rst:133
msgid ""
"The following example DTrace script can be used to show the call/return "
"hierarchy of a Python script, only tracing within the invocation of a "
@ -164,19 +168,19 @@ msgstr ""
"En d'autres termes, les appels de fonctions lors de la phase d'import ne "
"seront pas répertoriées ::"
#: howto/instrumentation.rst:228
#: howto/instrumentation.rst:230
msgid "It can be invoked like this::"
msgstr "Il peut être utilisé de cette manière ::"
#: howto/instrumentation.rst:234
#: howto/instrumentation.rst:236
msgid "The output looks like this:"
msgstr "La sortie ressemble à ceci ::"
#: howto/instrumentation.rst:199
#: howto/instrumentation.rst:201
msgid "Static SystemTap markers"
msgstr "Marqueurs statiques *SystemTap*"
#: howto/instrumentation.rst:201
#: howto/instrumentation.rst:203
msgid ""
"The low-level way to use the SystemTap integration is to use the static "
"markers directly. This requires you to explicitly state the binary file "
@ -186,7 +190,7 @@ msgstr ""
"directement les marqueurs statiques. Pour cela vous devez pointer "
"explicitement le fichier binaire qui les contient."
#: howto/instrumentation.rst:205
#: howto/instrumentation.rst:207
msgid ""
"For example, this SystemTap script can be used to show the call/return "
"hierarchy of a Python script:"
@ -194,52 +198,54 @@ msgstr ""
"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la "
"hiérarchie d'appel/retour d'un script Python ::"
#: howto/instrumentation.rst:245
#: howto/instrumentation.rst:247
msgid "where the columns are:"
msgstr "où les colonnes sont ::"
#: howto/instrumentation.rst:247
#: howto/instrumentation.rst:249
msgid "time in microseconds since start of script"
msgstr "temps en microsecondes depuis le début du script"
#: howto/instrumentation.rst:249
#: howto/instrumentation.rst:251
msgid "name of executable"
msgstr "nom de l'exécutable"
#: howto/instrumentation.rst:251
#: howto/instrumentation.rst:253
msgid "PID of process"
msgstr "PID du processus"
#: howto/instrumentation.rst:253
#: howto/instrumentation.rst:255
msgid ""
"and the remainder indicates the call/return hierarchy as the script executes."
msgstr ""
"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute."
#: howto/instrumentation.rst:255
#: howto/instrumentation.rst:257
msgid ""
"For a `--enable-shared` build of CPython, the markers are contained within "
"the libpython shared library, and the probe's dotted path needs to reflect "
"this. For example, this line from the above example:"
"For a :option:`--enable-shared` build of CPython, the markers are contained "
"within the libpython shared library, and the probe's dotted path needs to "
"reflect this. For example, this line from the above example:"
msgstr ""
"Pour une compilation `--enable-shared` de CPython, les marqueurs sont "
"contenus dans la bibliothèque partagée *libpython*, et le chemin du module "
"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :"
"Pour une compilation :option:`--enable-shared` de CPython, les marqueurs "
"sont contenus dans la bibliothèque partagée *libpython*, et le chemin du "
"module de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-"
"dessus :"
#: howto/instrumentation.rst:263
#: howto/instrumentation.rst:265
msgid "should instead read:"
msgstr "doit plutôt se lire comme ::"
#: howto/instrumentation.rst:269
msgid "(assuming a debug build of CPython 3.6)"
#: howto/instrumentation.rst:271
msgid "(assuming a :ref:`debug build <debug-build>` of CPython 3.6)"
msgstr ""
"(en supposant une version compilée avec le débogage activé de CPython 3.6)"
"(en supposant une version de CPython 3.6 compilée avec le :ref:`débogage "
"<debug-build>` activé)"
#: howto/instrumentation.rst:273
#: howto/instrumentation.rst:275
msgid "Available static markers"
msgstr "Marqueurs statiques disponibles"
#: howto/instrumentation.rst:277
#: howto/instrumentation.rst:279
msgid ""
"This marker indicates that execution of a Python function has begun. It is "
"only triggered for pure-Python (bytecode) functions."
@ -247,17 +253,17 @@ msgstr ""
"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il "
"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)."
#: howto/instrumentation.rst:280
#: 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 "
"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :"
#: howto/instrumentation.rst:284
#: howto/instrumentation.rst:286
msgid ""
"``$arg1`` : ``(const char *)`` filename, accessible using "
"``user_string($arg1)``"
@ -265,7 +271,7 @@ msgstr ""
"``$arg1`` : ``(const char *)`` nom de fichier, accessible via "
"``user_string($arg1)``"
#: howto/instrumentation.rst:286
#: howto/instrumentation.rst:288
msgid ""
"``$arg2`` : ``(const char *)`` function name, accessible using "
"``user_string($arg2)``"
@ -273,11 +279,11 @@ msgstr ""
"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via "
"``user_string($arg2)``"
#: howto/instrumentation.rst:289
#: howto/instrumentation.rst:291
msgid "``$arg3`` : ``int`` line number"
msgstr "``$arg3`` : numéro de ligne ``int``"
#: howto/instrumentation.rst:293
#: howto/instrumentation.rst:295
msgid ""
"This marker is the converse of :c:func:`function__entry`, and indicates that "
"execution of a Python function has ended (either via ``return``, or via an "
@ -288,11 +294,11 @@ msgstr ""
"via une exception). Il n'est déclenché que pour les fonctions en Python pur "
"(code intermédiaire)."
#: howto/instrumentation.rst:297
#: howto/instrumentation.rst:299
msgid "The arguments are the same as for :c:func:`function__entry`"
msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`"
#: howto/instrumentation.rst:301
#: howto/instrumentation.rst:303
msgid ""
"This marker indicates a Python line is about to be executed. It is the "
"equivalent of line-by-line tracing with a Python profiler. It is not "
@ -302,11 +308,11 @@ msgstr ""
"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il "
"n'est pas déclenché dans les fonctions C."
#: howto/instrumentation.rst:305
#: howto/instrumentation.rst:307
msgid "The arguments are the same as for :c:func:`function__entry`."
msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`."
#: howto/instrumentation.rst:309
#: howto/instrumentation.rst:311
msgid ""
"Fires when the Python interpreter starts a garbage collection cycle. "
"``arg0`` is the generation to scan, like :func:`gc.collect()`."
@ -315,7 +321,7 @@ msgstr ""
"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc."
"collect()`."
#: howto/instrumentation.rst:314
#: howto/instrumentation.rst:316
msgid ""
"Fires when the Python interpreter finishes a garbage collection cycle. "
"``arg0`` is the number of collected objects."
@ -323,7 +329,7 @@ msgstr ""
"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte "
"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés."
#: howto/instrumentation.rst:319
#: howto/instrumentation.rst:321
msgid ""
"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` "
"is the module name."
@ -331,7 +337,7 @@ msgstr ""
"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger "
"le module. ``arg0`` est le nom du module."
#: howto/instrumentation.rst:326
#: howto/instrumentation.rst:328
msgid ""
"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is "
"the module name, ``arg1`` indicates if module was successfully loaded."
@ -340,7 +346,7 @@ msgstr ""
"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si "
"le module a été chargé avec succès."
#: howto/instrumentation.rst:335
#: howto/instrumentation.rst:337
msgid ""
"Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is "
"the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a "
@ -351,27 +357,27 @@ msgstr ""
"chaîne de caractère C. ``arg1`` est un pointeur sur un *n*-uplet d'objet de "
"type :c:type:`PyObject`."
#: howto/instrumentation.rst:343
#: howto/instrumentation.rst:345
msgid "SystemTap Tapsets"
msgstr "*Tapsets* de *SystemTap*"
#: howto/instrumentation.rst:345
#: 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 "
"permet de masquer les détails de niveau inférieur des marqueurs statiques."
#: howto/instrumentation.rst:349
#: howto/instrumentation.rst:351
msgid "Here is a tapset file, based on a non-shared build of CPython:"
msgstr ""
"Voici un fichier *tapset*, basé sur une version non partagée compilée de "
"CPython ::"
#: howto/instrumentation.rst:372
#: howto/instrumentation.rst:374
msgid ""
"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/"
"systemtap/tapset``), then these additional probepoints become available:"
@ -380,7 +386,7 @@ msgstr ""
"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires "
"deviennent disponibles ::"
#: howto/instrumentation.rst:378
#: howto/instrumentation.rst:380
msgid ""
"This probe point indicates that execution of a Python function has begun. It "
"is only triggered for pure-Python (bytecode) functions."
@ -388,7 +394,7 @@ msgstr ""
"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle "
"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)."
#: howto/instrumentation.rst:383
#: howto/instrumentation.rst:385
msgid ""
"This probe point is the converse of ``python.function.return``, and "
"indicates that execution of a Python function has ended (either via "
@ -400,11 +406,11 @@ msgstr ""
"via une exception). Elle est uniquement déclenchée pour les fonctions en "
"Python pur (code intermédiaire ou *bytecode*)."
#: howto/instrumentation.rst:390
#: howto/instrumentation.rst:392
msgid "Examples"
msgstr "Exemples"
#: howto/instrumentation.rst:391
#: howto/instrumentation.rst:393
msgid ""
"This SystemTap script uses the tapset above to more cleanly implement the "
"example given above of tracing the Python function-call hierarchy, without "
@ -415,10 +421,11 @@ msgstr ""
"fonctions Python, sans avoir besoin de nommer directement les marqueurs "
"statiques ::"
#: howto/instrumentation.rst:410
#: 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 "

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