forked from AFPy/python-docs-fr
Compare commits
203 Commits
Author | SHA1 | Date |
---|---|---|
Christophe Nanteuil | 26ccd93ef1 | |
Julien Palard | c45606574a | |
Julien Palard | be3fe26412 | |
Christophe Nanteuil | 343aa3118d | |
eviau | 9e57ea00c8 | |
eviau | f9d4f69f20 | |
Julien Palard | 5df229eee6 | |
Christophe Nanteuil | 6ac12519a1 | |
eviau | f6a45a8cb7 | |
Christophe Nanteuil | 75f7e91fcb | |
Christophe Nanteuil | 1e0489fcee | |
Julien Palard | 35ea246d59 | |
Julien Palard | 26c991fc20 | |
Christophe Nanteuil | 423ff1c51d | |
Christophe Nanteuil | 061932d5b3 | |
Christophe Nanteuil | 8d0da0421c | |
Christophe Nanteuil | c8b12122c8 | |
Christophe Nanteuil | 14b4b656b3 | |
Christophe Nanteuil | d517d9467f | |
Christophe Nanteuil | 16f5a57396 | |
Christophe Nanteuil | 218619208a | |
Christophe Nanteuil | 26941a0cb1 | |
Christophe Nanteuil | 258387733a | |
alexisig | 586728da11 | |
Julien Palard | 6f8ad70e25 | |
Julien Palard | 5d3f94ec82 | |
jeanas | b4dfab63c7 | |
Christophe Nanteuil | bb4000d922 | |
Julien Palard | 63e1402326 | |
Jules Lasne | 3c444ac29b | |
logik | a05a34e89a | |
Jeff D | edc109555c | |
Christophe Nanteuil | 5f7bd797dc | |
freallearn | d6b4473472 | |
Victor | d9c2596f48 | |
Ezlo | 1ee97ce209 | |
Marco7507 | cb4cb9892d | |
J.Nexus | cddbc3c368 | |
Rylan | a0f16dc601 | |
Tom | af017bfb00 | |
edith | 4c370b6844 | |
Julien Palard | 5086d574d5 | |
Julien Palard | 61327bb767 | |
Julien Palard | 50416a027c | |
Christophe Nanteuil | cc7066f94d | |
edith | da21f1dbe0 | |
Vincent Poulailleau | 648077d02d | |
DERICK TEMFACK | db9ba5e00b | |
Julien Palard | 79d5e318f3 | |
Julien Palard | a4d6eb4aea | |
Julien Palard | 43c0e9d57c | |
Philippe Galvan | baf812e8eb | |
Nicolas Haller | a21bd96145 | |
Jean Abou-Samra | 69651bfabf | |
Julien Palard | cfb96157b8 | |
Jean Abou-Samra | bf0ee96f7b | |
Nicolas Haller | 201bd365c2 | |
Jean-Christophe Helary | 75dc1cbfc6 | |
Nils Van Zuijlen | ab293c0c5a | |
Christophe Nanteuil | a268535b8b | |
Jules Lasne | 51ba3affba | |
Mathieu Dupuy | 76302b2f4b | |
Antoine | 3de521f4ae | |
Jean Abou-Samra | aa14b264b2 | |
Jean Abou-Samra | 5e146fa117 | |
Mathieu Dupuy | ef2ccc4fcd | |
Mathieu Dupuy | ee440330a2 | |
Melcore | 54e03cb1a4 | |
Mathieu Dupuy | 00f5b923dd | |
PhilippeGalvan | a3eb19c3ca | |
Julien Palard | e4166c45dc | |
Julien Palard | a5875af279 | |
Jean Abou Samra | c4b77fbe1e | |
Mathieu Dupuy | 23951780c2 | |
Mathieu Dupuy | 5595763302 | |
Nicolas Haller | a5c7f01b2c | |
Mathieu Dupuy | 01ebc4723a | |
Loc Cosnier | 19a2eb8927 | |
Mathieu Dupuy | d96fcc2b98 | |
Loc Cosnier | 3b6ee8fedd | |
Vincent Poulailleau | 41073d4143 | |
Mathieu Dupuy | a716bffb16 | |
Mathieu Dupuy | bed19e4e18 | |
Mathieu Dupuy | dd8f1bbc42 | |
Thierry Pellé | 025f8ba360 | |
Christophe Nanteuil | d82ad414b3 | |
Nicolas Haller | b4b4af37ff | |
edith | 06b9fb928c | |
Christophe Nanteuil | 60a57ca1ef | |
Mathieu Dupuy | 096da53573 | |
Thierry Pellé | 165f63cd8c | |
freallearn | 466a2ba4d8 | |
Mathieu Dupuy | 7b6e288f54 | |
Christophe Nanteuil | d6d620f124 | |
Jean-Michel Laprise | f8e21a900e | |
Yannick Gingras | b1efa2165a | |
Emmanuel Leblond | aff3fed5ba | |
Jean-Michel Laprise | d6cec5f9fb | |
Thierry Pellé | d47c245a5f | |
Julien Palard | ba66481997 | |
Jean Abou Samra | e4c6328b99 | |
Yannick Gingras | bce308dc9b | |
Christophe Nanteuil | ccc28cfdec | |
Yannick Gingras | aa7c25fa84 | |
Yannick Gingras | 2b462d76ca | |
Julien Palard | 5609d64509 | |
Julien Palard | 5e2a64db9c | |
Julien Palard | 09c0e53be3 | |
Julien Palard | fecaae68a8 | |
Jean Abou-Samra | 3db1d961d6 | |
Jules Lasne | 3090428412 | |
Jules Lasne | 3760a022c7 | |
Mathieu Dupuy | dd4eb13f58 | |
Matthieu Marrast | 3c93dc8c39 | |
Ezlo | db25581063 | |
Christophe Nanteuil | d3dc3685b4 | |
Fipaddict | 3287e870ff | |
Julien Palard | 04bb5b82fd | |
Julien Palard | 2479b6ba06 | |
HS-157 | 2ea7cf8b10 | |
Yannick Gingras | 29678c81ce | |
Antoine | 852064213f | |
zed | 1ca11cf0f0 | |
Fipaddict | ef607be180 | |
Julien Palard | 3ecf3058c6 | |
Antoine | 78b1ab4c42 | |
Sébastien Helleu | 6f13a7a5d3 | |
Antoine | 05446b1df2 | |
Antoine | 5f1dd86c9a | |
Christophe Nanteuil | 9882154d71 | |
Julien Palard | 76b5c8ea62 | |
Yannick Gingras | 99ffbb6746 | |
Fipaddict | 0006363477 | |
zed | 88e4e6443c | |
PhilippeGalvan | 6676a40140 | |
Yannick Gingras | 09105403eb | |
Antoine | 53f4e7bfad | |
Jean-Abou-Samra | d8e39bf9cd | |
Antoine | 28b0c58e60 | |
Jean-Abou-Samra | 638f8e64a2 | |
Jean-Abou-Samra | e397ed58ff | |
Jean-Abou-Samra | 7f50edf589 | |
Julien Palard | 4955f79c65 | |
Julien Palard | ff88ce44c3 | |
Fipaddict | 51120f11d3 | |
Christophe Nanteuil | e5e5006aec | |
Antoine | 9aeda18cd3 | |
Nicolas PAYART | eac1fed73f | |
lythari | 8acf233c16 | |
Jean-Abou-Samra | 5084a5c86a | |
lythari | fe68872fc6 | |
Benoit de Chezelles | 5e3fd6d73a | |
Christophe Nanteuil | 893edefecc | |
lythari | 911912715b | |
Christophe Nanteuil | 63209615b6 | |
Jean-Abou-Samra | d5c80d44f9 | |
Jean-Abou-Samra | 8fdedae000 | |
Jean-Abou-Samra | 7ee9f0c378 | |
Jean-Abou-Samra | e024e948d3 | |
Jean-Abou-Samra | cb43975d96 | |
Jean-Abou-Samra | 78a89988a1 | |
Zepmanbc | cce81d7f7b | |
Jean-Abou-Samra | b48ce306a5 | |
Julien Palard | 2afee90322 | |
Jean-Abou-Samra | f2d50c8810 | |
Jean-Abou-Samra | a5aa864de7 | |
Jean-Abou-Samra | 5f63c38fc1 | |
Jean-Abou-Samra | c7e1088a95 | |
Jean-Abou-Samra | 9b64cb5f8f | |
Jean-Abou-Samra | 30507a7466 | |
Jean-Abou-Samra | bc8acb3cc6 | |
zed | 7bc5f3bb3f | |
Julien Palard | ec12a7bae6 | |
Julien Palard | 3392ebaa93 | |
Julien Palard | 5fa489367e | |
Julien Palard | 70de7f1586 | |
Julien Palard | 9da5a8db7b | |
Julien Palard | 7b46ea0906 | |
Julien Palard | 83caaf6a2c | |
Julien Palard | e3abf1a9d6 | |
Julien Palard | 1067c77e2e | |
Yannick Gingras | d6d81ddce2 | |
Julien Palard | 17d5f9cebe | |
Jean-Abou-Samra | 0086ed1f76 | |
Julien Palard | de347cca22 | |
Jean-Abou-Samra | 3266bae14e | |
Jean-Abou-Samra | 073a3a277e | |
Jean-Abou-Samra | 6254b89f8c | |
Christophe Nanteuil | 5a1fdec404 | |
Jean-Abou-Samra | c2f8b3ad64 | |
Jean-Abou-Samra | e9937880c7 | |
Jean-Abou-Samra | 5439375dd6 | |
Julien Palard | 248e695415 | |
Jean-Abou-Samra | c263bb411a | |
Jean-Abou-Samra | 85c99a0703 | |
Jean-Abou-Samra | 28f90d0bbd | |
Julien Palard | f8399b0cdd | |
Antoine | e0943ec2df | |
Antoine | 58210fa611 | |
Christophe Nanteuil | 16fd567886 | |
Louis-Justin TALLOT | e49a4fcec1 | |
Louis-Justin TALLOT | 092523e21b | |
Julien Palard | 36c751e00e |
|
@ -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 +0,0 @@
|
|||
liberapay: python-docs-fr
|
|
@ -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.
|
||||
-->
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"problemMatcher": [
|
||||
{
|
||||
"owner": "pospell",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^(.*):(\\d+):(.*)$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"message": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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!
|
|
@ -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
2331
.tx/config
File diff suppressed because it is too large
Load Diff
|
@ -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.
|
||||
|
||||
|
|
485
CONTRIBUTING.rst
485
CONTRIBUTING.rst
|
@ -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
172
Makefile
|
@ -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
|
||||
|
|
25
README.rst
25
README.rst
|
@ -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.
|
||||
|
|
|
@ -20,3 +20,4 @@ Loc Cosnier
|
|||
Yannick Gingras
|
||||
Martin Chlumsky
|
||||
Stephan Michaud
|
||||
Edith Viau
|
||||
|
|
21
about.po
21
about.po
|
@ -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
192
bugs.po
|
@ -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."
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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``"
|
||||
|
|
721
c-api/arg.po
721
c-api/arg.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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`."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
153
c-api/call.po
153
c-api/call.po
|
@ -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."
|
||||
|
|
|
@ -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``."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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()`."
|
||||
|
|
212
c-api/decimal.po
212
c-api/decimal.po
|
@ -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 ""
|
|
@ -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 "
|
||||
|
|
|
@ -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
|
@ -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 ""
|
||||
|
||||
|
|
129
c-api/float.po
129
c-api/float.po
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
|
@ -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``."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
690
c-api/init.po
690
c-api/init.po
File diff suppressed because it is too large
Load Diff
1973
c-api/init_config.po
1973
c-api/init_config.po
File diff suppressed because it is too large
Load Diff
348
c-api/intro.po
348
c-api/intro.po
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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
|
||||
|
|
138
c-api/long.po
138
c-api/long.po
|
@ -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 ""
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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 "
|
||||
|
|
579
c-api/memory.po
579
c-api/memory.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
||||
|
|
180
c-api/module.po
180
c-api/module.po
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
141
c-api/object.po
141
c-api/object.po
|
@ -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."
|
||||
|
|
|
@ -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:"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
58
c-api/set.po
58
c-api/set.po
|
@ -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 ""
|
||||
|
|
334
c-api/stable.po
334
c-api/stable.po
|
@ -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\"*)."
|
||||
|
|
|
@ -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`"
|
||||
|
|
213
c-api/sys.po
213
c-api/sys.po
|
@ -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 "
|
||||
|
|
|
@ -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 ""
|
||||
|
|
173
c-api/type.po
173
c-api/type.po
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
1955
c-api/typeobj.po
1955
c-api/typeobj.po
File diff suppressed because it is too large
Load Diff
945
c-api/unicode.po
945
c-api/unicode.po
File diff suppressed because it is too large
Load Diff
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
13
copyright.po
13
copyright.po
|
@ -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
18
dict
|
@ -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
|
||||
ı
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
|||
"l’icô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)."
|
||||
|
|
|
@ -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."
|
||||
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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 "
|
||||
"l’occurrence, 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 "
|
||||
#~ "l’occurrence, 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."
|
||||
|
|
|
@ -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 "
|
||||
"l’emplacement 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."
|
||||
|
||||
|
|
|
@ -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)"
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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 "
|
||||
|
|
622
faq/design.po
622
faq/design.po
File diff suppressed because it is too large
Load Diff
135
faq/extending.po
135
faq/extending.po
|
@ -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 d’exé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 d’exé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 ::"
|
||||
|
|
277
faq/general.po
277
faq/general.po
|
@ -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>`_."
|
||||
|
|
406
faq/gui.po
406
faq/gui.po
|
@ -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 qu’il 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, d’une communauté d’utilisateurs 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 qu’il 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, d’une communauté d’utilisateurs 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*."
|
||||
|
|
|
@ -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?"
|
||||
|
|
292
faq/library.po
292
faq/library.po
|
@ -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"
|
||||
|
|
1679
faq/programming.po
1679
faq/programming.po
File diff suppressed because it is too large
Load Diff
131
faq/windows.po
131
faq/windows.po
|
@ -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 d’indentation 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 "
|
||||
|
|
1182
glossary.po
1182
glossary.po
File diff suppressed because it is too large
Load Diff
|
@ -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."
|
|
@ -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 "
|
||||
"d’occurrences d'une argument optionnel en particulier :"
|
||||
"d’occurrences 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 "
|
||||
|
|
937
howto/clinic.po
937
howto/clinic.po
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,4 @@
|
|||
# Copyright (C) 2001-2018, Python Software Foundation
|
||||
# For licence information, see README file.
|
||||
#
|
||||
msgid ""
|
||||
|
|
236
howto/curses.po
236
howto/curses.po
|
@ -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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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
Loading…
Reference in New Issue