forked from AFPy/python-docs-fr
Merge remote-tracking branch 'python/2.6' into exceptions
This commit is contained in:
commit
80389e66a3
932
.tx/config
932
.tx/config
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,93 @@
|
|||
# Makefile for French Python Documentation
|
||||
#
|
||||
# Here is what you can do:
|
||||
#
|
||||
# - make # Automatically build an html local version
|
||||
# - make todo # To list remaining tasks
|
||||
# - make merge # To merge pot from upstream
|
||||
# - make fuzzy # To find fuzzy strings
|
||||
# - make progress # To compute current progression
|
||||
# - make upgrade_venv # To upgrade the venv that compiles the doc
|
||||
#
|
||||
# Modes are: autobuild-stable, autobuild-dev, and autobuild-html,
|
||||
# documented in gen/src/3.6/Doc/Makefile as we're only delegating the
|
||||
# real work to the Python Doc Makefile.
|
||||
|
||||
CPYTHON_CLONE := ../cpython/
|
||||
SPHINX_CONF := $(CPYTHON_CLONE)/Doc/conf.py
|
||||
LANGUAGE := fr
|
||||
VENV := ~/.venvs/python-docs-i18n/
|
||||
PYTHON := $(shell which python3)
|
||||
MODE := autobuild-dev-html
|
||||
BRANCH = $(shell git describe --contains --all HEAD)
|
||||
JOBS = 1
|
||||
|
||||
|
||||
.PHONY: all
|
||||
all: $(VENV)/bin/sphinx-build $(VENV)/bin/blurb $(SPHINX_CONF)
|
||||
mkdir -p $(CPYTHON_CLONE)/Doc/locales/$(LANGUAGE)/
|
||||
ln -nfs $(shell readlink -f .) $(CPYTHON_CLONE)/Doc/locales/$(LANGUAGE)/LC_MESSAGES
|
||||
. $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-j$(JOBS) -D locale_dirs=locales -D language=$(LANGUAGE) -D gettext_compact=0' $(MODE)
|
||||
|
||||
|
||||
$(SPHINX_CONF):
|
||||
git clone --depth 1 --no-single-branch https://github.com/python/cpython.git $(CPYTHON_CLONE)
|
||||
|
||||
|
||||
$(VENV)/bin/activate:
|
||||
mkdir -p $(VENV)
|
||||
$(PYTHON) -m venv $(VENV)
|
||||
|
||||
|
||||
$(VENV)/bin/sphinx-build: $(VENV)/bin/activate
|
||||
. $(VENV)/bin/activate; python3 -m pip install sphinx
|
||||
|
||||
|
||||
$(VENV)/bin/blurb: $(VENV)/bin/activate
|
||||
. $(VENV)/bin/activate; python3 -m pip install blurb
|
||||
|
||||
|
||||
.PHONY: upgrade_venv
|
||||
upgrade_venv: $(VENV)/bin/activate
|
||||
. $(VENV)/bin/activate; python3 -m pip install --upgrade sphinx blurb
|
||||
|
||||
|
||||
.PHONY: progress
|
||||
progress:
|
||||
@python3 -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: todo
|
||||
todo:
|
||||
for file in *.po */*.po; do echo $$(msgattrib --untranslated $$file | grep ^msgid | sed 1d | wc -l ) $$file; done | grep -v ^0 | sort -gr
|
||||
|
||||
|
||||
.PHONY: merge
|
||||
merge: $(VENV)/bin/sphinx-build
|
||||
ifneq "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" "$(BRANCH)"
|
||||
$(error "You're merging from a different branch")
|
||||
endif
|
||||
(cd $(CPYTHON_CLONE)/Doc; rm -f build/NEWS)
|
||||
(cd $(CPYTHON_CLONE); $(VENV)/bin/sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/)
|
||||
find $(CPYTHON_CLONE)/pot/ -name '*.pot' |\
|
||||
while read -r POT;\
|
||||
do\
|
||||
PO="./$$(echo "$$POT" | sed "s#$(CPYTHON_CLONE)/pot/##; s#\.pot\$$#.po#")";\
|
||||
mkdir -p "$$(dirname "$$PO")";\
|
||||
if [ -f "$$PO" ];\
|
||||
then\
|
||||
case "$$POT" in\
|
||||
*whatsnew*) msgmerge --backup=off --force-po --no-fuzzy-matching -U "$$PO" "$$POT" ;;\
|
||||
*) msgmerge --backup=off --force-po -U "$$PO" "$$POT" ;;\
|
||||
esac\
|
||||
else\
|
||||
msgcat -o "$$PO" "$$POT";\
|
||||
fi\
|
||||
done
|
||||
|
||||
|
||||
.PHONY: fuzzy
|
||||
fuzzy:
|
||||
for file in *.po */*.po; do echo $$(msgattrib --only-fuzzy --no-obsolete "$$file" | grep -c ^msgid) $$file; done | grep -v ^0 | sort -gr
|
286
README.rst
286
README.rst
|
@ -1,5 +1,12 @@
|
|||
This is the French Translation of the Python Documentation
|
||||
==========================================================
|
||||
French Translation of the Python Documentation
|
||||
==============================================
|
||||
|
||||
**Translated: 28.0%**
|
||||
|
||||
See the `README.rst file on master
|
||||
<https://github.com/python/python-docs-fr/blob/master/README.rst>`_
|
||||
for more informations.
|
||||
|
||||
|
||||
Documentation Contribution Agreement
|
||||
------------------------------------
|
||||
|
@ -22,278 +29,3 @@ Python community is welcomed and appreciated.
|
|||
|
||||
You signify acceptance of this agreement by submitting your work to
|
||||
the PSF for inclusion in the documentation.
|
||||
|
||||
|
||||
Contributing to the Translation
|
||||
-------------------------------
|
||||
|
||||
To clone, as we're working on the ``3.6`` branch, you can use ``git
|
||||
clone --branch 3.6``.
|
||||
|
||||
|
||||
How to Contribute
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can either contribute on `transifex/python-doc/public
|
||||
<https://www.transifex.com/python-doc/public/>`_, or by simply openning an
|
||||
issue on this repository, or by editing the ``po`` files.
|
||||
|
||||
To modify those files you first have to fork this project and follow
|
||||
github instructions to clone it.
|
||||
|
||||
Next, to edit the files, you can use an editor of your choice, there's many:
|
||||
|
||||
- Highly recommended: `poedit <http://www.poedit.net/>`_
|
||||
- gted
|
||||
- gtranslator
|
||||
- lokalize
|
||||
- betterpoeditor
|
||||
- vim or emacs with an appropriate mode
|
||||
- Vé on Android
|
||||
- Probably many others
|
||||
|
||||
Finally, once your contribution is done, do a ``pull request`` so we
|
||||
can review and merge it.
|
||||
|
||||
|
||||
What to translate
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can start with easy tasks like reviewing fuzzy entries to help
|
||||
keeping the documentation up to date. You can also proofread already
|
||||
translated entries, and finally translate untranslated ones.
|
||||
|
||||
- Do not translate content of ``:ref:...`` and ``:term:...``
|
||||
- Put english words, if you have to use them, in *italics* (surrounded
|
||||
by stars).
|
||||
- ``::`` at the end of some paragraphs have to be translated to `` :
|
||||
::`` in French to place the space before the column.
|
||||
|
||||
You can find files with a few translations missing::
|
||||
|
||||
for file in library/*; do echo $(msgattrib --untranslated $file | grep ^msgid | sed 1d | wc -l ) $file; done | grep -v ^0 | sort -gr | tail
|
||||
|
||||
Or replace the ``tail`` by a ``head`` to get files with a lot of work.
|
||||
|
||||
|
||||
Where to get help
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
The coordinator for this translation is `mdk <https://mdk.fr/>`_.
|
||||
|
||||
Feel free to ask your questions on ``#python-fr`` on `freenode
|
||||
<https://webchat.freenode.net/>`_.
|
||||
|
||||
|
||||
Translation Progression
|
||||
-----------------------
|
||||
|
||||
============ ===== ===== =====
|
||||
.. 2.7 3.5 3.6
|
||||
============ ===== ===== =====
|
||||
about.po 100% 100% 100%
|
||||
bugs.po 100% 100% 100%
|
||||
c-api 9% 12% 11%
|
||||
contents.po 100% 100% 100%
|
||||
copyright.po 100% 100% 100%
|
||||
distributing 100% 100% 100%
|
||||
distutils 32% 33% 33%
|
||||
extending 21% 24% 24%
|
||||
faq 29% 33% 32%
|
||||
glossary.po 85% 100% 100%
|
||||
howto 7% 6% 6%
|
||||
install 45% 46% 43%
|
||||
installing 100% 100% 66%
|
||||
library 16% 20% 19%
|
||||
license.po 100% 100% 100%
|
||||
reference 5% 5% 5%
|
||||
sphinx.po 100% 100% 100%
|
||||
tutorial 100% 100% 100%
|
||||
using 31% 21% 19%
|
||||
whatsnew 6% 41% 7%
|
||||
~total~ 19% 25% 19%
|
||||
============ ===== ===== =====
|
||||
|
||||
|
||||
Priorities
|
||||
----------
|
||||
|
||||
The ``tutorial/`` directory has a high priority as translations aim
|
||||
for newcomers, then here are files most read in the original version:
|
||||
|
||||
- library/functions.po
|
||||
- library/stdtypes.po
|
||||
- library/string.po
|
||||
- library/re.po
|
||||
- library/datetime.po
|
||||
- library/csv.po
|
||||
- library/os.po
|
||||
- library/random.po
|
||||
- library/json.po
|
||||
- library/subprocess.po
|
||||
|
||||
|
||||
Translation Resources
|
||||
---------------------
|
||||
|
||||
- `Le Grand Dictionnaire Terminologique <http://gdt.oqlf.gouv.qc.ca/>`_
|
||||
- IRC channel `#python-fr <irc.lc/freenode/python-fr>`_ on freenode.
|
||||
- The `liste traductions <http://lists.afpy.org/mailman/listinfo/traductions>`_.
|
||||
- The `doc-sig mailing list
|
||||
<https://mail.python.org/mailman/listinfo/doc-sig>`_.
|
||||
- `Glossaire traduc.org <http://glossaire.traduc.org>`_
|
||||
- `Glossaires et Dictionnaires of traduc.org
|
||||
<https://traduc.org/Glossaires_et_dictionnaires>`_
|
||||
- `glossary.po <https://docs.python.org/fr/3/glossary.html>`_, as it's
|
||||
already translated.
|
||||
- `deepl.com/translator <https://www.deepl.com>`_
|
||||
|
||||
|
||||
Glossary
|
||||
--------
|
||||
|
||||
For consistency in our translations, here are some propositions and
|
||||
reminders for frequent terms you'll have to translate, don't hesitate
|
||||
to open an issue if you disagree.
|
||||
|
||||
========================== ===========================================
|
||||
Term Proposed Translation
|
||||
========================== ===========================================
|
||||
-like -compatible
|
||||
abstract data type type abstrait
|
||||
argument argument (Don't mix with parameter)
|
||||
backslash antislash, *backslash*
|
||||
bound lier
|
||||
bug bogue, *bug*
|
||||
built-in primitive, native
|
||||
debugging débogage
|
||||
double quote guillemet
|
||||
e.g. e.g. (pour *exempli gratia*)
|
||||
identifier identifiant
|
||||
immutable immuable
|
||||
interpreter interpréteur
|
||||
library bibliothèque
|
||||
list compréhension liste en compréhension
|
||||
little-endian, big-endian `petit-boutiste, gros-boutiste
|
||||
<https://fr.wikipedia.org/wiki/Endianness>`_
|
||||
mutable variable
|
||||
parameter paramètre
|
||||
prompt invite
|
||||
regular expression expression rationnelle, expression régulière
|
||||
return Renvoie, ou parfois donne. On évite
|
||||
"retourne" qui pourrait porter à confusion.
|
||||
simple quote guillemet simple, apostrophe (apostrophe
|
||||
is to glue, guillemet is to surround)
|
||||
socket *socket*
|
||||
statement instruction
|
||||
underscore tiret bas, *underscore*
|
||||
========================== ===========================================
|
||||
|
||||
|
||||
Project History
|
||||
---------------
|
||||
|
||||
This project was started `around 2012
|
||||
<https://github.com/AFPy/python_doc_fr/commit/b77bdff59036b6b5a4804d5f519ce3ea341e027c>`_
|
||||
by `afpy <https://www.afpy.org/>`_ members, in 2017 this project
|
||||
became the official french Python documentation translation thanks to
|
||||
`PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_.
|
||||
|
||||
|
||||
Simplify git diffs
|
||||
------------------
|
||||
|
||||
Git diffs are often crowded with useless line number changes, like:
|
||||
|
||||
-#: ../Doc/library/signal.rst:406
|
||||
+#: ../Doc/library/signal.rst:408
|
||||
|
||||
To tell git they are not usefull information, you can do the following
|
||||
after ensuring ``~/.local/bin/`` is in your ``PATH``.
|
||||
|
||||
cat <<EOF > ~/.local/bin/podiff
|
||||
#!/bin/sh
|
||||
grep -v '^#:' "\$1"
|
||||
EOF
|
||||
|
||||
chmod a+x ~/.local/bin/podiff
|
||||
|
||||
git config diff.podiff.textconv podiff
|
||||
|
||||
|
||||
Maintenance
|
||||
-----------
|
||||
|
||||
All those snippets are to run from the root of a ``python-docs-fr``
|
||||
clone, and some expect to find an up-to-date CPython clone near to it,
|
||||
like::
|
||||
|
||||
~/
|
||||
├── python-docs-fr/
|
||||
└── cpython/
|
||||
|
||||
To clone CPython you may use::
|
||||
|
||||
git clone --depth 1 --no-single-branch https://github.com/python/cpython.git
|
||||
|
||||
This avoids to download the whole history (not usefull to build
|
||||
documentation) but still fetches all branches.
|
||||
|
||||
|
||||
Merge pot files from CPython
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
VERSION="$(git describe --contains --all HEAD)"
|
||||
(cd ../cpython; git checkout $VERSION && git pull --ff-only && sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/)
|
||||
find ../cpython/pot/ -name '*.pot' |
|
||||
while read -r POT
|
||||
do
|
||||
PO="./$(echo "$POT" | sed "s#../cpython/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
|
||||
|
||||
|
||||
Find fuzzy strings
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
find -name '*.po' | xargs -L1 msgattrib --only-fuzzy --no-obsolete
|
||||
|
||||
|
||||
Run a test build locally
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
mkdir -p /tmp/$USER/locales/fr
|
||||
ln -nfs $(readlink -f .) /tmp/$USER/locales/fr/LC_MESSAGES
|
||||
make -C ../cpython/Doc SPHINXOPTS="-D locale_dirs=/tmp/$USER/locales/ -D language=fr -D gettext_compact=0" autobuild-dev-html
|
||||
|
||||
|
||||
Synchronize translation with Transifex
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You'll need the ``transifex-client``, ``pomerge``, and ``poindent``
|
||||
from Pypi, and you'll need to configure ``tx`` via ``tx init``, and then:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tx pull
|
||||
pomerge --from .tx/*.po .tx/**/*.po --to *.po **/*.po
|
||||
poindent --modified
|
||||
|
||||
Now you should review and commit the pull, then push:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pomerge --from *.po **/*.po --to .tx/*.po .tx/**/*.po
|
||||
tx push -t
|
||||
|
|
18
bugs.po
18
bugs.po
|
@ -7,21 +7,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 11:02+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:28+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/bugs.rst:5
|
||||
msgid "Dealing with Bugs"
|
||||
msgstr "S'attaquer aux Bugs"
|
||||
msgstr "S'attaquer aux bugs"
|
||||
|
||||
#: ../Doc/bugs.rst:7
|
||||
msgid ""
|
||||
|
@ -57,9 +55,9 @@ msgstr ""
|
|||
"proposer une amélioration, si cela concerne aussi la documentation en "
|
||||
"anglais, ouvrez un rapport sur le :ref:`tracker <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 `github <https://"
|
||||
"github.com/python/python-docs-fr/issues>`_, ou venez nous en toucher un mot "
|
||||
"sur `irc://freenode/#python-fr<https://webchat.freenode.net/>`_ Si vous avez "
|
||||
"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 freenode (https://webchat.freenode.net/). Si vous avez "
|
||||
"une suggestion de correction, merci de l'inclure également."
|
||||
|
||||
#: ../Doc/bugs.rst:22
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:28+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/abstract.rst:7
|
||||
msgid "Abstract Objects Layer"
|
||||
msgstr "Couche d'Abstraction des Objets"
|
||||
msgstr "Couche d'abstraction des objets"
|
||||
|
||||
#: ../Doc/c-api/abstract.rst:9
|
||||
msgid ""
|
||||
|
|
343
c-api/arg.po
343
c-api/arg.po
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -622,33 +622,44 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/buffer.rst:478
|
||||
msgid ""
|
||||
"Copy *len* bytes from *src* to its contiguous representation in *buf*. "
|
||||
"*order* can be ``'C'`` or ``'F'`` (for C-style or Fortran-style ordering). "
|
||||
"``0`` is returned on success, ``-1`` on error."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:482
|
||||
msgid "This function fails if *len* != *src->len*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:487
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:485
|
||||
#: ../Doc/c-api/buffer.rst:494
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:489
|
||||
#: ../Doc/c-api/buffer.rst:498
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:493
|
||||
#: ../Doc/c-api/buffer.rst:502
|
||||
msgid ""
|
||||
"On success, set :c:member:`view->obj` to a new reference to *exporter* and "
|
||||
"return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set :c:member:`view-"
|
||||
">obj` to *NULL* and return ``-1``;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/buffer.rst:497
|
||||
#: ../Doc/c-api/buffer.rst:506
|
||||
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 "
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:30+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/bytearray.rst:6
|
||||
msgid "Byte Array Objects"
|
||||
msgstr "Objets Tableau d'Octets"
|
||||
msgstr "Objets tableau d'octets"
|
||||
|
||||
#: ../Doc/c-api/bytearray.rst:13
|
||||
msgid ""
|
||||
|
@ -32,6 +32,8 @@ msgid ""
|
|||
"This instance of :c:type:`PyTypeObject` represents the Python bytearray "
|
||||
"type; it is the same object as :class:`bytearray` in the Python layer."
|
||||
msgstr ""
|
||||
"Cette instance de :c:type:`PyTypeObject` représente le type Python "
|
||||
"*bytearray*, c'est le même que :class:`bytearray` côté Python."
|
||||
|
||||
#: ../Doc/c-api/bytearray.rst:23
|
||||
msgid "Type check macros"
|
||||
|
@ -62,6 +64,8 @@ msgid ""
|
|||
"Return a new bytearray object from any object, *o*, that implements the :ref:"
|
||||
"`buffer protocol <bufferobjects>`."
|
||||
msgstr ""
|
||||
"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui "
|
||||
"implémente le :ref:`protocole buffer <bufferobjects>`."
|
||||
|
||||
#: ../Doc/c-api/bytearray.rst:50
|
||||
msgid ""
|
||||
|
@ -89,6 +93,9 @@ 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."
|
||||
msgstr ""
|
||||
"Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en "
|
||||
"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine "
|
||||
"toujours par un octet *null*."
|
||||
|
||||
#: ../Doc/c-api/bytearray.rst:73
|
||||
msgid "Resize the internal buffer of *bytearray* to *len*."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:30+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/bytes.rst:6
|
||||
msgid "Bytes Objects"
|
||||
msgstr "Objets *Bytes*"
|
||||
msgstr "Objets *bytes*"
|
||||
|
||||
#: ../Doc/c-api/bytes.rst:8
|
||||
msgid ""
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:30+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/code.rst:8
|
||||
msgid "Code Objects"
|
||||
msgstr "Objets Code"
|
||||
msgstr "Objets code"
|
||||
|
||||
#: ../Doc/c-api/code.rst:12
|
||||
msgid ""
|
||||
|
@ -27,7 +27,7 @@ msgid ""
|
|||
"represents a chunk of executable code that hasn't yet been bound into a "
|
||||
"function."
|
||||
msgstr ""
|
||||
"Les objets Code sont un détail bas-niveau de l'implémentation CPython. "
|
||||
"Les objets *Code* sont spécifiques à l'implémentation bas niveau de CPython. "
|
||||
"Chacun d'eux représente une partie de code exécutable, qui n'a pas encore "
|
||||
"été lié dans une fonction."
|
||||
|
||||
|
@ -36,20 +36,24 @@ msgid ""
|
|||
"The C structure of the objects used to describe code 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."
|
||||
|
||||
#: ../Doc/c-api/code.rst:24
|
||||
msgid ""
|
||||
"This is an instance of :c:type:`PyTypeObject` representing the Python :class:"
|
||||
"`code` type."
|
||||
msgstr ""
|
||||
"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :"
|
||||
"class:`code`."
|
||||
|
||||
#: ../Doc/c-api/code.rst:30
|
||||
msgid "Return true if *co* is a :class:`code` object."
|
||||
msgstr ""
|
||||
msgstr "Renvoie vrai si *co* est un objet :class:`code`."
|
||||
|
||||
#: ../Doc/c-api/code.rst:34
|
||||
msgid "Return the number of free variables in *co*."
|
||||
msgstr ""
|
||||
msgstr "Renvoie le nombre de variables libres dans *co*."
|
||||
|
||||
#: ../Doc/c-api/code.rst:38
|
||||
msgid ""
|
||||
|
@ -58,6 +62,10 @@ msgid ""
|
|||
"directly can bind you to a precise Python version since the definition of "
|
||||
"the bytecode changes often."
|
||||
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."
|
||||
|
||||
#: ../Doc/c-api/code.rst:46
|
||||
msgid ""
|
||||
|
@ -65,3 +73,6 @@ msgid ""
|
|||
"and first line number. It is illegal to :func:`exec` or :func:`eval` the "
|
||||
"resulting code object."
|
||||
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é."
|
||||
|
|
|
@ -7,19 +7,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:30+0200\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:31+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/c-api/complex.rst:6
|
||||
msgid "Complex Number Objects"
|
||||
msgstr "Objets Nombres Complexes"
|
||||
msgstr "Objets nombres complexes"
|
||||
|
||||
#: ../Doc/c-api/complex.rst:10
|
||||
msgid ""
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:31+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/concrete.rst:8
|
||||
msgid "Concrete Objects Layer"
|
||||
msgstr "Couche des Objets Concrets"
|
||||
msgstr "Couche des objets concrets"
|
||||
|
||||
#: ../Doc/c-api/concrete.rst:10
|
||||
msgid ""
|
||||
|
@ -30,6 +30,13 @@ msgid ""
|
|||
"object is a dictionary, use :c:func:`PyDict_Check`. The chapter is "
|
||||
"structured like the \"family tree\" of Python object types."
|
||||
msgstr ""
|
||||
"Les fonctions de ce chapitre sont spécifiques à certains types d'objets "
|
||||
"Python. Leur donner un objet du mauvais type n'est pas une bonne idée, si "
|
||||
"vous recevez un objet d'un programme Python, et que vous n'êtes pas sûr "
|
||||
"qu'il soit du bon type, vous devez vérifier son type en premier. Par "
|
||||
"exemple, pour vérifier qu'un objet est un dictionnaire, utilisez :c:func:"
|
||||
"`PyDict_Check`. Ce chapitre est organisé comme un arbre généalogique de "
|
||||
"types d'objets Python."
|
||||
|
||||
#: ../Doc/c-api/concrete.rst:19
|
||||
msgid ""
|
||||
|
@ -74,12 +81,12 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/concrete.rst:78
|
||||
msgid "Container Objects"
|
||||
msgstr "Objets Conteneurs"
|
||||
msgstr "Objets conteneurs"
|
||||
|
||||
#: ../Doc/c-api/concrete.rst:91
|
||||
msgid "Function Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets fonctions"
|
||||
|
||||
#: ../Doc/c-api/concrete.rst:102
|
||||
msgid "Other Objects"
|
||||
msgstr "Autres Objets"
|
||||
msgstr "Autres objets"
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:31+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,25 +19,28 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/coro.rst:6
|
||||
msgid "Coroutine Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets coroutines"
|
||||
|
||||
#: ../Doc/c-api/coro.rst:10
|
||||
msgid ""
|
||||
"Coroutine objects are what functions declared with an ``async`` keyword "
|
||||
"return."
|
||||
msgstr ""
|
||||
"Les objets coroutines sont les objets renvoyés par les fonctions déclarées "
|
||||
"avec le mot clef ``async``."
|
||||
|
||||
#: ../Doc/c-api/coro.rst:16
|
||||
msgid "The C structure used for coroutine objects."
|
||||
msgstr ""
|
||||
msgstr "La structure C utilisée pour les objets coroutine."
|
||||
|
||||
#: ../Doc/c-api/coro.rst:21
|
||||
msgid "The type object corresponding to coroutine objects."
|
||||
msgstr ""
|
||||
msgstr "L'objet type correpondant aux objets coroutines."
|
||||
|
||||
#: ../Doc/c-api/coro.rst:26
|
||||
msgid "Return true if *ob*'s type is *PyCoro_Type*; *ob* must not be *NULL*."
|
||||
msgstr ""
|
||||
"Renvoie vrai si *ob* est de type *PyCoro_Type*. *ob* ne doit pas être *NULL*."
|
||||
|
||||
#: ../Doc/c-api/coro.rst:31
|
||||
msgid ""
|
||||
|
@ -46,3 +49,7 @@ msgid ""
|
|||
"to *frame* is stolen by this function. The *frame* argument must not be "
|
||||
"*NULL*."
|
||||
msgstr ""
|
||||
"Crée et renvoie un nouvel objet coroutine basé sur l'objet *frame*, avec "
|
||||
"``__name__`` et ``__qualname__`` respectivement assignés de *name* et "
|
||||
"*qualname*. Une référence à *frame* est empruntée par cette fonction. "
|
||||
"L'argument *frame* ne doit pas être *NULL*."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:32+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,17 +19,19 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/descriptor.rst:6
|
||||
msgid "Descriptor Objects"
|
||||
msgstr ""
|
||||
msgstr "Les descripteurs"
|
||||
|
||||
#: ../Doc/c-api/descriptor.rst:8
|
||||
msgid ""
|
||||
"\"Descriptors\" are objects that describe some attribute of an object. They "
|
||||
"are found in the dictionary of type objects."
|
||||
msgstr ""
|
||||
"Les \"Descripteurs\" sont des objets décrivant des attributs pour un objet. "
|
||||
"Ils se trouvent dans le dictionnaire du type de l'objet."
|
||||
|
||||
#: ../Doc/c-api/descriptor.rst:15
|
||||
msgid "The type object for the built-in descriptor types."
|
||||
msgstr ""
|
||||
msgstr "L'objet *type* des descripteurs natifs."
|
||||
|
||||
#: ../Doc/c-api/descriptor.rst:35
|
||||
msgid ""
|
||||
|
@ -37,3 +39,6 @@ msgid ""
|
|||
"false 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 "
|
||||
"pas de vérification d'erreur."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"PO-Revision-Date: 2017-05-27 19:52+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:32+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -559,7 +559,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/exceptions.rst:554
|
||||
msgid "Exception Objects"
|
||||
msgstr "Objets Exception"
|
||||
msgstr "Objets exception"
|
||||
|
||||
#: ../Doc/c-api/exceptions.rst:558
|
||||
msgid ""
|
||||
|
@ -610,7 +610,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/exceptions.rst:603
|
||||
msgid "Unicode Exception Objects"
|
||||
msgstr "Objets Exception Unicode"
|
||||
msgstr "Objets exception unicode"
|
||||
|
||||
#: ../Doc/c-api/exceptions.rst:605
|
||||
msgid ""
|
||||
|
@ -1273,11 +1273,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/exceptions.rst:949 ../Doc/c-api/exceptions.rst:1013
|
||||
msgid "Notes:"
|
||||
msgstr "Notes : "
|
||||
msgstr "Notes :"
|
||||
|
||||
#: ../Doc/c-api/exceptions.rst:952
|
||||
msgid "This is a base class for other standard exceptions."
|
||||
msgstr "C'est la classe de base pour les autres exceptions standards"
|
||||
msgstr "C'est la classe de base pour les autres exceptions standards."
|
||||
|
||||
#: ../Doc/c-api/exceptions.rst:955
|
||||
msgid "This is the same as :exc:`weakref.ReferenceError`."
|
||||
|
|
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/function.rst:6
|
||||
msgid "Function Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets fonctions"
|
||||
|
||||
#: ../Doc/c-api/function.rst:10
|
||||
msgid "There are a few functions specific to Python functions."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:50+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:32+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/gen.rst:6
|
||||
msgid "Generator Objects"
|
||||
msgstr "Objets Générateur"
|
||||
msgstr "Objets générateur"
|
||||
|
||||
#: ../Doc/c-api/gen.rst:8
|
||||
msgid ""
|
||||
|
@ -35,7 +35,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/gen.rst:15
|
||||
msgid "The C structure used for generator objects."
|
||||
msgstr "La structure C utilisée pour les objets générateurs"
|
||||
msgstr "La structure C utilisée pour les objets générateurs."
|
||||
|
||||
#: ../Doc/c-api/gen.rst:20
|
||||
msgid "The type object corresponding to generator objects."
|
||||
|
@ -61,7 +61,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*. Une "
|
||||
"référence à *frame* est volée par cette fonction. L'argument ne doit pas "
|
||||
"être *NULL*"
|
||||
"être *NULL*."
|
||||
|
||||
#: ../Doc/c-api/gen.rst:41
|
||||
msgid ""
|
||||
|
|
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/import.rst:6
|
||||
msgid "Importing Modules"
|
||||
msgstr ""
|
||||
msgstr "Importer des modules"
|
||||
|
||||
#: ../Doc/c-api/import.rst:16
|
||||
msgid ""
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/index.rst:5
|
||||
msgid "Python/C API Reference Manual"
|
||||
msgstr ""
|
||||
msgstr "Manuel de référence de l'API Python/C"
|
||||
|
||||
#: ../Doc/c-api/index.rst:7
|
||||
msgid ""
|
||||
|
@ -28,3 +28,8 @@ msgid ""
|
|||
"`extending-index`, which describes the general principles of extension "
|
||||
"writing but does not document the API functions in detail."
|
||||
msgstr ""
|
||||
"C'est la documentation de l'API utilisée par les développeurs C et C++ "
|
||||
"écrivant des modules d'extension ou intégrant Python. Elle va de pair avec :"
|
||||
"ref:`extending-index`, qui décrit les principes généraux de l'écriture "
|
||||
"d'extensions, mais ne rentre pas dans les détails de chaque fonction de "
|
||||
"l'API."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+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"
|
||||
|
@ -67,8 +67,8 @@ msgid ""
|
|||
"last call to :c:func:`Py_Initialize`. Ideally, this frees all memory "
|
||||
"allocated by the Python interpreter. This is a no-op when called for a "
|
||||
"second time (without calling :c:func:`Py_Initialize` again first). Normally "
|
||||
"the return value is 0. If there were errors during finalization (flushing "
|
||||
"buffered data), -1 is returned."
|
||||
"the return value is ``0``. If there were errors during finalization "
|
||||
"(flushing buffered data), ``-1`` is returned."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:70
|
||||
|
@ -1123,7 +1123,7 @@ msgid ":const:`PyTrace_CALL`"
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1066 ../Doc/c-api/init.rst:1071
|
||||
msgid "Always *NULL*."
|
||||
msgid "Always :c:data:`Py_None`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1068
|
||||
|
@ -1194,7 +1194,7 @@ msgstr ""
|
|||
#: ../Doc/c-api/init.rst:1112
|
||||
msgid ""
|
||||
"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when "
|
||||
"a call is returning without propagating an exception."
|
||||
"a call is about to return."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1118
|
||||
|
@ -1221,166 +1221,169 @@ msgid ""
|
|||
"function as its first parameter, and may be any Python object, or *NULL*. "
|
||||
"If the profile function needs to maintain state, using a different value for "
|
||||
"*obj* for each thread provides a convenient and thread-safe place to store "
|
||||
"it. The profile function is called for all monitored events except the line-"
|
||||
"number events."
|
||||
"it. The profile function is called for all monitored events except :const:"
|
||||
"`PyTrace_LINE` and :const:`PyTrace_EXCEPTION`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1146
|
||||
msgid ""
|
||||
"Set the tracing function to *func*. This is similar to :c:func:"
|
||||
"`PyEval_SetProfile`, except the tracing function does receive line-number "
|
||||
"events."
|
||||
"events and does not receive any event related to C function objects being "
|
||||
"called. Any trace function registered using :c:func:`PyEval_SetTrace` will "
|
||||
"not receive :const:`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION` or :const:"
|
||||
"`PyTrace_C_RETURN` as a value for the *what* parameter."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1152
|
||||
#: ../Doc/c-api/init.rst:1156
|
||||
msgid ""
|
||||
"Return a tuple of function call counts. There are constants defined for the "
|
||||
"positions within the tuple:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1156
|
||||
#: ../Doc/c-api/init.rst:1160
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1156
|
||||
#: ../Doc/c-api/init.rst:1160
|
||||
msgid "Value"
|
||||
msgstr "Valeur"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1158
|
||||
#: ../Doc/c-api/init.rst:1162
|
||||
msgid ":const:`PCALL_ALL`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1158
|
||||
#: ../Doc/c-api/init.rst:1162
|
||||
msgid "0"
|
||||
msgstr "0"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1160
|
||||
#: ../Doc/c-api/init.rst:1164
|
||||
msgid ":const:`PCALL_FUNCTION`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1160
|
||||
#: ../Doc/c-api/init.rst:1164
|
||||
msgid "1"
|
||||
msgstr "1"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1162
|
||||
#: ../Doc/c-api/init.rst:1166
|
||||
msgid ":const:`PCALL_FAST_FUNCTION`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1162
|
||||
#: ../Doc/c-api/init.rst:1166
|
||||
msgid "2"
|
||||
msgstr "2"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1164
|
||||
#: ../Doc/c-api/init.rst:1168
|
||||
msgid ":const:`PCALL_FASTER_FUNCTION`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1164
|
||||
#: ../Doc/c-api/init.rst:1168
|
||||
msgid "3"
|
||||
msgstr "3"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1166
|
||||
#: ../Doc/c-api/init.rst:1170
|
||||
msgid ":const:`PCALL_METHOD`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1166
|
||||
#: ../Doc/c-api/init.rst:1170
|
||||
msgid "4"
|
||||
msgstr "4"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1168
|
||||
#: ../Doc/c-api/init.rst:1172
|
||||
msgid ":const:`PCALL_BOUND_METHOD`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1168
|
||||
#: ../Doc/c-api/init.rst:1172
|
||||
msgid "5"
|
||||
msgstr "5"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1170
|
||||
#: ../Doc/c-api/init.rst:1174
|
||||
msgid ":const:`PCALL_CFUNCTION`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1170
|
||||
#: ../Doc/c-api/init.rst:1174
|
||||
msgid "6"
|
||||
msgstr "6"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1172
|
||||
#: ../Doc/c-api/init.rst:1176
|
||||
msgid ":const:`PCALL_TYPE`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1172
|
||||
#: ../Doc/c-api/init.rst:1176
|
||||
msgid "7"
|
||||
msgstr "7"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1174
|
||||
#: ../Doc/c-api/init.rst:1178
|
||||
msgid ":const:`PCALL_GENERATOR`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1174
|
||||
#: ../Doc/c-api/init.rst:1178
|
||||
msgid "8"
|
||||
msgstr "8"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1176
|
||||
#: ../Doc/c-api/init.rst:1180
|
||||
msgid ":const:`PCALL_OTHER`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1176
|
||||
#: ../Doc/c-api/init.rst:1180
|
||||
msgid "9"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1178
|
||||
#: ../Doc/c-api/init.rst:1182
|
||||
msgid ":const:`PCALL_POP`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1178
|
||||
#: ../Doc/c-api/init.rst:1182
|
||||
msgid "10"
|
||||
msgstr "10"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1181
|
||||
#: ../Doc/c-api/init.rst:1185
|
||||
msgid ""
|
||||
":const:`PCALL_FAST_FUNCTION` means no argument tuple needs to be created. :"
|
||||
"const:`PCALL_FASTER_FUNCTION` means that the fast-path frame setup code is "
|
||||
"used."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1184
|
||||
#: ../Doc/c-api/init.rst:1188
|
||||
msgid ""
|
||||
"If there is a method call where the call can be optimized by changing the "
|
||||
"argument tuple and calling the function directly, it gets recorded twice."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1188
|
||||
#: ../Doc/c-api/init.rst:1192
|
||||
msgid ""
|
||||
"This function is only present if Python is compiled with :const:"
|
||||
"`CALL_PROFILE` defined."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1194
|
||||
#: ../Doc/c-api/init.rst:1198
|
||||
msgid "Advanced Debugger Support"
|
||||
msgstr "Support avancé du debugger"
|
||||
|
||||
#: ../Doc/c-api/init.rst:1199
|
||||
#: ../Doc/c-api/init.rst:1203
|
||||
msgid ""
|
||||
"These functions are only intended to be used by advanced debugging tools."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1204
|
||||
#: ../Doc/c-api/init.rst:1208
|
||||
msgid ""
|
||||
"Return the interpreter state object at the head of the list of all such "
|
||||
"objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1209
|
||||
#: ../Doc/c-api/init.rst:1213
|
||||
msgid ""
|
||||
"Return the next interpreter state object after *interp* from the list of all "
|
||||
"such objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1215
|
||||
#: ../Doc/c-api/init.rst:1219
|
||||
msgid ""
|
||||
"Return the pointer to the first :c:type:`PyThreadState` object in the list "
|
||||
"of threads associated with the interpreter *interp*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/init.rst:1221
|
||||
#: ../Doc/c-api/init.rst:1225
|
||||
msgid ""
|
||||
"Return the next thread state object after *tstate* from the list of all such "
|
||||
"objects belonging to the same :c:type:`PyInterpreterState` object."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,15 +19,15 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/iter.rst:6
|
||||
msgid "Iterator Protocol"
|
||||
msgstr ""
|
||||
msgstr "Protocole d'itération"
|
||||
|
||||
#: ../Doc/c-api/iter.rst:8
|
||||
msgid "There are two functions specifically for working with iterators."
|
||||
msgstr ""
|
||||
msgstr "Il existe deux fonctions dédiées à l'interaction avec les itérateurs."
|
||||
|
||||
#: ../Doc/c-api/iter.rst:12
|
||||
msgid "Return true if the object *o* supports the iterator protocol."
|
||||
msgstr ""
|
||||
msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
|
||||
|
||||
#: ../Doc/c-api/iter.rst:17
|
||||
msgid ""
|
||||
|
@ -36,9 +36,16 @@ msgid ""
|
|||
"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* "
|
||||
"s'il n'y a plus de valeurs, sans déclarer d'exception. Renvoie *NULL* en "
|
||||
"déclarant une exception si une erreur survient lors de la récupération d'un "
|
||||
"élément."
|
||||
|
||||
#: ../Doc/c-api/iter.rst:22
|
||||
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 "
|
||||
"à : ::"
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-12-13 08:47+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/iterator.rst:6
|
||||
msgid "Iterator Objects"
|
||||
msgstr ""
|
||||
msgstr "Itérateurs"
|
||||
|
||||
#: ../Doc/c-api/iterator.rst:8
|
||||
msgid ""
|
||||
|
@ -29,6 +29,11 @@ msgid ""
|
|||
"sentinel value, calling the callable for each item in the sequence, and "
|
||||
"ending the iteration when the sentinel value is returned."
|
||||
msgstr ""
|
||||
"Python fournit deux itérateurs génériques. Le premier est un itérateur de "
|
||||
"séquence, il fonctionne avec n'importe quelle séquence gérant la méthode :"
|
||||
"meth:`__getitem__`. Le second fonctionne avec un objet appelable et une "
|
||||
"valeur sentinelle, il appelle l'appelable pour obtenir chaque élément de la "
|
||||
"séquence, et l'itération se termine lorsque la sentinelle est reçue."
|
||||
|
||||
#: ../Doc/c-api/iterator.rst:17
|
||||
msgid ""
|
||||
|
|
125
c-api/long.po
125
c-api/long.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+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"
|
||||
|
@ -26,34 +26,41 @@ msgid ""
|
|||
"All integers are implemented as \"long\" integer objects of arbitrary size."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:15
|
||||
#: ../Doc/c-api/long.rst:13
|
||||
msgid ""
|
||||
"On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot "
|
||||
"be distinguished from a number. Use :c:func:`PyErr_Occurred` to "
|
||||
"disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:18
|
||||
msgid "This subtype of :c:type:`PyObject` represents a Python integer object."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:20
|
||||
#: ../Doc/c-api/long.rst:23
|
||||
msgid ""
|
||||
"This instance of :c:type:`PyTypeObject` represents the Python integer type. "
|
||||
"This is the same object as :class:`int` in the Python layer."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:26
|
||||
#: ../Doc/c-api/long.rst:29
|
||||
msgid ""
|
||||
"Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:"
|
||||
"type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:32
|
||||
#: ../Doc/c-api/long.rst:35
|
||||
msgid ""
|
||||
"Return true if its argument is a :c:type:`PyLongObject`, but not a subtype "
|
||||
"of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:38
|
||||
#: ../Doc/c-api/long.rst:41
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from *v*, or *NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:40
|
||||
#: ../Doc/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 "
|
||||
|
@ -62,43 +69,43 @@ msgid ""
|
|||
"in this case is undefined. :-)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:49
|
||||
#: ../Doc/c-api/long.rst:52
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, "
|
||||
"or *NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:55
|
||||
#: ../Doc/c-api/long.rst:58
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or "
|
||||
"*NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:61
|
||||
#: ../Doc/c-api/long.rst:64
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or "
|
||||
"*NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:67
|
||||
#: ../Doc/c-api/long.rst:70
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or "
|
||||
"*NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:73
|
||||
#: ../Doc/c-api/long.rst:76
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long "
|
||||
"long`, or *NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:79
|
||||
#: ../Doc/c-api/long.rst:82
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` object from the integer part of *v*, or "
|
||||
"*NULL* on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:85
|
||||
#: ../Doc/c-api/long.rst:88
|
||||
msgid ""
|
||||
"Return a new :c:type:`PyLongObject` based on the string value in *str*, "
|
||||
"which is interpreted according to the radix in *base*. If *pend* is non-"
|
||||
|
@ -111,7 +118,7 @@ msgid ""
|
|||
"are no digits, :exc:`ValueError` will be raised."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:98
|
||||
#: ../Doc/c-api/long.rst:101
|
||||
msgid ""
|
||||
"Convert a sequence of Unicode digits to a Python integer value. The Unicode "
|
||||
"string is first encoded to a byte string using :c:func:"
|
||||
|
@ -119,19 +126,13 @@ msgid ""
|
|||
"`PyLong_FromString`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:104
|
||||
msgid ""
|
||||
"Deprecated since version 3.3, will be removed in version 4.0: Part of the "
|
||||
"old-style Py_UNICODE API; please migrate to using PyLong_FromUnicodeObject()."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:104
|
||||
#: ../Doc/c-api/long.rst:107
|
||||
msgid ""
|
||||
"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:"
|
||||
"func:`PyLong_FromUnicodeObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:109
|
||||
#: ../Doc/c-api/long.rst:112
|
||||
msgid ""
|
||||
"Convert a sequence of Unicode digits in the string *u* to a Python integer "
|
||||
"value. The Unicode string is first encoded to a byte string using :c:func:"
|
||||
|
@ -139,26 +140,33 @@ msgid ""
|
|||
"`PyLong_FromString`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:119
|
||||
#: ../Doc/c-api/long.rst:122
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:130 ../Doc/c-api/long.rst:140
|
||||
#: ../Doc/c-api/long.rst:133 ../Doc/c-api/long.rst:145
|
||||
msgid ""
|
||||
"Return a C :c:type:`long` representation of *obj*. If *obj* is not an "
|
||||
"instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method "
|
||||
"(if present) to convert it to a :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:134 ../Doc/c-api/long.rst:159
|
||||
#: ../Doc/c-api/long.rst:137 ../Doc/c-api/long.rst:166
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
|
||||
"type:`long`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:144
|
||||
#: ../Doc/c-api/long.rst:140 ../Doc/c-api/long.rst:154
|
||||
#: ../Doc/c-api/long.rst:169 ../Doc/c-api/long.rst:183
|
||||
#: ../Doc/c-api/long.rst:200 ../Doc/c-api/long.rst:262
|
||||
#: ../Doc/c-api/long.rst:274
|
||||
msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:149
|
||||
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 "
|
||||
|
@ -166,14 +174,14 @@ msgid ""
|
|||
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:155 ../Doc/c-api/long.rst:165
|
||||
#: ../Doc/c-api/long.rst:162 ../Doc/c-api/long.rst:174
|
||||
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:`__int__` method "
|
||||
"(if present) to convert it to a :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:169
|
||||
#: ../Doc/c-api/long.rst:178
|
||||
msgid ""
|
||||
"If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than :"
|
||||
"const:`PY_LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, "
|
||||
|
@ -181,101 +189,128 @@ msgid ""
|
|||
"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:183
|
||||
#: ../Doc/c-api/long.rst:194
|
||||
msgid ""
|
||||
"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must "
|
||||
"be an instance of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:186
|
||||
#: ../Doc/c-api/long.rst:197
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
|
||||
"type:`Py_ssize_t`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:196
|
||||
#: ../Doc/c-api/long.rst:209
|
||||
msgid ""
|
||||
"Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* "
|
||||
"must be an instance of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:199
|
||||
#: ../Doc/c-api/long.rst:212
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
|
||||
"type:`unsigned long`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:205
|
||||
#: ../Doc/c-api/long.rst:215
|
||||
msgid ""
|
||||
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
|
||||
"disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:225
|
||||
msgid ""
|
||||
"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an "
|
||||
"instance of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:208
|
||||
#: ../Doc/c-api/long.rst:228
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
|
||||
"type:`size_t`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:217
|
||||
#: ../Doc/c-api/long.rst:231
|
||||
msgid ""
|
||||
"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to "
|
||||
"disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:240
|
||||
msgid ""
|
||||
"Return a C :c:type:`unsigned long long` representation of *pylong*. "
|
||||
"*pylong* must be an instance of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:220
|
||||
#: ../Doc/c-api/long.rst:243
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :"
|
||||
"c:type:`unsigned long long`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:223
|
||||
#: ../Doc/c-api/long.rst:246
|
||||
msgid ""
|
||||
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
|
||||
"disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:249
|
||||
msgid ""
|
||||
"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:229
|
||||
#: ../Doc/c-api/long.rst:255
|
||||
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:`__int__` method "
|
||||
"(if present) to convert it to a :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:233
|
||||
#: ../Doc/c-api/long.rst:259
|
||||
msgid ""
|
||||
"If the value of *obj* is out of range for an :c:type:`unsigned long`, return "
|
||||
"the reduction of that value modulo ``ULONG_MAX + 1``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:239
|
||||
#: ../Doc/c-api/long.rst:267
|
||||
msgid ""
|
||||
"Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* "
|
||||
"is not an instance of :c:type:`PyLongObject`, first call its :meth:`__int__` "
|
||||
"method (if present) to convert it to a :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:243
|
||||
#: ../Doc/c-api/long.rst:271
|
||||
msgid ""
|
||||
"If the value of *obj* is out of range for an :c:type:`unsigned long long`, "
|
||||
"return the reduction of that value modulo ``PY_ULLONG_MAX + 1``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:249
|
||||
#: ../Doc/c-api/long.rst:279
|
||||
msgid ""
|
||||
"Return a C :c:type:`double` representation of *pylong*. *pylong* must be an "
|
||||
"instance of :c:type:`PyLongObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:252
|
||||
#: ../Doc/c-api/long.rst:282
|
||||
msgid ""
|
||||
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
|
||||
"type:`double`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:258
|
||||
#: ../Doc/c-api/long.rst:285
|
||||
msgid ""
|
||||
"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:290
|
||||
msgid ""
|
||||
"Convert a Python integer *pylong* to a C :c:type:`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 :"
|
||||
"c:func:`PyLong_FromVoidPtr`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/long.rst:295
|
||||
msgid "Returns *NULL* on error. Use :c:func:`PyErr_Occurred` to disambiguate."
|
||||
msgstr ""
|
||||
|
|
192
c-api/memory.po
192
c-api/memory.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -127,6 +127,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:111 ../Doc/c-api/memory.rst:181
|
||||
#: ../Doc/c-api/memory.rst:282
|
||||
msgid ""
|
||||
"Allocates *n* bytes and returns a pointer of type :c:type:`void\\*` to the "
|
||||
"allocated memory, or *NULL* if the request fails."
|
||||
|
@ -140,6 +141,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:121 ../Doc/c-api/memory.rst:191
|
||||
#: ../Doc/c-api/memory.rst:292
|
||||
msgid ""
|
||||
"Allocates *nelem* elements each whose size in bytes is *elsize* and returns "
|
||||
"a pointer of type :c:type:`void\\*` to the allocated memory, or *NULL* if "
|
||||
|
@ -154,6 +156,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:134 ../Doc/c-api/memory.rst:204
|
||||
#: ../Doc/c-api/memory.rst:305
|
||||
msgid ""
|
||||
"Resizes the memory block pointed to by *p* to *n* bytes. The contents will "
|
||||
"be unchanged to the minimum of the old and the new sizes."
|
||||
|
@ -183,11 +186,12 @@ msgstr ""
|
|||
msgid ""
|
||||
"Frees the memory block pointed to by *p*, which must have been returned by a "
|
||||
"previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:"
|
||||
"func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_Free(p)`` has been called "
|
||||
"before, undefined behavior occurs."
|
||||
"func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_RawFree(p)`` has been "
|
||||
"called before, undefined behavior occurs."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:156 ../Doc/c-api/memory.rst:225
|
||||
#: ../Doc/c-api/memory.rst:326
|
||||
msgid "If *p* is *NULL*, no operation is performed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -195,19 +199,19 @@ msgstr ""
|
|||
msgid "Memory Interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:164
|
||||
#: ../Doc/c-api/memory.rst:164 ../Doc/c-api/memory.rst:269
|
||||
msgid ""
|
||||
"The following function sets, modeled after the ANSI C standard, but "
|
||||
"specifying behavior when requesting zero bytes, are available for allocating "
|
||||
"and releasing memory from the Python heap."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:168
|
||||
#: ../Doc/c-api/memory.rst:168 ../Doc/c-api/memory.rst:273
|
||||
msgid ""
|
||||
"By default, these functions use :ref:`pymalloc memory allocator <pymalloc>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:172
|
||||
#: ../Doc/c-api/memory.rst:172 ../Doc/c-api/memory.rst:277
|
||||
msgid ""
|
||||
"The :term:`GIL <global interpreter lock>` must be held when using these "
|
||||
"functions."
|
||||
|
@ -323,190 +327,236 @@ msgid "``PyMem_DEL(ptr)``"
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:267
|
||||
msgid "Object allocators"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:285
|
||||
msgid ""
|
||||
"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as "
|
||||
"if ``PyObject_Malloc(1)`` had been called instead. The memory will not have "
|
||||
"been initialized in any way."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:296
|
||||
msgid ""
|
||||
"Requesting zero elements or elements of size zero bytes returns a distinct "
|
||||
"non-*NULL* pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been "
|
||||
"called instead."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:308
|
||||
msgid ""
|
||||
"If *p* is *NULL*, the call is equivalent to ``PyObject_Malloc(n)``; else if "
|
||||
"*n* is equal to zero, the memory block is resized but is not freed, and the "
|
||||
"returned pointer is non-*NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:312
|
||||
msgid ""
|
||||
"Unless *p* is *NULL*, it must have been returned by a previous call to :c:"
|
||||
"func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:"
|
||||
"`PyObject_Calloc`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:315
|
||||
msgid ""
|
||||
"If the request fails, :c:func:`PyObject_Realloc` returns *NULL* and *p* "
|
||||
"remains a valid pointer to the previous memory area."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:321
|
||||
msgid ""
|
||||
"Frees the memory block pointed to by *p*, which must have been returned by a "
|
||||
"previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:"
|
||||
"func:`PyObject_Calloc`. Otherwise, or if ``PyObject_Free(p)`` has been "
|
||||
"called before, undefined behavior occurs."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:330
|
||||
msgid "Customize Memory Allocators"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:273
|
||||
#: ../Doc/c-api/memory.rst:336
|
||||
msgid ""
|
||||
"Structure used to describe a memory block allocator. The structure has four "
|
||||
"fields:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:277 ../Doc/c-api/memory.rst:414
|
||||
#: ../Doc/c-api/memory.rst:340 ../Doc/c-api/memory.rst:477
|
||||
msgid "Field"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:277 ../Doc/c-api/memory.rst:414
|
||||
#: ../Doc/c-api/memory.rst:340 ../Doc/c-api/memory.rst:477
|
||||
msgid "Meaning"
|
||||
msgstr "Signification"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:279 ../Doc/c-api/memory.rst:416
|
||||
#: ../Doc/c-api/memory.rst:342 ../Doc/c-api/memory.rst:479
|
||||
msgid "``void *ctx``"
|
||||
msgstr "``void *ctx``"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:279 ../Doc/c-api/memory.rst:416
|
||||
#: ../Doc/c-api/memory.rst:342 ../Doc/c-api/memory.rst:479
|
||||
msgid "user context passed as first argument"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:281
|
||||
#: ../Doc/c-api/memory.rst:344
|
||||
msgid "``void* malloc(void *ctx, size_t size)``"
|
||||
msgstr "``void* malloc(void *ctx, size_t size)``"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:281
|
||||
#: ../Doc/c-api/memory.rst:344
|
||||
msgid "allocate a memory block"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:283
|
||||
#: ../Doc/c-api/memory.rst:346
|
||||
msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:283
|
||||
#: ../Doc/c-api/memory.rst:346
|
||||
msgid "allocate a memory block initialized with zeros"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:286
|
||||
#: ../Doc/c-api/memory.rst:349
|
||||
msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:286
|
||||
#: ../Doc/c-api/memory.rst:349
|
||||
msgid "allocate or resize a memory block"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:288
|
||||
#: ../Doc/c-api/memory.rst:351
|
||||
msgid "``void free(void *ctx, void *ptr)``"
|
||||
msgstr "``void free(void *ctx, void *ptr)``"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:288
|
||||
#: ../Doc/c-api/memory.rst:351
|
||||
msgid "free a memory block"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:291
|
||||
#: ../Doc/c-api/memory.rst:354
|
||||
msgid ""
|
||||
"The :c:type:`PyMemAllocator` structure was renamed to :c:type:"
|
||||
"`PyMemAllocatorEx` and a new ``calloc`` field was added."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:298
|
||||
#: ../Doc/c-api/memory.rst:361
|
||||
msgid "Enum used to identify an allocator domain. Domains:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:302 ../Doc/c-api/memory.rst:311
|
||||
#: ../Doc/c-api/memory.rst:320
|
||||
#: ../Doc/c-api/memory.rst:365 ../Doc/c-api/memory.rst:374
|
||||
#: ../Doc/c-api/memory.rst:383
|
||||
msgid "Functions:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:304
|
||||
#: ../Doc/c-api/memory.rst:367
|
||||
msgid ":c:func:`PyMem_RawMalloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:305
|
||||
#: ../Doc/c-api/memory.rst:368
|
||||
msgid ":c:func:`PyMem_RawRealloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:306
|
||||
#: ../Doc/c-api/memory.rst:369
|
||||
msgid ":c:func:`PyMem_RawCalloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:307
|
||||
#: ../Doc/c-api/memory.rst:370
|
||||
msgid ":c:func:`PyMem_RawFree`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:313
|
||||
#: ../Doc/c-api/memory.rst:376
|
||||
msgid ":c:func:`PyMem_Malloc`,"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:314
|
||||
#: ../Doc/c-api/memory.rst:377
|
||||
msgid ":c:func:`PyMem_Realloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:315
|
||||
#: ../Doc/c-api/memory.rst:378
|
||||
msgid ":c:func:`PyMem_Calloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:316
|
||||
#: ../Doc/c-api/memory.rst:379
|
||||
msgid ":c:func:`PyMem_Free`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:322
|
||||
#: ../Doc/c-api/memory.rst:385
|
||||
msgid ":c:func:`PyObject_Malloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:323
|
||||
#: ../Doc/c-api/memory.rst:386
|
||||
msgid ":c:func:`PyObject_Realloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:324
|
||||
#: ../Doc/c-api/memory.rst:387
|
||||
msgid ":c:func:`PyObject_Calloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:325
|
||||
#: ../Doc/c-api/memory.rst:388
|
||||
msgid ":c:func:`PyObject_Free`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:329
|
||||
#: ../Doc/c-api/memory.rst:392
|
||||
msgid "Get the memory block allocator of the specified domain."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:334
|
||||
#: ../Doc/c-api/memory.rst:397
|
||||
msgid "Set the memory block allocator of the specified domain."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:336
|
||||
#: ../Doc/c-api/memory.rst:399
|
||||
msgid ""
|
||||
"The new allocator must return a distinct non-NULL pointer when requesting "
|
||||
"zero bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:339
|
||||
#: ../Doc/c-api/memory.rst:402
|
||||
msgid ""
|
||||
"For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-"
|
||||
"safe: the :term:`GIL <global interpreter lock>` is not held when the "
|
||||
"allocator is called."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:343
|
||||
#: ../Doc/c-api/memory.rst:406
|
||||
msgid ""
|
||||
"If the new allocator is not a hook (does not call the previous allocator), "
|
||||
"the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the "
|
||||
"debug hooks on top on the new allocator."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:350
|
||||
#: ../Doc/c-api/memory.rst:413
|
||||
msgid "Setup hooks to detect bugs in the Python memory allocator functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:352
|
||||
#: ../Doc/c-api/memory.rst:415
|
||||
msgid ""
|
||||
"Newly allocated memory is filled with the byte ``0xCB``, freed memory is "
|
||||
"filled with the byte ``0xDB``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:355
|
||||
#: ../Doc/c-api/memory.rst:418
|
||||
msgid "Runtime checks:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:357
|
||||
#: ../Doc/c-api/memory.rst:420
|
||||
msgid ""
|
||||
"Detect API violations, ex: :c:func:`PyObject_Free` called on a buffer "
|
||||
"allocated by :c:func:`PyMem_Malloc`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:359
|
||||
#: ../Doc/c-api/memory.rst:422
|
||||
msgid "Detect write before the start of the buffer (buffer underflow)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:360
|
||||
#: ../Doc/c-api/memory.rst:423
|
||||
msgid "Detect write after the end of the buffer (buffer overflow)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:361
|
||||
#: ../Doc/c-api/memory.rst:424
|
||||
msgid ""
|
||||
"Check that the :term:`GIL <global interpreter lock>` is held when allocator "
|
||||
"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :"
|
||||
"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:366
|
||||
#: ../Doc/c-api/memory.rst:429
|
||||
msgid ""
|
||||
"On error, the debug hooks use the :mod:`tracemalloc` module to get the "
|
||||
"traceback where a memory block was allocated. The traceback is only "
|
||||
|
@ -514,14 +564,14 @@ msgid ""
|
|||
"memory block was traced."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:371
|
||||
#: ../Doc/c-api/memory.rst:434
|
||||
msgid ""
|
||||
"These hooks are installed by default if Python is compiled in debug mode. "
|
||||
"The :envvar:`PYTHONMALLOC` environment variable can be used to install debug "
|
||||
"hooks on a Python compiled in release mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:375
|
||||
#: ../Doc/c-api/memory.rst:438
|
||||
msgid ""
|
||||
"This function now also works on Python compiled in release mode. On error, "
|
||||
"the debug hooks now use :mod:`tracemalloc` to get the traceback where a "
|
||||
|
@ -530,11 +580,11 @@ msgid ""
|
|||
"`PYMEM_DOMAIN_MEM` domains are called."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:386
|
||||
#: ../Doc/c-api/memory.rst:449
|
||||
msgid "The pymalloc allocator"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:388
|
||||
#: ../Doc/c-api/memory.rst:451
|
||||
msgid ""
|
||||
"Python has a *pymalloc* allocator optimized for small objects (smaller or "
|
||||
"equal to 512 bytes) with a short lifetime. It uses memory mappings called "
|
||||
|
@ -543,79 +593,79 @@ msgid ""
|
|||
"512 bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:393
|
||||
#: ../Doc/c-api/memory.rst:456
|
||||
msgid ""
|
||||
"*pymalloc* is the default allocator of the :c:data:`PYMEM_DOMAIN_MEM` (ex: :"
|
||||
"c:func:`PyMem_Malloc`) and :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:"
|
||||
"`PyObject_Malloc`) domains."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:397
|
||||
#: ../Doc/c-api/memory.rst:460
|
||||
msgid "The arena allocator uses the following functions:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:399
|
||||
#: ../Doc/c-api/memory.rst:462
|
||||
msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows,"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:400
|
||||
#: ../Doc/c-api/memory.rst:463
|
||||
msgid ":c:func:`mmap` and :c:func:`munmap` if available,"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:401
|
||||
#: ../Doc/c-api/memory.rst:464
|
||||
msgid ":c:func:`malloc` and :c:func:`free` otherwise."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:404
|
||||
#: ../Doc/c-api/memory.rst:467
|
||||
msgid "Customize pymalloc Arena Allocator"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:410
|
||||
#: ../Doc/c-api/memory.rst:473
|
||||
msgid ""
|
||||
"Structure used to describe an arena allocator. The structure has three "
|
||||
"fields:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:418
|
||||
#: ../Doc/c-api/memory.rst:481
|
||||
msgid "``void* alloc(void *ctx, size_t size)``"
|
||||
msgstr "``void* alloc(void *ctx, size_t size)``"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:418
|
||||
#: ../Doc/c-api/memory.rst:481
|
||||
msgid "allocate an arena of size bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:420
|
||||
#: ../Doc/c-api/memory.rst:483
|
||||
msgid "``void free(void *ctx, size_t size, void *ptr)``"
|
||||
msgstr "``void free(void *ctx, size_t size, void *ptr)``"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:420
|
||||
#: ../Doc/c-api/memory.rst:483
|
||||
msgid "free an arena"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:425
|
||||
#: ../Doc/c-api/memory.rst:488
|
||||
msgid "Get the arena allocator."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:429
|
||||
#: ../Doc/c-api/memory.rst:492
|
||||
msgid "Set the arena allocator."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:435
|
||||
#: ../Doc/c-api/memory.rst:498
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:437
|
||||
#: ../Doc/c-api/memory.rst:500
|
||||
msgid ""
|
||||
"Here is the example from section :ref:`memoryoverview`, rewritten so that "
|
||||
"the I/O buffer is allocated from the Python heap by using the first function "
|
||||
"set::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:450
|
||||
#: ../Doc/c-api/memory.rst:513
|
||||
msgid "The same code using the type-oriented function set::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:462
|
||||
#: ../Doc/c-api/memory.rst:525
|
||||
msgid ""
|
||||
"Note that in the two examples above, the buffer is always manipulated via "
|
||||
"functions belonging to the same set. Indeed, it is required to use the same "
|
||||
|
@ -625,14 +675,14 @@ msgid ""
|
|||
"different allocators operating on different heaps. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:477
|
||||
#: ../Doc/c-api/memory.rst:540
|
||||
msgid ""
|
||||
"In addition to the functions aimed at handling raw memory blocks from the "
|
||||
"Python heap, objects in Python are allocated and released with :c:func:"
|
||||
"`PyObject_New`, :c:func:`PyObject_NewVar` and :c:func:`PyObject_Del`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/memory.rst:481
|
||||
#: ../Doc/c-api/memory.rst:544
|
||||
msgid ""
|
||||
"These will be explained in the next chapter on defining and implementing new "
|
||||
"object types in C."
|
||||
|
|
122
c-api/module.po
122
c-api/module.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+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"
|
||||
|
@ -211,64 +211,70 @@ msgstr ""
|
|||
#: ../Doc/c-api/module.rst:198
|
||||
msgid ""
|
||||
"A traversal function to call during GC traversal of the module object, or "
|
||||
"*NULL* if not needed."
|
||||
"*NULL* if not needed. This function may be called before module state is "
|
||||
"allocated (:c:func:`PyModule_GetState()` may return `NULL`), and before the :"
|
||||
"c:member:`Py_mod_exec` function is executed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:203
|
||||
#: ../Doc/c-api/module.rst:205
|
||||
msgid ""
|
||||
"A clear function to call during GC clearing of the module object, or *NULL* "
|
||||
"if not needed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:208
|
||||
msgid ""
|
||||
"A function to call during deallocation of the module object, or *NULL* if "
|
||||
"not needed."
|
||||
"if not needed. This function may be called before module state is allocated "
|
||||
"(:c:func:`PyModule_GetState()` may return `NULL`), and before the :c:member:"
|
||||
"`Py_mod_exec` function is executed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:212
|
||||
msgid ""
|
||||
"A function to call during deallocation of the module object, or *NULL* if "
|
||||
"not needed. This function may be called before module state is allocated (:c:"
|
||||
"func:`PyModule_GetState()` may return `NULL`), and before the :c:member:"
|
||||
"`Py_mod_exec` function is executed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:218
|
||||
msgid "Single-phase initialization"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:214
|
||||
#: ../Doc/c-api/module.rst:220
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:220
|
||||
#: ../Doc/c-api/module.rst:226
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:227
|
||||
#: ../Doc/c-api/module.rst:233
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:233
|
||||
#: ../Doc/c-api/module.rst:239
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:236
|
||||
#: ../Doc/c-api/module.rst:242
|
||||
msgid ""
|
||||
"Before it is returned from in the initialization function, the resulting "
|
||||
"module object is typically populated using functions like :c:func:"
|
||||
"`PyModule_AddObject`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:242
|
||||
#: ../Doc/c-api/module.rst:248
|
||||
msgid "Multi-phase initialization"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:244
|
||||
#: ../Doc/c-api/module.rst:250
|
||||
msgid ""
|
||||
"An alternate way to specify extensions is to request \"multi-phase "
|
||||
"initialization\". Extension modules created this way behave more like Python "
|
||||
|
@ -278,7 +284,7 @@ msgid ""
|
|||
"methods of classes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:251
|
||||
#: ../Doc/c-api/module.rst:257
|
||||
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-"
|
||||
|
@ -291,14 +297,14 @@ msgid ""
|
|||
"or individual classes created with :c:func:`PyType_FromSpec`)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:261
|
||||
#: ../Doc/c-api/module.rst:267
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:265
|
||||
#: ../Doc/c-api/module.rst:271
|
||||
msgid ""
|
||||
"To request multi-phase initialization, the initialization function "
|
||||
"(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :"
|
||||
|
@ -306,65 +312,65 @@ msgid ""
|
|||
"instance must be initialized with the following function:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:272
|
||||
#: ../Doc/c-api/module.rst:278
|
||||
msgid ""
|
||||
"Ensures a module definition is a properly initialized Python object that "
|
||||
"correctly reports its type and reference count."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:275
|
||||
#: ../Doc/c-api/module.rst:281
|
||||
msgid "Returns *def* cast to ``PyObject*``, or *NULL* if an error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:279
|
||||
#: ../Doc/c-api/module.rst:285
|
||||
msgid ""
|
||||
"The *m_slots* member of the module definition must point to an array of "
|
||||
"``PyModuleDef_Slot`` structures:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:286
|
||||
#: ../Doc/c-api/module.rst:292
|
||||
msgid "A slot ID, chosen from the available values explained below."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:290
|
||||
#: ../Doc/c-api/module.rst:296
|
||||
msgid "Value of the slot, whose meaning depends on the slot ID."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:294
|
||||
#: ../Doc/c-api/module.rst:300
|
||||
msgid "The *m_slots* array must be terminated by a slot with id 0."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:296
|
||||
#: ../Doc/c-api/module.rst:302
|
||||
msgid "The available slot types are:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:300
|
||||
#: ../Doc/c-api/module.rst:306
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:305
|
||||
#: ../Doc/c-api/module.rst:311
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:310
|
||||
#: ../Doc/c-api/module.rst:316
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:314
|
||||
#: ../Doc/c-api/module.rst:320
|
||||
msgid ""
|
||||
"Multiple ``Py_mod_create`` slots may not be specified in one module "
|
||||
"definition."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:317
|
||||
#: ../Doc/c-api/module.rst:323
|
||||
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 "
|
||||
|
@ -373,7 +379,7 @@ msgid ""
|
|||
"through symlinks, all while sharing a single module definition."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:323
|
||||
#: ../Doc/c-api/module.rst:329
|
||||
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 "
|
||||
|
@ -383,7 +389,7 @@ msgid ""
|
|||
"``Py_mod_create``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:332
|
||||
#: ../Doc/c-api/module.rst:338
|
||||
msgid ""
|
||||
"Specifies a function that is called to *execute* the module. This is "
|
||||
"equivalent to executing the code of a Python module: typically, this "
|
||||
|
@ -391,21 +397,21 @@ msgid ""
|
|||
"function is:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:339
|
||||
#: ../Doc/c-api/module.rst:345
|
||||
msgid ""
|
||||
"If multiple ``Py_mod_exec`` slots are specified, they are processed in the "
|
||||
"order they appear in the *m_slots* array."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:342
|
||||
#: ../Doc/c-api/module.rst:348
|
||||
msgid "See :PEP:`489` for more details on multi-phase initialization."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:345
|
||||
#: ../Doc/c-api/module.rst:351
|
||||
msgid "Low-level module creation functions"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:347
|
||||
#: ../Doc/c-api/module.rst:353
|
||||
msgid ""
|
||||
"The following functions are called under the hood when using multi-phase "
|
||||
"initialization. They can be used directly, for example when creating module "
|
||||
|
@ -413,14 +419,14 @@ msgid ""
|
|||
"``PyModule_ExecDef`` must be called to fully initialize a module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:354
|
||||
#: ../Doc/c-api/module.rst:360
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:362
|
||||
#: ../Doc/c-api/module.rst:368
|
||||
msgid ""
|
||||
"Create a new module object, given the definition in *module* and the "
|
||||
"ModuleSpec *spec*, assuming the API version *module_api_version*. If that "
|
||||
|
@ -428,24 +434,24 @@ msgid ""
|
|||
"`RuntimeWarning` is emitted."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:369
|
||||
#: ../Doc/c-api/module.rst:375
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:376
|
||||
#: ../Doc/c-api/module.rst:382
|
||||
msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:382
|
||||
#: ../Doc/c-api/module.rst:388
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:391
|
||||
#: ../Doc/c-api/module.rst:397
|
||||
msgid ""
|
||||
"Add the functions from the *NULL* terminated *functions* array to *module*. "
|
||||
"Refer to the :c:type:`PyMethodDef` documentation for details on individual "
|
||||
|
@ -457,11 +463,11 @@ msgid ""
|
|||
"``PyModule_FromDefAndSpec``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:403
|
||||
#: ../Doc/c-api/module.rst:409
|
||||
msgid "Support functions"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:405
|
||||
#: ../Doc/c-api/module.rst:411
|
||||
msgid ""
|
||||
"The module initialization function (if using single phase initialization) or "
|
||||
"a function called from a module execution slot (if using multi-phase "
|
||||
|
@ -469,28 +475,28 @@ msgid ""
|
|||
"module state:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:412
|
||||
#: ../Doc/c-api/module.rst:418
|
||||
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*. Return ``-1`` on error, ``0`` on success."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:418
|
||||
#: ../Doc/c-api/module.rst:424
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:425
|
||||
#: ../Doc/c-api/module.rst:431
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:432
|
||||
#: ../Doc/c-api/module.rst:438
|
||||
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 "
|
||||
|
@ -498,29 +504,29 @@ msgid ""
|
|||
"error, ``0`` on success."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:440
|
||||
#: ../Doc/c-api/module.rst:446
|
||||
msgid "Add a string constant to *module*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:444
|
||||
#: ../Doc/c-api/module.rst:450
|
||||
msgid "Module lookup"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:446
|
||||
#: ../Doc/c-api/module.rst:452
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:450
|
||||
#: ../Doc/c-api/module.rst:456
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:455
|
||||
#: ../Doc/c-api/module.rst:461
|
||||
msgid ""
|
||||
"Returns the module object that was created from *def* for the current "
|
||||
"interpreter. This method requires that the module object has been attached "
|
||||
|
@ -529,18 +535,18 @@ msgid ""
|
|||
"to the interpreter state yet, it returns *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:462
|
||||
#: ../Doc/c-api/module.rst:468
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:465
|
||||
#: ../Doc/c-api/module.rst:471
|
||||
msgid "Only effective on modules created using single-phase initialization."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/module.rst:471
|
||||
#: ../Doc/c-api/module.rst:477
|
||||
msgid ""
|
||||
"Removes the module object created from *def* from the interpreter state."
|
||||
msgstr ""
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-11-05 11:18+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/none.rst:6
|
||||
msgid "The ``None`` Object"
|
||||
msgstr ""
|
||||
msgstr "L'objet ``None``"
|
||||
|
||||
#: ../Doc/c-api/none.rst:10
|
||||
msgid ""
|
||||
|
@ -28,6 +28,10 @@ msgid ""
|
|||
"identity (using ``==`` in C) is sufficient. There is no :c:func:"
|
||||
"`PyNone_Check` function for the same reason."
|
||||
msgstr ""
|
||||
"Notez que le :c:type:`PyTypeObject` de ``None`` n'est pas directement exposé "
|
||||
"via l'API Python/C. Puisque ``None`` est un singleton, tester son identité "
|
||||
"(en utilisant ``==`` en C) est suffisant. Il n'existe pas de fonction :c:"
|
||||
"func:`PyNone_Check` pour la même raison."
|
||||
|
||||
#: ../Doc/c-api/none.rst:18
|
||||
msgid ""
|
||||
|
@ -35,9 +39,14 @@ msgid ""
|
|||
"methods. It needs to be treated just like any other object with respect to "
|
||||
"reference counts."
|
||||
msgstr ""
|
||||
"L'objet Python ``None``, exprimant l'absence de valeur. Cet objet n'a "
|
||||
"aucune méthode. Il doit être traité exactement comme les autres objets en "
|
||||
"terme de comptage de références."
|
||||
|
||||
#: ../Doc/c-api/none.rst:25
|
||||
msgid ""
|
||||
"Properly handle returning :c:data:`Py_None` from within a C function (that "
|
||||
"is, increment the reference count of ``None`` and return it.)"
|
||||
msgstr ""
|
||||
"Renvoie, de la bonne manière, :c:data:`Py_None` depuis une fonction C (c'est "
|
||||
"à dire en incrémentant les références à ``None`` avant de le donner)."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-01-29 00:24+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/objbuffer.rst:4
|
||||
msgid "Old Buffer Protocol"
|
||||
msgstr ""
|
||||
msgstr "Ancien *Buffer Protocol*"
|
||||
|
||||
#: ../Doc/c-api/objbuffer.rst:8
|
||||
msgid ""
|
||||
|
@ -30,6 +30,12 @@ msgid ""
|
|||
"you control over the lifetime of the resources acquired when a buffer is "
|
||||
"exported."
|
||||
msgstr ""
|
||||
"Ces fonctions faisaient partie de l'API de l'ancien protocol de tampons dans "
|
||||
"Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions sont "
|
||||
"toujours exposées pour simplifier le portage de code Python 2.x. Elles se "
|
||||
"comportent comme une abstraction de compatibilité du :ref:`nouveau protocole "
|
||||
"de tampons <bufferobjects>`, mais sans vous donner de contrôle sur la durée "
|
||||
"de vie des resources acquises lorsqu'un tampon est exporté."
|
||||
|
||||
#: ../Doc/c-api/objbuffer.rst:15
|
||||
msgid ""
|
||||
|
@ -38,6 +44,10 @@ msgid ""
|
|||
"`PyArg_ParseTuple` family of functions) to get a buffer view over an object, "
|
||||
"and :c:func:`PyBuffer_Release` when the buffer view can be released."
|
||||
msgstr ""
|
||||
"Il est donc recommandé d'appeler :c:func:`PyObject_GetBuffer` (ou les :ref:"
|
||||
"`codes <arg-parsing>` ``y*`` ou ``w*`` à la famille de fonctions :c:func:"
|
||||
"`PyArg_ParseTuple`) pour obtenir une vue d'un tampon sur un objet, et :c:"
|
||||
"func:`PyBuffer_Release` lorsque la vue peut être libérée."
|
||||
|
||||
#: ../Doc/c-api/objbuffer.rst:23
|
||||
msgid ""
|
||||
|
@ -62,6 +72,8 @@ msgid ""
|
|||
"Returns ``1`` if *o* supports the single-segment readable buffer interface. "
|
||||
"Otherwise returns ``0``."
|
||||
msgstr ""
|
||||
"Renvoie ``1`` si *o* gère l'interface *single-segment readable buffer*, "
|
||||
"``0`` sinon."
|
||||
|
||||
#: ../Doc/c-api/objbuffer.rst:47
|
||||
msgid ""
|
||||
|
@ -70,3 +82,8 @@ msgid ""
|
|||
"``0``, sets *buffer* to the memory location and *buffer_len* to the buffer "
|
||||
"length. Returns ``-1`` and sets a :exc:`TypeError` on error."
|
||||
msgstr ""
|
||||
"Renvoie un pointeur vers un espace mémoire dans lequel il est possible "
|
||||
"décrire. L'argument *obj* doit gérer l'interface *single-segment, character "
|
||||
"buffer*. Si tout s'est bien passé, ``0`` est renvoyé, *buffer* pointe vers "
|
||||
"l'espace mémoire, et *buffer_len* vaudra la taille du buffer. Renvoie ``-1`` "
|
||||
"et met l'exception :exc:`TypeError` en cas d'erreur."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-10-18 09:23+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,10 +19,12 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/objimpl.rst:7
|
||||
msgid "Object Implementation Support"
|
||||
msgstr ""
|
||||
msgstr "Implémentation d'objets"
|
||||
|
||||
#: ../Doc/c-api/objimpl.rst:9
|
||||
msgid ""
|
||||
"This chapter describes the functions, types, and macros used when defining "
|
||||
"new object types."
|
||||
msgstr ""
|
||||
"Ce chapitre décrit les fonctions, types, et macros utilisées pour définir de "
|
||||
"nouveaux types d'objets."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+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"
|
||||
|
@ -30,49 +30,48 @@ msgstr ""
|
|||
#: ../Doc/c-api/sequence.rst:20
|
||||
msgid ""
|
||||
"Returns the number of objects in sequence *o* on success, and ``-1`` on "
|
||||
"failure. For objects that do not provide sequence protocol, this is "
|
||||
"equivalent to the Python expression ``len(o)``."
|
||||
"failure. This is equivalent to the Python expression ``len(o)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:27
|
||||
#: ../Doc/c-api/sequence.rst:26
|
||||
msgid ""
|
||||
"Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. "
|
||||
"This is the equivalent of the Python expression ``o1 + o2``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:33
|
||||
#: ../Doc/c-api/sequence.rst:32
|
||||
msgid ""
|
||||
"Return the result of repeating sequence object *o* *count* times, or *NULL* "
|
||||
"on failure. This is the equivalent of the Python expression ``o * count``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:39
|
||||
#: ../Doc/c-api/sequence.rst:38
|
||||
msgid ""
|
||||
"Return the concatenation 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 expression ``o1 += o2``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:46
|
||||
#: ../Doc/c-api/sequence.rst:45
|
||||
msgid ""
|
||||
"Return the result of repeating sequence object *o* *count* times, or *NULL* "
|
||||
"on failure. The operation is done *in-place* when *o* supports it. This is "
|
||||
"the equivalent of the Python expression ``o *= count``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:53
|
||||
#: ../Doc/c-api/sequence.rst:52
|
||||
msgid ""
|
||||
"Return the *i*\\ th element of *o*, or *NULL* on failure. This is the "
|
||||
"equivalent of the Python expression ``o[i]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:59
|
||||
#: ../Doc/c-api/sequence.rst:58
|
||||
msgid ""
|
||||
"Return the slice of sequence object *o* between *i1* and *i2*, or *NULL* on "
|
||||
"failure. This is the equivalent of the Python expression ``o[i1:i2]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:65
|
||||
#: ../Doc/c-api/sequence.rst:64
|
||||
msgid ""
|
||||
"Assign object *v* to the *i*\\ th element of *o*. Raise an exception and "
|
||||
"return ``-1`` on failure; return ``0`` on success. This is the equivalent "
|
||||
|
@ -80,58 +79,58 @@ msgid ""
|
|||
"reference to *v*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:70
|
||||
#: ../Doc/c-api/sequence.rst:69
|
||||
msgid ""
|
||||
"If *v* is *NULL*, the element is deleted, however this feature is deprecated "
|
||||
"in favour of using :c:func:`PySequence_DelItem`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:76
|
||||
#: ../Doc/c-api/sequence.rst:75
|
||||
msgid ""
|
||||
"Delete the *i*\\ th element of object *o*. Returns ``-1`` on failure. This "
|
||||
"is the equivalent of the Python statement ``del o[i]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:82
|
||||
#: ../Doc/c-api/sequence.rst:81
|
||||
msgid ""
|
||||
"Assign the sequence object *v* to the slice in sequence object *o* from *i1* "
|
||||
"to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:88
|
||||
#: ../Doc/c-api/sequence.rst:87
|
||||
msgid ""
|
||||
"Delete the slice in sequence object *o* from *i1* to *i2*. Returns ``-1`` "
|
||||
"on failure. This is the equivalent of the Python statement ``del o[i1:i2]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:94
|
||||
#: ../Doc/c-api/sequence.rst:93
|
||||
msgid ""
|
||||
"Return the number of occurrences of *value* in *o*, that is, return the "
|
||||
"number of keys for which ``o[key] == value``. On failure, return ``-1``. "
|
||||
"This is equivalent to the Python expression ``o.count(value)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:101
|
||||
#: ../Doc/c-api/sequence.rst:100
|
||||
msgid ""
|
||||
"Determine if *o* contains *value*. If an item in *o* is equal to *value*, "
|
||||
"return ``1``, otherwise return ``0``. On error, return ``-1``. This is "
|
||||
"equivalent to the Python expression ``value in o``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:108
|
||||
#: ../Doc/c-api/sequence.rst:107
|
||||
msgid ""
|
||||
"Return the first index *i* for which ``o[i] == value``. On error, return "
|
||||
"``-1``. This is equivalent to the Python expression ``o.index(value)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:114
|
||||
#: ../Doc/c-api/sequence.rst:113
|
||||
msgid ""
|
||||
"Return a list object with the same contents as the sequence or iterable *o*, "
|
||||
"or *NULL* on failure. The returned list is guaranteed to be new. This is "
|
||||
"equivalent to the Python expression ``list(o)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:123
|
||||
#: ../Doc/c-api/sequence.rst:122
|
||||
msgid ""
|
||||
"Return a tuple object with the same contents as the arbitrary sequence *o* "
|
||||
"or *NULL* on failure. If *o* is a tuple, a new reference will be returned, "
|
||||
|
@ -139,7 +138,7 @@ msgid ""
|
|||
"is equivalent to the Python expression ``tuple(o)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:131
|
||||
#: ../Doc/c-api/sequence.rst:130
|
||||
msgid ""
|
||||
"Return the sequence *o* as a list, unless it is already a tuple or list, in "
|
||||
"which case *o* is returned. Use :c:func:`PySequence_Fast_GET_ITEM` to "
|
||||
|
@ -147,26 +146,26 @@ msgid ""
|
|||
"is not a sequence, raises :exc:`TypeError` with *m* as the message text."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:139
|
||||
#: ../Doc/c-api/sequence.rst:138
|
||||
msgid ""
|
||||
"Return the *i*\\ th element of *o*, assuming that *o* was returned by :c:"
|
||||
"func:`PySequence_Fast`, *o* is not *NULL*, and that *i* is within bounds."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:145
|
||||
#: ../Doc/c-api/sequence.rst:144
|
||||
msgid ""
|
||||
"Return the underlying array of PyObject pointers. Assumes that *o* was "
|
||||
"returned by :c:func:`PySequence_Fast` and *o* is not *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:148
|
||||
#: ../Doc/c-api/sequence.rst:147
|
||||
msgid ""
|
||||
"Note, if a list gets resized, the reallocation may relocate the items array. "
|
||||
"So, only use the underlying array pointer in contexts where the sequence "
|
||||
"cannot change."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:155
|
||||
#: ../Doc/c-api/sequence.rst:154
|
||||
msgid ""
|
||||
"Return the *i*\\ th element of *o* or *NULL* on failure. Macro form of :c:"
|
||||
"func:`PySequence_GetItem` but without checking that :c:func:"
|
||||
|
@ -174,7 +173,7 @@ msgid ""
|
|||
"indices."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sequence.rst:163
|
||||
#: ../Doc/c-api/sequence.rst:162
|
||||
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 "
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2018-01-21 23:58+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/stable.rst:7
|
||||
msgid "Stable Application Binary Interface"
|
||||
msgstr ""
|
||||
msgstr "ABI Stable"
|
||||
|
||||
#: ../Doc/c-api/stable.rst:9
|
||||
msgid ""
|
||||
|
@ -28,6 +28,10 @@ msgid ""
|
|||
"changing existing API or removing API (although some interfaces do get "
|
||||
"removed after being deprecated first)."
|
||||
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)."
|
||||
|
||||
#: ../Doc/c-api/stable.rst:14
|
||||
msgid ""
|
||||
|
@ -40,6 +44,15 @@ msgid ""
|
|||
"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."
|
||||
|
||||
#: ../Doc/c-api/stable.rst:23
|
||||
msgid ""
|
||||
|
@ -49,6 +62,12 @@ msgid ""
|
|||
"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."
|
||||
|
||||
#: ../Doc/c-api/stable.rst:29
|
||||
msgid ""
|
||||
|
@ -60,6 +79,14 @@ msgid ""
|
|||
"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."
|
||||
|
||||
#: ../Doc/c-api/stable.rst:36
|
||||
msgid ""
|
||||
|
@ -67,3 +94,7 @@ msgid ""
|
|||
"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\"*)."
|
||||
|
|
96
c-api/sys.po
96
c-api/sys.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2018-02-08 09:58+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"
|
||||
|
@ -83,74 +83,104 @@ msgid ""
|
|||
"handler instead of decoding them."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:69
|
||||
#: ../Doc/c-api/sys.rst:69 ../Doc/c-api/sys.rst:106
|
||||
msgid "Encoding, highest priority to lowest priority:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:71 ../Doc/c-api/sys.rst:108
|
||||
msgid "``UTF-8`` on macOS and Android;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:72
|
||||
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 use the ``ISO-8859-1`` encoding."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:76
|
||||
msgid "the current locale encoding (``LC_CTYPE`` locale)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:78
|
||||
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``"
|
||||
"number of wide characters excluding the null character into ``*size``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:73
|
||||
#: ../Doc/c-api/sys.rst:82
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:77
|
||||
#: ../Doc/c-api/sys.rst:86
|
||||
msgid ""
|
||||
"Decoding errors should never happen, unless there is a bug in the C library."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:80
|
||||
#: ../Doc/c-api/sys.rst:89
|
||||
msgid ""
|
||||
"Use the :c:func:`Py_EncodeLocale` function to encode the character string "
|
||||
"back to a byte string."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:85
|
||||
#: ../Doc/c-api/sys.rst:94
|
||||
msgid ""
|
||||
"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:"
|
||||
"`PyUnicode_DecodeLocaleAndSize` functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:93
|
||||
#: ../Doc/c-api/sys.rst:102
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:97
|
||||
#: ../Doc/c-api/sys.rst:109
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:113
|
||||
msgid "the current locale encoding."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:115
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:101
|
||||
#: ../Doc/c-api/sys.rst:119
|
||||
msgid ""
|
||||
"If error_pos is not ``NULL``, ``*error_pos`` is set to the index of the "
|
||||
"invalid character on encoding error, or set to ``(size_t)-1`` otherwise."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:104
|
||||
#: ../Doc/c-api/sys.rst:122
|
||||
msgid ""
|
||||
"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back "
|
||||
"to a wide character string."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:109
|
||||
#: ../Doc/c-api/sys.rst:127
|
||||
msgid ""
|
||||
"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` "
|
||||
"functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:118
|
||||
#: ../Doc/c-api/sys.rst:136
|
||||
msgid "System Functions"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:120
|
||||
#: ../Doc/c-api/sys.rst:138
|
||||
msgid ""
|
||||
"These are utility functions that make functionality from the :mod:`sys` "
|
||||
"module accessible to C code. They all work with the current interpreter "
|
||||
|
@ -158,45 +188,45 @@ msgid ""
|
|||
"state structure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:126
|
||||
#: ../Doc/c-api/sys.rst:144
|
||||
msgid ""
|
||||
"Return the object *name* from the :mod:`sys` module or *NULL* if it does not "
|
||||
"exist, without setting an exception."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:131
|
||||
#: ../Doc/c-api/sys.rst:149
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:137
|
||||
#: ../Doc/c-api/sys.rst:155
|
||||
msgid "Reset :data:`sys.warnoptions` to an empty list."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:141
|
||||
#: ../Doc/c-api/sys.rst:159
|
||||
msgid "Append *s* to :data:`sys.warnoptions`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:145
|
||||
#: ../Doc/c-api/sys.rst:163
|
||||
msgid "Append *unicode* to :data:`sys.warnoptions`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:149
|
||||
#: ../Doc/c-api/sys.rst:167
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:155
|
||||
#: ../Doc/c-api/sys.rst:173
|
||||
msgid ""
|
||||
"Write the output string described by *format* to :data:`sys.stdout`. No "
|
||||
"exceptions are raised, even if truncation occurs (see below)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:158
|
||||
#: ../Doc/c-api/sys.rst:176
|
||||
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 "
|
||||
|
@ -207,48 +237,48 @@ msgid ""
|
|||
"of digits for very large numbers."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:166
|
||||
#: ../Doc/c-api/sys.rst:184
|
||||
msgid ""
|
||||
"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message "
|
||||
"is written to the real (C level) *stdout*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:171
|
||||
#: ../Doc/c-api/sys.rst:189
|
||||
msgid ""
|
||||
"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* "
|
||||
"instead."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:176
|
||||
#: ../Doc/c-api/sys.rst:194
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:184
|
||||
#: ../Doc/c-api/sys.rst:202
|
||||
msgid ""
|
||||
"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* "
|
||||
"instead."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:191
|
||||
#: ../Doc/c-api/sys.rst:209
|
||||
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`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:198
|
||||
#: ../Doc/c-api/sys.rst:216
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:208
|
||||
#: ../Doc/c-api/sys.rst:226
|
||||
msgid "Process Control"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:215
|
||||
#: ../Doc/c-api/sys.rst:233
|
||||
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 "
|
||||
|
@ -258,18 +288,18 @@ msgid ""
|
|||
"file:`core` file."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:229
|
||||
#: ../Doc/c-api/sys.rst:247
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:233
|
||||
#: ../Doc/c-api/sys.rst:251
|
||||
msgid "Errors from finalization no longer ignored."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/sys.rst:243
|
||||
#: ../Doc/c-api/sys.rst:261
|
||||
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 "
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/type.rst:6
|
||||
msgid "Type Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets type"
|
||||
|
||||
#: ../Doc/c-api/type.rst:13
|
||||
msgid "The C structure of the objects used to describe built-in types."
|
||||
|
|
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/typeobj.rst:6
|
||||
msgid "Type Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets Type"
|
||||
|
||||
#: ../Doc/c-api/typeobj.rst:8
|
||||
msgid ""
|
||||
|
@ -761,7 +761,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/typeobj.rst:611
|
||||
msgid "Constant"
|
||||
msgstr ""
|
||||
msgstr "Constante"
|
||||
|
||||
#: ../Doc/c-api/typeobj.rst:611
|
||||
msgid "Comparison"
|
||||
|
|
426
c-api/unicode.po
426
c-api/unicode.po
File diff suppressed because it is too large
Load Diff
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-10-18 09:03+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -28,3 +28,7 @@ msgid ""
|
|||
"C, and parsing function arguments and constructing Python values from C "
|
||||
"values."
|
||||
msgstr ""
|
||||
"Les fonctions de ce chapitre sont utilitaires, certaines aident à rendre le "
|
||||
"code en C plus portable, d'autres à utiliser des modules Python depuis du C, "
|
||||
"parser des arguments de fonctions, ou encore construire des valeurs Python à "
|
||||
"partir de valeurs C."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -173,10 +173,11 @@ 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."
|
||||
"`sys.getfilesystemencoding`). Returns ``0`` at EOF or a negative number "
|
||||
"upon failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:149
|
||||
#: ../Doc/c-api/veryhigh.rst:150
|
||||
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 "
|
||||
|
@ -186,7 +187,7 @@ msgid ""
|
|||
"the Python source code."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:160
|
||||
#: ../Doc/c-api/veryhigh.rst:161
|
||||
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 "
|
||||
|
@ -197,34 +198,34 @@ msgid ""
|
|||
"line-editing and tab-completion features."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:169
|
||||
#: ../Doc/c-api/veryhigh.rst:170
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:172
|
||||
#: ../Doc/c-api/veryhigh.rst:173
|
||||
msgid ""
|
||||
"The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:"
|
||||
"`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :"
|
||||
"c:func:`PyMem_Realloc`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:180
|
||||
#: ../Doc/c-api/veryhigh.rst:181
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:"
|
||||
"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to "
|
||||
"*NULL* and *flags* set to ``0``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:187
|
||||
#: ../Doc/c-api/veryhigh.rst:188
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:"
|
||||
"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to "
|
||||
"*NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:194
|
||||
#: ../Doc/c-api/veryhigh.rst:195
|
||||
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 "
|
||||
|
@ -233,25 +234,25 @@ msgid ""
|
|||
"(:func:`sys.getfilesystemencoding`)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:203
|
||||
#: ../Doc/c-api/veryhigh.rst:204
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` "
|
||||
"below, leaving *flags* set to ``0``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:209
|
||||
#: ../Doc/c-api/veryhigh.rst:210
|
||||
msgid ""
|
||||
"Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python "
|
||||
"source code is read from *fp* instead of an in-memory string."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:215
|
||||
#: ../Doc/c-api/veryhigh.rst:216
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving "
|
||||
"*flags* set to *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:221
|
||||
#: ../Doc/c-api/veryhigh.rst:222
|
||||
msgid ""
|
||||
"Execute Python source code from *str* in the context specified by the "
|
||||
"objects *globals* and *locals* with the compiler flags specified by "
|
||||
|
@ -260,31 +261,31 @@ msgid ""
|
|||
"token that should be used to parse the source code."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:227
|
||||
#: ../Doc/c-api/veryhigh.rst:228
|
||||
msgid ""
|
||||
"Returns the result of executing the code as a Python object, or *NULL* if an "
|
||||
"exception was raised."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:233
|
||||
#: ../Doc/c-api/veryhigh.rst:234
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
|
||||
"*closeit* set to ``0`` and *flags* set to *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:239
|
||||
#: ../Doc/c-api/veryhigh.rst:240
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
|
||||
"*flags* set to *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:245
|
||||
#: ../Doc/c-api/veryhigh.rst:246
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
|
||||
"*closeit* set to ``0``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:251
|
||||
#: ../Doc/c-api/veryhigh.rst:252
|
||||
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 "
|
||||
|
@ -293,19 +294,19 @@ msgid ""
|
|||
"func:`PyRun_FileExFlags` returns."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:260
|
||||
#: ../Doc/c-api/veryhigh.rst:261
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, "
|
||||
"leaving *flags* set to *NULL*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:266
|
||||
#: ../Doc/c-api/veryhigh.rst:267
|
||||
msgid ""
|
||||
"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, "
|
||||
"with *optimize* set to ``-1``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:272
|
||||
#: ../Doc/c-api/veryhigh.rst:273
|
||||
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 "
|
||||
|
@ -316,7 +317,7 @@ msgid ""
|
|||
"returns *NULL* if the code cannot be parsed or compiled."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:280
|
||||
#: ../Doc/c-api/veryhigh.rst:281
|
||||
msgid ""
|
||||
"The integer *optimize* specifies the optimization level of the compiler; a "
|
||||
"value of ``-1`` selects the optimization level of the interpreter as given "
|
||||
|
@ -325,20 +326,20 @@ msgid ""
|
|||
"or ``2`` (docstrings are removed too)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:291
|
||||
#: ../Doc/c-api/veryhigh.rst:292
|
||||
msgid ""
|
||||
"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string "
|
||||
"decoded from the filesystem encoding (:func:`os.fsdecode`)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:298
|
||||
#: ../Doc/c-api/veryhigh.rst:299
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:305
|
||||
#: ../Doc/c-api/veryhigh.rst:306
|
||||
msgid ""
|
||||
"Evaluate a precompiled code object, given a particular environment for its "
|
||||
"evaluation. This environment consists of a dictionary of global variables, "
|
||||
|
@ -347,19 +348,19 @@ msgid ""
|
|||
"only_parameter>` arguments and a closure tuple of cells."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:314
|
||||
#: ../Doc/c-api/veryhigh.rst:315
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:320
|
||||
#: ../Doc/c-api/veryhigh.rst:321
|
||||
msgid ""
|
||||
"Evaluate an execution frame. This is a simplified interface to :c:func:"
|
||||
"`PyEval_EvalFrameEx`, for backward compatibility."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:326
|
||||
#: ../Doc/c-api/veryhigh.rst:327
|
||||
msgid ""
|
||||
"This is the main, unvarnished function of Python interpretation. It is "
|
||||
"literally 2000 lines long. The code object associated with the execution "
|
||||
|
@ -369,39 +370,39 @@ msgid ""
|
|||
"`~generator.throw` methods of generator objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:333
|
||||
#: ../Doc/c-api/veryhigh.rst:334
|
||||
msgid ""
|
||||
"This function now includes a debug assertion to help ensure that it does not "
|
||||
"silently discard an active exception."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:340
|
||||
#: ../Doc/c-api/veryhigh.rst:341
|
||||
msgid ""
|
||||
"This function changes the flags of the current evaluation frame, and returns "
|
||||
"true on success, false on failure."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:348
|
||||
#: ../Doc/c-api/veryhigh.rst:349
|
||||
msgid ""
|
||||
"The start symbol from the Python grammar for isolated expressions; for use "
|
||||
"with :c:func:`Py_CompileString`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:356
|
||||
#: ../Doc/c-api/veryhigh.rst:357
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:365
|
||||
#: ../Doc/c-api/veryhigh.rst:366
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:372
|
||||
#: ../Doc/c-api/veryhigh.rst:373
|
||||
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 "
|
||||
|
@ -409,14 +410,14 @@ msgid ""
|
|||
"case, ``from __future__ import`` can modify *flags*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:377
|
||||
#: ../Doc/c-api/veryhigh.rst:378
|
||||
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 ""
|
||||
|
||||
#: ../Doc/c-api/veryhigh.rst:388
|
||||
#: ../Doc/c-api/veryhigh.rst:389
|
||||
msgid ""
|
||||
"This bit can be set in *flags* to cause division operator ``/`` to be "
|
||||
"interpreted as \"true division\" according to :pep:`238`."
|
||||
|
|
11
copyright.po
11
copyright.po
|
@ -3,14 +3,13 @@
|
|||
# This file is distributed under the same license as the Python package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2018-02-08 09:58+0100\n"
|
||||
"PO-Revision-Date: 2017-12-01 08:54+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -26,9 +25,9 @@ msgid "Python and this documentation is:"
|
|||
msgstr "Python et cette documentation sont :"
|
||||
|
||||
#: ../Doc/copyright.rst:7
|
||||
msgid "Copyright © 2001-2016 Python Software Foundation. All rights reserved."
|
||||
msgid "Copyright © 2001-2018 Python Software Foundation. All rights reserved."
|
||||
msgstr ""
|
||||
"Copyright © 2001-2016 Python Software Foundation. Tous droits réservés."
|
||||
"Copyright © 2001-2018 Python Software Foundation. Tout droits réservés."
|
||||
|
||||
#: ../Doc/copyright.rst:9
|
||||
msgid "Copyright © 2000 BeOpen.com. All rights reserved."
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distributing/index.rst:5
|
||||
msgid "Distributing Python Modules"
|
||||
msgstr "Distribuer des Modules Python"
|
||||
msgstr "Distribuer des modules Python"
|
||||
|
||||
#: ../Doc/distributing/index.rst:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: ../Doc/distributing/index.rst:7
|
||||
msgid "distutils-sig@python.org"
|
||||
|
@ -247,7 +251,7 @@ msgid ""
|
|||
"The Python Packaging User Guide includes more details on the `currently "
|
||||
"recommended tools`_."
|
||||
msgstr ""
|
||||
" Le *Python Packaging User Guide* contient plus de détails sur les `(en) "
|
||||
"Le *Python Packaging User Guide* contient plus de détails sur les `(en) "
|
||||
"outils actuellement recommandés <currently recommended tools_>`_."
|
||||
|
||||
#: ../Doc/distributing/index.rst:117
|
||||
|
|
|
@ -459,7 +459,7 @@ msgstr ""
|
|||
"des slashs) dans un souci de portabilité. Les fichiers de code source "
|
||||
"peuvent être du C, C++, SWIG (.i), des fichiers de ressources spécifiques à "
|
||||
"la plateforme ou tout autre reconnu par la commande :command:`build_ext` "
|
||||
"comme source d'une extension Python"
|
||||
"comme source d'une extension Python."
|
||||
|
||||
#: ../Doc/distutils/apiref.rst:196
|
||||
msgid "*include_dirs*"
|
||||
|
@ -666,7 +666,7 @@ msgstr ""
|
|||
#: ../Doc/distutils/apiref.rst:334
|
||||
msgid "Determine the default compiler to use for the given platform."
|
||||
msgstr ""
|
||||
"Détermine le compilateur par défaut a utiliser par une plateforme donnée"
|
||||
"Détermine le compilateur par défaut a utiliser par une plateforme donnée."
|
||||
|
||||
#: ../Doc/distutils/apiref.rst:336
|
||||
msgid ""
|
||||
|
@ -1343,7 +1343,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/apiref.rst:879
|
||||
msgid "Added support for the ``xztar`` format."
|
||||
msgstr "Ajout du support des fichiers ``xztar``"
|
||||
msgstr "Ajout du support des fichiers ``xztar``."
|
||||
|
||||
#: ../Doc/distutils/apiref.rst:885
|
||||
msgid ""
|
||||
|
|
|
@ -7,19 +7,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:31+0200\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:34+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:5
|
||||
msgid "Creating Built Distributions"
|
||||
msgstr "Créer une Distribution Compilée"
|
||||
msgstr "Créer une distribution compilée"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:7
|
||||
msgid ""
|
||||
|
@ -35,7 +35,7 @@ msgstr ""
|
|||
"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à utiliseé dans Python (et \"installateur\" est un terme "
|
||||
"spécifique au monde des systèmes de bureau). "
|
||||
"spécifique au monde des systèmes de bureau)."
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:14
|
||||
msgid ""
|
||||
|
@ -85,7 +85,7 @@ msgid ""
|
|||
"tree::"
|
||||
msgstr ""
|
||||
"Pour prendre un exemple simple, si je lance la commande suivante dans les "
|
||||
"sources de Distutils ::"
|
||||
"sources de Distutils ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:37
|
||||
msgid ""
|
||||
|
@ -282,15 +282,15 @@ msgstr "``msi``"
|
|||
|
||||
#: ../Doc/distutils/builtdist.rst:100
|
||||
msgid "Microsoft Installer."
|
||||
msgstr "Installateur Microsoft"
|
||||
msgstr "Installateur Microsoft."
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:103
|
||||
msgid "Added support for the ``xztar`` format."
|
||||
msgstr "Ajout du support des fichiers ``xztar``"
|
||||
msgstr "Ajout du support des fichiers ``xztar``."
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:107
|
||||
msgid "Notes:"
|
||||
msgstr "Notes : "
|
||||
msgstr "Notes :"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:110
|
||||
msgid "default on Unix"
|
||||
|
@ -378,7 +378,7 @@ msgid ""
|
|||
"commands."
|
||||
msgstr ""
|
||||
"Le chapitre suivant donne des détails individuel sur les commandes :command:"
|
||||
"`bdist_\\*` "
|
||||
"`bdist_\\*`."
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:163
|
||||
msgid "Creating RPM packages"
|
||||
|
@ -408,7 +408,7 @@ msgid ""
|
|||
"command:`bdist_rpm` command::"
|
||||
msgstr ""
|
||||
"La manière habituelle de créer un RPM de votre module est d'utiliser la "
|
||||
"commande :command:`bdist_rpm`::"
|
||||
"commande :command:`bdist_rpm` ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:177
|
||||
msgid "or the :command:`bdist` command with the :option:`!--format` option::"
|
||||
|
@ -424,7 +424,7 @@ msgstr ""
|
|||
"La première vous permet de spécifier des options spécifique à RPM; la "
|
||||
"dernière vous permet de spécifier plusieurs format d'un seul coup. Si vous "
|
||||
"avez besoin d'utiliser les deux, vous pouvez explicitement spécifier "
|
||||
"plusieurs commande :command:`bdist_\\*` et leurs options."
|
||||
"plusieurs commande :command:`bdist_\\*` et leurs options ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:188
|
||||
msgid ""
|
||||
|
@ -523,7 +523,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/builtdist.rst:220
|
||||
msgid ":command:`bdist_rpm` option"
|
||||
msgstr "Option de :command:`bdist_rpm` "
|
||||
msgstr "Option de :command:`bdist_rpm`"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:220
|
||||
msgid "default value"
|
||||
|
@ -717,7 +717,7 @@ msgid ""
|
|||
"installers is usually as easy as running::"
|
||||
msgstr ""
|
||||
"Etant 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::"
|
||||
"un installateur Windows est généralement facile, il suffit de lancer ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:310
|
||||
msgid "or the :command:`bdist` command with the :option:`!--formats` option::"
|
||||
|
@ -810,7 +810,7 @@ msgid ""
|
|||
"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::"
|
||||
"supporte aussi cette option, donc la commande ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:364
|
||||
msgid ""
|
||||
|
@ -818,7 +818,7 @@ msgid ""
|
|||
"Windows."
|
||||
msgstr ""
|
||||
"créera un installateur executable 64 bits depuis votre version 32 bits de "
|
||||
"Windows. "
|
||||
"Windows."
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:366
|
||||
msgid ""
|
||||
|
@ -913,7 +913,7 @@ msgstr ""
|
|||
"Cette fonction peut être utilisée pour extraire des localisations de "
|
||||
"fichiers spéciaux sous Windows comme un menu démarrer ou le Bureau. Cela "
|
||||
"renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des "
|
||||
"chaines suivantes::"
|
||||
"chaines suivantes ::"
|
||||
|
||||
#: ../Doc/distutils/builtdist.rst:434
|
||||
msgid "If the folder cannot be retrieved, :exc:`OSError` is raised."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-03-21 00:48+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -41,7 +41,8 @@ msgstr ":command:`install_data`"
|
|||
|
||||
#: ../Doc/distutils/commandref.rst:37
|
||||
msgid "This command installs all data files provided with the distribution."
|
||||
msgstr "Cette commande installe tout les fichier fournit avec la distribution"
|
||||
msgstr ""
|
||||
"Cette commande installe tous les fichiers fournis avec la distribution."
|
||||
|
||||
#: ../Doc/distutils/commandref.rst:43
|
||||
msgid ":command:`install_scripts`"
|
||||
|
@ -49,11 +50,12 @@ msgstr ":command:`install_scripts`"
|
|||
|
||||
#: ../Doc/distutils/commandref.rst:45
|
||||
msgid "This command installs all (Python) scripts in the distribution."
|
||||
msgstr "Cette commande installe tout les scripts (Python) dans la distribution"
|
||||
msgstr ""
|
||||
"Cette commande installe tout les scripts (Python) dans la distribution."
|
||||
|
||||
#: ../Doc/distutils/commandref.rst:54
|
||||
msgid "Creating a source distribution: the :command:`sdist` command"
|
||||
msgstr "Créer une distribution source: la commande :command:`sdist` "
|
||||
msgstr "Créer une distribution source: la commande :command:`sdist`"
|
||||
|
||||
#: ../Doc/distutils/commandref.rst:58
|
||||
msgid "The manifest template commands are:"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -64,10 +64,10 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:39
|
||||
msgid "The basic syntax of the configuration file is simple::"
|
||||
msgid "The basic syntax of the configuration file is simple:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:45
|
||||
#: ../Doc/distutils/configfile.rst:47
|
||||
msgid ""
|
||||
"where *command* is one of the Distutils commands (e.g. :command:`build_py`, :"
|
||||
"command:`install`), and *option* is one of the options that command "
|
||||
|
@ -78,37 +78,37 @@ msgid ""
|
|||
"by indenting the continuation lines."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:53
|
||||
#: ../Doc/distutils/configfile.rst:55
|
||||
msgid ""
|
||||
"You can find out the list of options supported by a particular command with "
|
||||
"the universal :option:`!--help` option, e.g. ::"
|
||||
"the universal :option:`!--help` option, e.g."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:69
|
||||
#: ../Doc/distutils/configfile.rst:73
|
||||
msgid ""
|
||||
"Note that an option spelled :option:`!--foo-bar` on the command-line is "
|
||||
"spelled ``foo_bar`` in configuration files."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:74
|
||||
#: ../Doc/distutils/configfile.rst:78
|
||||
msgid ""
|
||||
"For example, say you want your extensions to be built \"in-place\"---that "
|
||||
"is, you have an extension :mod:`pkg.ext`, and you want the compiled "
|
||||
"extension file (:file:`ext.so` on Unix, say) to be put in the same source "
|
||||
"directory as your pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. "
|
||||
"You can always use the :option:`!--inplace` option on the command-line to "
|
||||
"ensure this::"
|
||||
"ensure this:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:82
|
||||
#: ../Doc/distutils/configfile.rst:88
|
||||
msgid ""
|
||||
"But this requires that you always specify the :command:`build_ext` command "
|
||||
"explicitly, and remember to provide :option:`!--inplace`. An easier way is "
|
||||
"to \"set and forget\" this option, by encoding it in :file:`setup.cfg`, the "
|
||||
"configuration file for this distribution::"
|
||||
"configuration file for this distribution:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:90
|
||||
#: ../Doc/distutils/configfile.rst:98
|
||||
msgid ""
|
||||
"This will affect all builds of this module distribution, whether or not you "
|
||||
"explicitly specify :command:`build_ext`. If you include :file:`setup.cfg` "
|
||||
|
@ -121,7 +121,7 @@ msgid ""
|
|||
"always a bad idea, though.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:99
|
||||
#: ../Doc/distutils/configfile.rst:107
|
||||
msgid ""
|
||||
"Another example: certain commands take a lot of options that don't change "
|
||||
"from run to run; for example, :command:`bdist_rpm` needs to know everything "
|
||||
|
@ -130,30 +130,30 @@ msgid ""
|
|||
"generated by the Distutils (such as the list of files installed). But some "
|
||||
"of it has to be supplied as options to :command:`bdist_rpm`, which would be "
|
||||
"very tedious to do on the command-line for every run. Hence, here is a "
|
||||
"snippet from the Distutils' own :file:`setup.cfg`::"
|
||||
"snippet from the Distutils' own :file:`setup.cfg`:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:117
|
||||
#: ../Doc/distutils/configfile.rst:127
|
||||
msgid ""
|
||||
"Note that the ``doc_files`` option is simply a whitespace-separated string "
|
||||
"split across multiple lines for readability."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:124
|
||||
#: ../Doc/distutils/configfile.rst:134
|
||||
msgid ":ref:`inst-config-syntax` in \"Installing Python Modules\""
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:124
|
||||
#: ../Doc/distutils/configfile.rst:134
|
||||
msgid ""
|
||||
"More information on the configuration files is available in the manual for "
|
||||
"system administrators."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:129
|
||||
#: ../Doc/distutils/configfile.rst:139
|
||||
msgid "Footnotes"
|
||||
msgstr "Notes"
|
||||
|
||||
#: ../Doc/distutils/configfile.rst:130
|
||||
#: ../Doc/distutils/configfile.rst:140
|
||||
msgid ""
|
||||
"This ideal probably won't be achieved until auto-configuration is fully "
|
||||
"supported by the Distutils."
|
||||
|
|
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2017-12-14 08:45+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,11 +19,19 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/index.rst:5
|
||||
msgid "Distributing Python Modules (Legacy version)"
|
||||
msgstr ""
|
||||
msgstr "Distribuer des modules Python (Version historique)"
|
||||
|
||||
#: ../Doc/distutils/index.rst:0
|
||||
msgid "Authors"
|
||||
msgstr "Auteurs"
|
||||
|
||||
#: ../Doc/distutils/index.rst:7
|
||||
msgid "Greg Ward, Anthony Baxter"
|
||||
msgstr ""
|
||||
msgstr "Greg Ward, Anthony Baxter"
|
||||
|
||||
#: ../Doc/distutils/index.rst:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: ../Doc/distutils/index.rst:8
|
||||
msgid "distutils-sig@python.org"
|
||||
|
@ -31,11 +39,11 @@ msgstr "distutils-sig@python.org"
|
|||
|
||||
#: ../Doc/distutils/index.rst:12
|
||||
msgid ":ref:`distributing-index`"
|
||||
msgstr ""
|
||||
msgstr ":ref:`distributing-index`"
|
||||
|
||||
#: ../Doc/distutils/index.rst:13
|
||||
msgid "The up to date module distribution documentations"
|
||||
msgstr ""
|
||||
msgstr "La documentation actuelle de distribution de modules"
|
||||
|
||||
#: ../Doc/distutils/index.rst:15
|
||||
msgid ""
|
||||
|
@ -44,6 +52,11 @@ msgid ""
|
|||
"Distutils to make Python modules and extensions easily available to a wider "
|
||||
"audience with very little overhead for build/release/install mechanics."
|
||||
msgstr ""
|
||||
"Ce document décrit les outils de distribution de Python (\"Distutils\") du "
|
||||
"point de vue d'un développeur de modules. Il décrit comment utiliser "
|
||||
"`Distutils` pour rendre des modules et extensions Python disponnible à une "
|
||||
"large audience, simplement, avec un faible surcoût sur les mécaniques de "
|
||||
"construction, déploiement et installation."
|
||||
|
||||
#: ../Doc/distutils/index.rst:22
|
||||
msgid ""
|
||||
|
@ -53,3 +66,8 @@ msgid ""
|
|||
"recommendations section <https://packaging.python.org/en/latest/current/>`__ "
|
||||
"in the Python Packaging User Guide for more information."
|
||||
msgstr ""
|
||||
"Ce guide ne couvre que les outils de base, fournis avec cette version de "
|
||||
"Python, pour construire et distribuer des extensions. D'autres outils "
|
||||
"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick "
|
||||
"recommendations section <https://packaging.python.org/en/latest/current/>`__ "
|
||||
"dans le *Python Packaging User Guide* pour plus d'informations."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -298,10 +298,9 @@ msgstr ""
|
|||
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 "
|
||||
"module distributions are NumPy, SciPy, PIL (the Python Imaging Library), or "
|
||||
"mxBase. (This would be called a *package*, except that term is already "
|
||||
"taken in the Python context: a single module distribution may contain zero, "
|
||||
"one, or many Python packages.)"
|
||||
"module distributions are NumPy, SciPy, Pillow, or mxBase. (This would be "
|
||||
"called a *package*, except that term is already taken in the Python context: "
|
||||
"a single module distribution may contain zero, one, or many Python packages.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/introduction.rst:203
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -214,96 +214,96 @@ msgid ""
|
|||
"existence of a :file:`.pypirc` file at the location :file:`$HOME/.pypirc`. "
|
||||
"If this file exists, the command uses the username, password, and repository "
|
||||
"URL configured in the file. The format of a :file:`.pypirc` file is as "
|
||||
"follows::"
|
||||
"follows:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:170
|
||||
#: ../Doc/distutils/packageindex.rst:172
|
||||
msgid ""
|
||||
"The *distutils* section defines an *index-servers* variable that lists the "
|
||||
"name of all sections describing a repository."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:173
|
||||
#: ../Doc/distutils/packageindex.rst:175
|
||||
msgid "Each section describing a repository defines three variables:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:175
|
||||
#: ../Doc/distutils/packageindex.rst:177
|
||||
msgid "*repository*, that defines the url of the PyPI server. Defaults to"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:176
|
||||
#: ../Doc/distutils/packageindex.rst:178
|
||||
msgid "``https://upload.pypi.org/legacy/``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:177
|
||||
#: ../Doc/distutils/packageindex.rst:179
|
||||
msgid "*username*, which is the registered username on the PyPI server."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:179
|
||||
#: ../Doc/distutils/packageindex.rst:181
|
||||
msgid "*password*, that will be used to authenticate. If omitted the user"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:179
|
||||
#: ../Doc/distutils/packageindex.rst:181
|
||||
msgid "will be prompt to type it when needed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:181
|
||||
#: ../Doc/distutils/packageindex.rst:183
|
||||
msgid ""
|
||||
"If you want to define another server a new section can be created and listed "
|
||||
"in the *index-servers* variable::"
|
||||
"in the *index-servers* variable:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:199
|
||||
#: ../Doc/distutils/packageindex.rst:203
|
||||
msgid ""
|
||||
"This allows the :command:`register` and :command:`upload` commands to be "
|
||||
"called with the ``--repository`` option as described in :ref:`package-"
|
||||
"cmdoptions`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:203
|
||||
#: ../Doc/distutils/packageindex.rst:207
|
||||
msgid ""
|
||||
"Specifically, you might want to add the `PyPI Test Repository <https://wiki."
|
||||
"python.org/moin/TestPyPI>`_ to your ``.pypirc`` to facilitate testing before "
|
||||
"doing your first upload to ``PyPI`` itself."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:211
|
||||
#: ../Doc/distutils/packageindex.rst:215
|
||||
msgid "PyPI package display"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:213
|
||||
#: ../Doc/distutils/packageindex.rst:217
|
||||
msgid ""
|
||||
"The ``long_description`` field plays a special role at PyPI. It is used by "
|
||||
"the server to display a home page for the registered package."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:216
|
||||
#: ../Doc/distutils/packageindex.rst:220
|
||||
msgid ""
|
||||
"If you use the `reStructuredText <http://docutils.sourceforge.net/rst."
|
||||
"html>`_ syntax for this field, PyPI will parse it and display an HTML output "
|
||||
"for the package home page."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:220
|
||||
#: ../Doc/distutils/packageindex.rst:224
|
||||
msgid ""
|
||||
"The ``long_description`` field can be attached to a text file located in the "
|
||||
"package::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:231
|
||||
#: ../Doc/distutils/packageindex.rst:235
|
||||
msgid ""
|
||||
"In that case, :file:`README.txt` is a regular reStructuredText text file "
|
||||
"located in the root of the package besides :file:`setup.py`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:234
|
||||
#: ../Doc/distutils/packageindex.rst:238
|
||||
msgid ""
|
||||
"To prevent registering broken reStructuredText content, you can use the :"
|
||||
"program:`rst2html` program that is provided by the :mod:`docutils` package "
|
||||
"and check the ``long_description`` from the command line:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:242
|
||||
#: ../Doc/distutils/packageindex.rst:246
|
||||
msgid ""
|
||||
":mod:`docutils` will display a warning if there's something wrong with your "
|
||||
"syntax. Because PyPI applies additional checks (e.g. by passing ``--no-"
|
||||
|
|
|
@ -490,7 +490,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/setupscript.rst:398 ../Doc/distutils/setupscript.rst:416
|
||||
msgid "Explanation"
|
||||
msgstr ""
|
||||
msgstr "Explication"
|
||||
|
||||
#: ../Doc/distutils/setupscript.rst:400
|
||||
msgid "``==1.0``"
|
||||
|
@ -868,7 +868,7 @@ msgstr "\\(6)"
|
|||
|
||||
#: ../Doc/distutils/setupscript.rst:597
|
||||
msgid "Notes:"
|
||||
msgstr "Notes : "
|
||||
msgstr "Notes :"
|
||||
|
||||
#: ../Doc/distutils/setupscript.rst:600
|
||||
msgid "These fields are required."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-05-25 22:44+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:34+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/sourcedist.rst:5
|
||||
msgid "Creating a Source Distribution"
|
||||
msgstr "Créer une Distribution Source"
|
||||
msgstr "Créer une distribution source"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:7
|
||||
msgid ""
|
||||
|
@ -48,6 +48,8 @@ msgid ""
|
|||
"You can specify as many formats as you like using the :option:`!--formats` "
|
||||
"option, for example::"
|
||||
msgstr ""
|
||||
"Vous pouvez donner autant de formats que necessaire via l'option :option:`!--"
|
||||
"formats`, par exemple ::"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:22
|
||||
msgid "to create a gzipped tarball and a zip file. The available formats are:"
|
||||
|
@ -129,11 +131,11 @@ msgstr "Fichier tar (:file:`.tar`)"
|
|||
|
||||
#: ../Doc/distutils/sourcedist.rst:44
|
||||
msgid "Added support for the ``xztar`` format."
|
||||
msgstr "Ajout du support des fichiers ``xztar``"
|
||||
msgstr "Ajout du support des fichiers ``xztar``."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:47
|
||||
msgid "Notes:"
|
||||
msgstr "Notes : "
|
||||
msgstr "Notes :"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:50
|
||||
msgid "default on Windows"
|
||||
|
@ -174,7 +176,7 @@ msgstr ""
|
|||
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*::"
|
||||
"par *root* ::"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:75
|
||||
msgid "Specifying the files to distribute"
|
||||
|
@ -281,7 +283,7 @@ msgstr ""
|
|||
"un nom de fichier par ligne, uniquement des fichiers normaux (ou leur lien "
|
||||
"symbolique). Si vous fournissez votre propre :file:`MANIFEST`, vous devez "
|
||||
"tout spécifier: le groupe de fichier par défaut décrit au dessus ne sera pas "
|
||||
"inclu automatiquement dans ce cas"
|
||||
"inclu automatiquement dans ce cas."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:120
|
||||
msgid ""
|
||||
|
@ -299,7 +301,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les fichiers :file:`MANIFEST` commence avec un commentaire indiquant qu'ils "
|
||||
"sont générés. Les fichiers sans ce commentaire ne sont pas réécrits ou "
|
||||
"supprimés"
|
||||
"supprimés."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:129
|
||||
msgid ""
|
||||
|
@ -315,6 +317,9 @@ msgid ""
|
|||
"a set of files to include or exclude from the source distribution. For an "
|
||||
"example, again we turn to the Distutils' own manifest template:"
|
||||
msgstr ""
|
||||
"Le modèle de manifeste a une commande par ligne, où chaque commande spécifie "
|
||||
"un ensemble de fichiers à inclure ou à exclure de la distribution source. "
|
||||
"Par exemple, regardons encore le manifest de Distutils :"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:144
|
||||
msgid ""
|
||||
|
@ -328,6 +333,16 @@ msgid ""
|
|||
"There are several other commands available in the manifest template mini-"
|
||||
"language; see section :ref:`sdist-cmd`."
|
||||
msgstr ""
|
||||
"L'intention doit être assez claire : inclure tous les fichiers à la racine "
|
||||
"de la distribution correpondant à :file:`*.txt`, tous les fichiers n'importe "
|
||||
"où dans le dossier :file:`examples` correpondant à :file:`\\*.txt` ou :file:`"
|
||||
"\\*.py`, et exclus tous les dossier correspondant à :file:`examples/sample?/"
|
||||
"build`. Tout ceci est fait **après** l'ensemble d'inclusions standards, vous "
|
||||
"pouvez donc exclure des fichiers précédamment inclus en utilisant une "
|
||||
"instruction explicite dans le manifeste. (Vous pouvez aussi utiliser "
|
||||
"l'option :option:`!--no-defaults` pour désactiver complètement les "
|
||||
"inclusions standards). Il existe d'autres commandes dans le langage du "
|
||||
"fichier manifeste, consultez le chapitre :ref:`sdist-cmd`."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:154
|
||||
msgid ""
|
||||
|
@ -372,6 +387,9 @@ msgid ""
|
|||
"defaults` option, and you can disable the standard exclude set with :option:"
|
||||
"`!--no-prune`."
|
||||
msgstr ""
|
||||
"Vous pouvez désactiver l'ensemble des fichiers inclus par défaut en "
|
||||
"utilisant l'option :option:`!--no-defaults`, ainsi que désactiver les "
|
||||
"exclusions standards avec l'option :option:`!--no-prune`."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:172
|
||||
msgid ""
|
||||
|
@ -390,7 +408,7 @@ msgid ""
|
|||
"two directories were mentioned in the ``packages`` option in the setup "
|
||||
"script---see section :ref:`setup-script`)"
|
||||
msgstr ""
|
||||
"inclure tous les fichier source Python dans les sous-dossiers :file:"
|
||||
"inclure tous les fichiers source Python dans les sous-dossiers :file:"
|
||||
"`distutils` et :file:`distutils/command` (parce que des packages "
|
||||
"correspondant à ces deux dossiers ont été mentionnés dans l'argument "
|
||||
"``packages`` du script d'installation ---voir le chapitre :ref:`setup-"
|
||||
|
@ -459,7 +477,7 @@ msgstr ""
|
|||
"dans le modèle manifeste doivent toujours être séparés par des slash; "
|
||||
"Distutils s'occupera de les convertir a la représentation standard de votre "
|
||||
"plateforme. De cette manière, le modèle manifeste est portable sur tout "
|
||||
"système d'exploitation"
|
||||
"système d'exploitation."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:210
|
||||
msgid "Manifest-related options"
|
||||
|
@ -513,6 +531,9 @@ msgid ""
|
|||
"option:`!--no-defaults` and :option:`!--no-prune` to disable the standard "
|
||||
"\"include\" and \"exclude\" sets."
|
||||
msgstr ""
|
||||
"Il existe plusieurs options pour modifier ce comportement. D'abord utilisez "
|
||||
"les options :option:`!--no-defaults` et :option:`!--no-prune` pour "
|
||||
"désactiver les inclusions et exclusions standards."
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:231
|
||||
msgid ""
|
||||
|
@ -520,8 +541,10 @@ msgid ""
|
|||
"source distribution::"
|
||||
msgstr ""
|
||||
"Deuxièmement, si vous voulez (ré)généré le manifeste, mais pas créer la "
|
||||
"distribution source ::"
|
||||
"distribution source ::"
|
||||
|
||||
#: ../Doc/distutils/sourcedist.rst:236
|
||||
msgid ":option:`!-o` is a shortcut for :option:`!--manifest-only`."
|
||||
msgstr ""
|
||||
"L'option :option:`!-o` est un raccourci pour l'option :option:`!--manifest-"
|
||||
"only`."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-10-18 09:24+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,9 +19,10 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/uploading.rst:5
|
||||
msgid "Uploading Packages to the Package Index"
|
||||
msgstr ""
|
||||
msgstr "Téléverser des paquets dans *Python Package Index*"
|
||||
|
||||
#: ../Doc/distutils/uploading.rst:7
|
||||
msgid ""
|
||||
"The contents of this page have moved to the section :ref:`package-index`."
|
||||
msgstr ""
|
||||
"Le contenu de cette page à déménagé dans la section :ref:`package-index`."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-11-07 23:22+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -27,7 +27,7 @@ msgid ""
|
|||
"``.pyd`` on Windows), which exports an *initialization function*."
|
||||
msgstr ""
|
||||
"Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur "
|
||||
"Linux, un ``.pyd`` sur windows), qui expose une *fonction d'initialisation*."
|
||||
"Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*."
|
||||
|
||||
#: ../Doc/extending/building.rst:12
|
||||
msgid ""
|
||||
|
@ -80,6 +80,12 @@ msgid ""
|
|||
"function corresponding to the filename is found. See the *\"Multiple modules "
|
||||
"in one library\"* section in :pep:`489` for details."
|
||||
msgstr ""
|
||||
"Il est possible d'exporter plusieurs modules depuis une seule bibliothéque "
|
||||
"partagée en définissant plusieurs fonctions d'initialisation. Cependant pour "
|
||||
"les importer, un lien symbolique doit être créé pour chacun, ou un "
|
||||
"*importer* personalisé, puisque par défaut seule la fonction correpondant au "
|
||||
"nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one "
|
||||
"library\"* dans la :pep:`489` pour plus d'informations."
|
||||
|
||||
#: ../Doc/extending/building.rst:49
|
||||
msgid "Building C and C++ Extensions with distutils"
|
||||
|
@ -150,6 +156,13 @@ msgid ""
|
|||
"example, the instance defines an extension named ``demo`` which is build by "
|
||||
"compiling a single source file, :file:`demo.c`."
|
||||
msgstr ""
|
||||
"Il est classique de pré-calculer les arguments à la fonction :func:`setup`, "
|
||||
"pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument "
|
||||
"``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules "
|
||||
"d'extension, chacun est une instance de la classe :class:`~distutils."
|
||||
"extension.Extension`. Dans l'exemple, l'instance définit une extension "
|
||||
"nommée ``demo`` construite par la compilation d'un seul fichier source :file:"
|
||||
"`demo.c`."
|
||||
|
||||
#: ../Doc/extending/building.rst:99
|
||||
msgid ""
|
||||
|
@ -170,6 +183,13 @@ msgid ""
|
|||
"distutils passes this information in different ways to the compiler. For "
|
||||
"example, on Unix, this may result in the compilation commands ::"
|
||||
msgstr ""
|
||||
"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appellée "
|
||||
"avec quelques autres méta-informations, ce qui est recommandé pour "
|
||||
"distribuer des paquets. En ce qui concerne l'extension, sont définis "
|
||||
"quelques macros préprocesseur, dossiers pour les en-têtes et bibliothèques. "
|
||||
"En fonction du compilateur, *distutils* peut donner ces informations de "
|
||||
"manière différente. Par exemple, sur Unix, ça peut ressembler aux "
|
||||
"commandes : ::"
|
||||
|
||||
#: ../Doc/extending/building.rst:139
|
||||
msgid ""
|
||||
|
@ -211,6 +231,9 @@ msgid ""
|
|||
"distribution; this is done through a :file:`MANIFEST.in` file; see :ref:"
|
||||
"`manifest` for details."
|
||||
msgstr ""
|
||||
"Dans certains cas, des fichiers supplémentaires doivent être inclus dans une "
|
||||
"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c."
|
||||
"f. :ref:`manifest`."
|
||||
|
||||
#: ../Doc/extending/building.rst:161
|
||||
msgid ""
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-08-10 00:58+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:35+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/embedding.rst:8
|
||||
msgid "Embedding Python in Another Application"
|
||||
msgstr "Intégrer Python dans une autre Application"
|
||||
msgstr "Intégrer Python dans une autre application"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:10
|
||||
msgid ""
|
||||
|
@ -55,7 +55,7 @@ msgstr ""
|
|||
"est qu'en étendant Python, le programme principal reste l'interpréteur "
|
||||
"Python, alors qu'en intégrant Python le programme principal peut ne rien à "
|
||||
"voir avec Python. C'est simplement quelques parties du programme qui "
|
||||
"appellent l'interprète Python pour exécuter un peu de code Python."
|
||||
"appellent l'interpréteur Python pour exécuter un peu de code Python."
|
||||
|
||||
#: ../Doc/extending/embedding.rst:26
|
||||
msgid ""
|
||||
|
@ -102,7 +102,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/embedding.rst:49
|
||||
msgid "Very High Level Embedding"
|
||||
msgstr "Intégration de Très Haut Niveau"
|
||||
msgstr "Intégration de très haut niveau"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:51
|
||||
msgid ""
|
||||
|
@ -130,10 +130,21 @@ msgid ""
|
|||
"which saves you the trouble of allocating memory space and loading the file "
|
||||
"contents."
|
||||
msgstr ""
|
||||
"C'est la fonction :c:func:`Py_SetProgramName` qui devrait être appelée en "
|
||||
"premier, avant :c:func:`Py_Initialize`, afin d'informer l'interpréteur des "
|
||||
"chemins vers ses bibliothèques. Ensuite l'interpréteur est initialisé par :c:"
|
||||
"func:`Py_Initialize`, suivi de l'exécution de Python codé en dur affichant "
|
||||
"la date et l'heure, puis, l'appel à :c:func:`Py_FinalizeEx` éteint "
|
||||
"l'interpréteur, engendrant ainsi la fin du programme. Dans un vrai "
|
||||
"programme, vous pourriez vouloir lire le script Python depuis une autre "
|
||||
"source, peut être depuis un éditeur de texte, un fichier, ou une base de "
|
||||
"donnée. Récupérer du code Python depuis un fichier se fait via :c:func:"
|
||||
"`PyRun_SimplFile`, qui vous économise le travail d'allouer de la mémoire et "
|
||||
"de charger le contenu du fichier."
|
||||
|
||||
#: ../Doc/extending/embedding.rst:92
|
||||
msgid "Beyond Very High Level Embedding: An overview"
|
||||
msgstr "Au delà de l'Intégration de Haut Niveau: Survol"
|
||||
msgstr "Au delà de l'intégration de haut niveau: survol"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:94
|
||||
msgid ""
|
||||
|
@ -221,7 +232,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/embedding.rst:133
|
||||
msgid "Pure Embedding"
|
||||
msgstr "Intégration Pure"
|
||||
msgstr "Intégration pure"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:135
|
||||
msgid ""
|
||||
|
@ -250,7 +261,7 @@ msgstr ""
|
|||
"Ce code charge un script Python en utilisant ``argv[1]``, et appelle une "
|
||||
"fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les "
|
||||
"autres valeurs de ``argv``. Si vous :ref:`compilez et liez <compiling>` ce "
|
||||
"programme (appelons l'exécutable :program:`call`), et l'appellez pour "
|
||||
"programme (appelons l'exécutable :program:`call`), et l'appelez pour "
|
||||
"exécuter un script Python, tel que :"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:160
|
||||
|
@ -291,7 +302,7 @@ msgstr ""
|
|||
"Une fois le script chargé, le nom recherché est obtenu en utilisant :c:func:"
|
||||
"`PyObject_GetAttrString`. Si le nom existe, et que l'objet récupéré peut "
|
||||
"être appelé, vous pouvez présumer sans risque que c'est une fonction. Le "
|
||||
"programme continue, classiquement, par la construction de l'uplet "
|
||||
"programme continue, classiquement, par la construction de n-uplet "
|
||||
"d'arguments. L'appel à la fonction Python est alors effectué avec : ::"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:198
|
||||
|
@ -306,7 +317,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/embedding.rst:206
|
||||
msgid "Extending Embedded Python"
|
||||
msgstr "Étendre un Python Intégré"
|
||||
msgstr "Étendre un Python intégré"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:208
|
||||
msgid ""
|
||||
|
@ -336,7 +347,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Insérez le code ci-dessus juste avant la fonction :c:func:`main`. Ajoutez "
|
||||
"aussi les deux instructions suivantes avant l'appel à :c:func:"
|
||||
"`Py_Initialize` ::"
|
||||
"`Py_Initialize` ::"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:251
|
||||
msgid ""
|
||||
|
@ -345,7 +356,7 @@ msgid ""
|
|||
"extensions, the Python script can do things like"
|
||||
msgstr ""
|
||||
"Ces deux lignes initialisent la variable ``numarg``, et rend la fonction :"
|
||||
"func:`emb.numargs` accessible à l'interprète intégré. Avec ces ajouts, le "
|
||||
"func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces ajouts, le "
|
||||
"script Python petit maintenant faire des choses comme"
|
||||
|
||||
#: ../Doc/extending/embedding.rst:260
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,19 +7,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-08-10 00:58+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\n"
|
||||
"PO-Revision-Date: 2017-11-22 10:45+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \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 1.8.11\n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/extending/index.rst:5
|
||||
msgid "Extending and Embedding the Python Interpreter"
|
||||
msgstr ""
|
||||
msgstr "Extension et intégration de l'interpréteur Python"
|
||||
|
||||
#: ../Doc/extending/index.rst:7
|
||||
msgid ""
|
||||
|
@ -31,6 +31,15 @@ msgid ""
|
|||
"extension modules so that they can be loaded dynamically (at run time) into "
|
||||
"the interpreter, if the underlying operating system supports this feature."
|
||||
msgstr ""
|
||||
"Ce document décrit comment écrire des modules en C ou C++ pour étendre "
|
||||
"l'interpréteur Python à de nouveaux modules. En plus de définir de nouvelles "
|
||||
"fonctions, ces modules peuvent définir de nouveaux types d'objets ainsi que "
|
||||
"leur méthodes. Ce document explique aussi comment intégrer l'interpréteur "
|
||||
"Python dans une autre application, pour être utilisé comme langage "
|
||||
"d'extension. Enfin, ce document montre comment compiler et lier les modules "
|
||||
"d'extension pour qu'ils puissent être chargés dynamiquement (à l'exécution) "
|
||||
"dans l'interpréteur, si le système d'exploitation sous-jacent supporte cette "
|
||||
"fonctionnalité."
|
||||
|
||||
#: ../Doc/extending/index.rst:15
|
||||
msgid ""
|
||||
|
@ -40,60 +49,86 @@ msgid ""
|
|||
"documents the existing object types, functions and modules (both built-in "
|
||||
"and written in Python) that give the language its wide application range."
|
||||
msgstr ""
|
||||
"Ce document présuppose que vous avez des connaissances de base sur Python. "
|
||||
"Pour une introduction informelle du langage, voyez :ref:`tutorial-index`. :"
|
||||
"ref:`reference-index` donne une définition plus formelle du langage. :ref:"
|
||||
"`library-index` documente les objets types, fonctions et modules existants "
|
||||
"(tous intégrés et écrits en Python) qui donnent au langage sa large gamme "
|
||||
"d'applications."
|
||||
|
||||
#: ../Doc/extending/index.rst:21
|
||||
msgid ""
|
||||
"For a detailed description of the whole Python/C API, see the separate :ref:"
|
||||
"`c-api-index`."
|
||||
msgstr ""
|
||||
"Pour une description dans sa totalité de l'API Python/C, voir :ref:`c-api-"
|
||||
"index`."
|
||||
|
||||
#: ../Doc/extending/index.rst:26
|
||||
msgid "Recommended third party tools"
|
||||
msgstr ""
|
||||
msgstr "Les outils tiers recommandés"
|
||||
|
||||
#: ../Doc/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, ``cffi``, "
|
||||
"SWIG and Numba offer both simpler and more sophisticated approaches to "
|
||||
"creating C and C++ extensions for Python."
|
||||
"part of this version of CPython. Third party tools like `Cython <http://"
|
||||
"cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, `SWIG <http://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 ""
|
||||
"Ce guide ne couvre que les outils basiques permettant de créer des "
|
||||
"extensions fournies dans cette version de CPython. Les outils tiers tels que "
|
||||
"Cython, ``cffi``, SWIG et Numba offrent des approches plus simples et plus "
|
||||
"élaborées pour créer des extensions C et C++ pour Python."
|
||||
|
||||
#: ../Doc/extending/index.rst:38
|
||||
#: ../Doc/extending/index.rst:40
|
||||
msgid ""
|
||||
"`Python Packaging User Guide: Binary Extensions <https://packaging.python."
|
||||
"org/en/latest/extensions/>`_"
|
||||
msgstr ""
|
||||
"`Python Packaging User Guide: Binary Extensions <https://packaging.python."
|
||||
"org/en/latest/extensions/>`_"
|
||||
"`Guide d'utilisation de l'empaquetage Python : Extensions binaires <https://"
|
||||
"packaging.python.org/en/latest/extensions/>`_"
|
||||
|
||||
#: ../Doc/extending/index.rst:36
|
||||
#: ../Doc/extending/index.rst:38
|
||||
msgid ""
|
||||
"The Python Packaging User Guide not only covers several available tools that "
|
||||
"simplify the creation of binary extensions, but also discusses the various "
|
||||
"reasons why creating an extension module may be desirable in the first place."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/index.rst:43
|
||||
msgid "Creating extensions without third party tools"
|
||||
msgstr ""
|
||||
"Le guide d'utilisation de l'empaquetage Python ne couvre pas uniquement "
|
||||
"quelques outils disponibles qui simplifient la création d'extensions "
|
||||
"binaires, mais aborde aussi les différentes raisons pour lesquelles créer un "
|
||||
"module d'extension peut être souhaitable d'entrée."
|
||||
|
||||
#: ../Doc/extending/index.rst:45
|
||||
msgid "Creating extensions without third party tools"
|
||||
msgstr "Création d'extensions sans outils tiers"
|
||||
|
||||
#: ../Doc/extending/index.rst:47
|
||||
msgid ""
|
||||
"This section of the guide covers creating C and C++ extensions without "
|
||||
"assistance from third party tools. It is intended primarily for creators of "
|
||||
"those tools, rather than being a recommended way to create your own C "
|
||||
"extensions."
|
||||
msgstr ""
|
||||
"Cette section du guide couvre la création d'extensions C et C++ sans "
|
||||
"l'utilisation d'outils tiers. Cette section est destinée aux créateurs de "
|
||||
"ces outils, plus que d'être une méthode recommandée pour créer votre propre "
|
||||
"extension C."
|
||||
|
||||
#: ../Doc/extending/index.rst:60
|
||||
#: ../Doc/extending/index.rst:63
|
||||
msgid "Embedding the CPython runtime in a larger application"
|
||||
msgstr ""
|
||||
msgstr "Intégrer l'interpréteur CPython dans une plus grande application"
|
||||
|
||||
#: ../Doc/extending/index.rst:62
|
||||
#: ../Doc/extending/index.rst:65
|
||||
msgid ""
|
||||
"Sometimes, rather than creating an extension that runs inside the Python "
|
||||
"interpreter as the main application, it is desirable to instead embed the "
|
||||
"CPython runtime inside a larger application. This section covers some of the "
|
||||
"details involved in doing that successfully."
|
||||
msgstr ""
|
||||
"Parfois, plutôt que de créer une extension qui s'exécute dans l'interpréteur "
|
||||
"Python comme application principale, il est préférable d'intégrer "
|
||||
"l'interpréteur Python dans une application plus large. Cette section donne "
|
||||
"quelques informations nécessaires au succès de cette opération."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,862 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2001-2018, Python Software Foundation
|
||||
# This file is distributed under the same license as the Python package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-05-02 00:10+0200\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"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:7
|
||||
msgid "Defining Extension Types: Tutorial"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:14
|
||||
msgid ""
|
||||
"Python allows the writer of a C extension module to define new types that "
|
||||
"can be manipulated from Python code, much like the built-in :class:`str` "
|
||||
"and :class:`list` types. The code for all extension types follows a "
|
||||
"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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:24
|
||||
msgid "The Basics"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:26
|
||||
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. "
|
||||
"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 "
|
||||
"called by the interpreter when, for instance, an attribute gets looked up on "
|
||||
"an object, a method called, or it is multiplied by another object. These C "
|
||||
"functions are called \"type methods\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:38
|
||||
msgid ""
|
||||
"This sort of thing can only be explained by example, so here's a minimal, "
|
||||
"but complete, module that defines a new type named :class:`Custom` inside a "
|
||||
"C extension module :mod:`custom`:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:43
|
||||
msgid ""
|
||||
"What we're showing here is the traditional way of defining *static* "
|
||||
"extension types. It should be adequate for most uses. The C API also "
|
||||
"allows defining heap-allocated extension types using the :c:func:"
|
||||
"`PyType_FromSpec` function, which isn't covered in this tutorial."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/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 ""
|
||||
|
||||
#: ../Doc/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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:55
|
||||
msgid ""
|
||||
"How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, "
|
||||
"which defines a set of flags and function pointers that the interpreter "
|
||||
"inspects when specific operations are requested."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:61
|
||||
msgid "The first bit is::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:67
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:75
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:78
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:87
|
||||
msgid "The second bit is the definition of the type object. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:99
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:103
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:108
|
||||
msgid "We're going to pick it apart, one field at a time::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:112
|
||||
msgid ""
|
||||
"This line is mandatory boilerplate to initialize the ``ob_base`` field "
|
||||
"mentioned above. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:117
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:127
|
||||
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:"
|
||||
"`custom` and the type is :class:`Custom`, so we set the type name to :class:"
|
||||
"`custom.Custom`. Using the real dotted import path is important to make your "
|
||||
"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:136
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:142
|
||||
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 "
|
||||
"problems with multiple inheritance. A Python subclass of your type will "
|
||||
"have to list your type first in its :attr:`~class.__bases__`, or else it "
|
||||
"will not be able to call your type's :meth:`__new__` method without getting "
|
||||
"an error. You can avoid this problem by ensuring that your type has a "
|
||||
"larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type "
|
||||
"does. Most of the time, this will be true anyway, because either your base "
|
||||
"type will be :class:`object`, or else you will be adding data members to "
|
||||
"your base type, and therefore increasing its size."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:152
|
||||
msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:156
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:160
|
||||
msgid ""
|
||||
"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:164
|
||||
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:"
|
||||
"`__new__`, but has to be specified explicitly. In this case, we can just "
|
||||
"use the default implementation provided by the API function :c:func:"
|
||||
"`PyType_GenericNew`. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:171
|
||||
msgid ""
|
||||
"Everything else in the file should be familiar, except for some code in :c:"
|
||||
"func:`PyInit_custom`::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:177
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:183
|
||||
msgid ""
|
||||
"This adds the type to the module dictionary. This allows us to create :"
|
||||
"class:`Custom` instances by calling the :class:`Custom` class:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:191
|
||||
msgid ""
|
||||
"That's it! All that remains is to build it; put the above code in a file "
|
||||
"called :file:`custom.c` and:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:200
|
||||
msgid "in a file called :file:`setup.py`; then typing"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:206
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:210
|
||||
msgid "That wasn't so hard, was it?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:212
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:216
|
||||
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 "
|
||||
"newer and better-maintained ``setuptools`` library. Documentation on how to "
|
||||
"do this is out of scope for this document and can be found in the `Python "
|
||||
"Packaging User's Guide <https://packaging.python.org/tutorials/distributing-"
|
||||
"packages/>`_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:224
|
||||
msgid "Adding data and methods to the Basic example"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:226
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:233
|
||||
msgid "This version of the module has a number of changes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:235
|
||||
msgid "We've added an extra include::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:239
|
||||
msgid ""
|
||||
"This include provides declarations that we use to handle attributes, as "
|
||||
"described a bit later."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:242
|
||||
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 "
|
||||
"strings containing first and last names. The *number* attribute is a C "
|
||||
"integer."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:246
|
||||
msgid "The object structure is updated accordingly::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:255
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:266
|
||||
msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:270
|
||||
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 *NULL* "
|
||||
"(which might happen here if ``tp_new`` failed midway). It then calls the :c:"
|
||||
"member:`~PyTypeObject.tp_free` member of the object's type (computed by "
|
||||
"``Py_TYPE(self)``) to free the object's memory. Note that the object's type "
|
||||
"might not be :class:`CustomType`, because the object may be an instance of a "
|
||||
"subclass."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:279
|
||||
msgid ""
|
||||
"The explicit cast to ``destructor`` above is needed because we defined "
|
||||
"``Custom_dealloc`` to take a ``CustomObject *`` argument, but the "
|
||||
"``tp_dealloc`` function pointer expects to receive a ``PyObject *`` "
|
||||
"argument. Otherwise, the compiler will emit a warning. This is object-"
|
||||
"oriented polymorphism, in C!"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:285
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:309
|
||||
msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:313
|
||||
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:"
|
||||
"`__new__` method. It is not required to define a ``tp_new`` member, and "
|
||||
"indeed many extension types will simply reuse :c:func:`PyType_GenericNew` as "
|
||||
"done in the first version of the ``Custom`` type above. In this case, we "
|
||||
"use the ``tp_new`` handler to initialize the ``first`` and ``last`` "
|
||||
"attributes to non-*NULL* default values."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:321
|
||||
msgid ""
|
||||
"``tp_new`` is passed the type being instantiated (not necessarily "
|
||||
"``CustomType``, if a subclass is instantiated) and any arguments passed when "
|
||||
"the type was called, and is expected to return the instance created. "
|
||||
"``tp_new`` handlers always accept positional and keyword arguments, but they "
|
||||
"often ignore the arguments, leaving the argument handling to initializer (a."
|
||||
"k.a. ``tp_init`` in C or ``__init__`` in Python) methods."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:329
|
||||
msgid ""
|
||||
"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do "
|
||||
"it itself."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:332
|
||||
msgid ""
|
||||
"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` "
|
||||
"slot to allocate memory::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:337
|
||||
msgid ""
|
||||
"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject."
|
||||
"tp_alloc` result against *NULL* before proceeding."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:341
|
||||
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 "
|
||||
"class, which is :class:`object` by default. Most types use the default "
|
||||
"allocation strategy."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:347
|
||||
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:"
|
||||
"`__new__`), you must *not* try to determine what method to call using method "
|
||||
"resolution order at runtime. Always statically determine what type you are "
|
||||
"going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or "
|
||||
"via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of "
|
||||
"your type that also inherit from other Python-defined classes may not work "
|
||||
"correctly. (Specifically, you may not be able to create instances of such "
|
||||
"subclasses without getting a :exc:`TypeError`.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:357
|
||||
msgid ""
|
||||
"We also define an initialization function which accepts arguments to provide "
|
||||
"initial values for our instance::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:386
|
||||
msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:390
|
||||
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. "
|
||||
"Initializers always accept positional and keyword arguments, and they should "
|
||||
"return either ``0`` on success or ``-1`` on error."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:395
|
||||
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 "
|
||||
"call :meth:`__init__` on unpickled instances). It can also be called "
|
||||
"multiple times. Anyone can call the :meth:`__init__` method on our "
|
||||
"objects. For this reason, we have to be extra careful when assigning the "
|
||||
"new attribute values. We might be tempted, for example to assign the "
|
||||
"``first`` member like this::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:409
|
||||
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 "
|
||||
"destructor that causes code to be executed that tries to access the "
|
||||
"``first`` member; or that destructor could release the :term:`Global "
|
||||
"interpreter Lock` and let arbitrary code run in other threads that accesses "
|
||||
"and modifies our object."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:416
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:420
|
||||
msgid "when we absolutely know that the reference count is greater than 1;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:422
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:425
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:428
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:441
|
||||
msgid ""
|
||||
"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:445
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:449
|
||||
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 "
|
||||
"expect the first and last names to be strings, but any Python objects can be "
|
||||
"assigned. Further, the attributes can be deleted, setting the C pointers to "
|
||||
"*NULL*. Even though we can make sure the members are initialized to non-"
|
||||
"*NULL* values, the members can be set to *NULL* if the attributes are "
|
||||
"deleted."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:456
|
||||
msgid ""
|
||||
"We define a single method, :meth:`Custom.name()`, that outputs the objects "
|
||||
"name as the concatenation of the first and last names. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:473
|
||||
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 "
|
||||
"take an instance as the first argument. Methods often take positional and "
|
||||
"keyword arguments as well, but in this case we don't take any and don't need "
|
||||
"to accept a positional argument tuple or keyword argument dictionary. This "
|
||||
"method is equivalent to the Python method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:485
|
||||
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 "
|
||||
"which case they are set to *NULL*. It would be better to prevent deletion "
|
||||
"of these attributes and to restrict the attribute values to be strings. "
|
||||
"We'll see how to do that in the next section."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:491
|
||||
msgid ""
|
||||
"Now that we've defined the method, we need to create an array of method "
|
||||
"definitions::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:501
|
||||
msgid ""
|
||||
"(note that we used the :const:`METH_NOARGS` flag to indicate that the method "
|
||||
"is expecting no arguments other than *self*)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:504
|
||||
msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:508
|
||||
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 "
|
||||
"about the type of the object being created or used, so all we need to do is "
|
||||
"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:515
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:519
|
||||
msgid "Finally, we update our :file:`setup.py` file to build the new module:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:532
|
||||
msgid "Providing finer control over data attributes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:534
|
||||
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 "
|
||||
"previous version of our module, the instance variables :attr:`first` and :"
|
||||
"attr:`last` could be set to non-string values or even deleted. We want to "
|
||||
"make sure that these attributes always contain strings."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:543
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:574
|
||||
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 "
|
||||
"closure supports an advanced usage in which definition data is passed to the "
|
||||
"getter and setter. This could, for example, be used to allow a single set of "
|
||||
"getter and setter functions that decide the attribute to get or set based on "
|
||||
"data in the closure.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:580
|
||||
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 "
|
||||
"being deleted. In our setter, we raise an error if the attribute is deleted "
|
||||
"or if its new value is not a string."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:585
|
||||
msgid "We create an array of :c:type:`PyGetSetDef` structures::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:595
|
||||
msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:599
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:602
|
||||
msgid "We also remove the member definitions for these attributes::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:610
|
||||
msgid ""
|
||||
"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only "
|
||||
"allow strings [#]_ to be passed::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:639
|
||||
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 "
|
||||
"cases. This means that most of the :c:func:`Py_XDECREF` calls can be "
|
||||
"converted to :c:func:`Py_DECREF` calls. The only place we can't change "
|
||||
"these calls is in the ``tp_dealloc`` implementation, where there is the "
|
||||
"possibility that the initialization of these members failed in ``tp_new``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:646
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:652
|
||||
msgid "Supporting cyclic garbage collection"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:654
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:664
|
||||
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 "
|
||||
"zero. Fortunately, Python's cyclic garbage collector will eventually figure "
|
||||
"out that the list is garbage and free it."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:669
|
||||
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 [#]_. "
|
||||
"Besides, in the second and third versions, we allowed subclassing :class:"
|
||||
"`Custom`, and subclasses may add arbitrary attributes. For any of those two "
|
||||
"reasons, :class:`Custom` objects can participate in cycles:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:683
|
||||
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 "
|
||||
"needs to fill two additional slots and to enable a flag that enables these "
|
||||
"slots:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:690
|
||||
msgid ""
|
||||
"First, the traversal method lets the cyclic GC know about subobjects that "
|
||||
"could participate in cycles::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:710
|
||||
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:"
|
||||
"`visit` function takes as arguments the subobject and the extra argument "
|
||||
"*arg* passed to the traversal method. It returns an integer value that must "
|
||||
"be returned if it is non-zero."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:716
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:729
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:732
|
||||
msgid ""
|
||||
"Second, we need to provide a method for clearing any subobjects that can "
|
||||
"participate in cycles::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:743
|
||||
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 "
|
||||
"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on "
|
||||
"the attribute before setting it to *NULL*, there is a possibility that the "
|
||||
"attribute's destructor would call back into code that reads the attribute "
|
||||
"again (*especially* if there is a reference cycle)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:751
|
||||
msgid "You could emulate :c:func:`Py_CLEAR` by writing::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:758
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:762
|
||||
msgid ""
|
||||
"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing "
|
||||
"attributes. It means the circular GC can be triggered inside the function. "
|
||||
"Since the GC assumes reference count is not zero, we need to untrack the "
|
||||
"object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing "
|
||||
"members. Here is our reimplemented deallocator using :c:func:"
|
||||
"`PyObject_GC_UnTrack` and ``Custom_clear``::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:777
|
||||
msgid ""
|
||||
"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:781
|
||||
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 "
|
||||
"them for cyclic garbage collection. Most extensions will use the versions "
|
||||
"automatically provided."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:787
|
||||
msgid "Subclassing other types"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:789
|
||||
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 "
|
||||
"can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to "
|
||||
"share these :c:type:`PyTypeObject` structures between extension modules."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:794
|
||||
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 "
|
||||
"with regular lists, but will have an additional :meth:`increment` method "
|
||||
"that increases an internal counter:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:814
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:822
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:826
|
||||
msgid ""
|
||||
"When a Python object is a :class:`SubList` instance, its ``PyObject *`` "
|
||||
"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject "
|
||||
"*``::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:838
|
||||
msgid ""
|
||||
"We see above how to call through to the :attr:`__init__` method of the base "
|
||||
"type."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:841
|
||||
msgid ""
|
||||
"This pattern is important when writing a type with custom :c:member:"
|
||||
"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. "
|
||||
"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the "
|
||||
"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let "
|
||||
"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:847
|
||||
msgid ""
|
||||
"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject."
|
||||
"tp_base` specifying the type's concrete base class. Due to cross-platform "
|
||||
"compiler issues, you can't fill that field directly with a reference to :c:"
|
||||
"type:`PyList_Type`; it should be done later in the module initialization "
|
||||
"function::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:870
|
||||
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 "
|
||||
"existing type, it is not necessary to fill out the :c:member:`~PyTypeObject."
|
||||
"tp_alloc` slot with :c:func:`PyType_GenericNew` -- the allocation function "
|
||||
"from the base type will be inherited."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:876
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:881
|
||||
msgid "Footnotes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:882
|
||||
msgid ""
|
||||
"This is true when we know that the object is a basic type, like a string or "
|
||||
"a float."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:885
|
||||
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 ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:888
|
||||
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 "
|
||||
"accept instances of string subclasses. Even though deallocating normal "
|
||||
"strings won't call back into our objects, we can't guarantee that "
|
||||
"deallocating an instance of a string subclass won't call back into our "
|
||||
"objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/extending/newtypes_tutorial.rst:894
|
||||
msgid ""
|
||||
"Also, even with our attributes restricted to strings instances, the user "
|
||||
"could pass arbitrary :class:`str` subclasses and therefore still create "
|
||||
"reference cycles."
|
||||
msgstr ""
|
|
@ -3,14 +3,13 @@
|
|||
# This file is distributed under the same license as the Python package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2017-12-01 08:56+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/windows.rst:8
|
||||
msgid "Building C and C++ Extensions on Windows"
|
||||
msgstr ""
|
||||
msgstr "Construire des extensions C et C++ sur Windows"
|
||||
|
||||
#: ../Doc/extending/windows.rst:10
|
||||
msgid ""
|
||||
|
@ -30,6 +29,12 @@ msgid ""
|
|||
"programmer interested in producing software which can be successfully built "
|
||||
"on both Unix and Windows."
|
||||
msgstr ""
|
||||
"Cette page explique rapidement comment créer un module d'extension Windows "
|
||||
"pour Python en utilisant Microsoft Visual C++, et donne plus d'informations "
|
||||
"contextuelles sur son fonctionnement. Le texte explicatif est utile tant "
|
||||
"pour le développeur Windows qui apprend à construire des extensions Python "
|
||||
"que pour le développeur Unix souhaitant produire des logiciels pouvant être "
|
||||
"construits sur Unix et Windows."
|
||||
|
||||
#: ../Doc/extending/windows.rst:17
|
||||
msgid ""
|
||||
|
@ -38,6 +43,10 @@ msgid ""
|
|||
"still need the C compiler that was used to build Python; typically Microsoft "
|
||||
"Visual C++."
|
||||
msgstr ""
|
||||
"Les auteurs de modules sont invités à utiliser l'approche *distutils* pour "
|
||||
"construire des modules d'extension, au lieu de celle décrite dans cette "
|
||||
"section. Vous aurez toujours besoin du compilateur C utilisé pour construire "
|
||||
"Python ; typiquement Microsoft Visual C++."
|
||||
|
||||
#: ../Doc/extending/windows.rst:24
|
||||
msgid ""
|
||||
|
@ -48,10 +57,16 @@ msgid ""
|
|||
"working with. For example, if you are using Python 2.2.1, ``XY`` will "
|
||||
"actually be ``22``."
|
||||
msgstr ""
|
||||
"Cette page mentionne plusieurs noms de fichiers comprenant un numéro de "
|
||||
"version Python encodé. Ces noms de fichiers sont construits sous le format "
|
||||
"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version "
|
||||
"majeure et ``'Y'`` représente le numéro de version mineure de la version "
|
||||
"Python avec laquelle vous travaillez. Par exemple, si vous utilisez Python "
|
||||
"2.2.1, ``XY`` correspond à ``22``."
|
||||
|
||||
#: ../Doc/extending/windows.rst:34
|
||||
msgid "A Cookbook Approach"
|
||||
msgstr ""
|
||||
msgstr "Une approche \"recette de cuisine\""
|
||||
|
||||
#: ../Doc/extending/windows.rst:36
|
||||
msgid ""
|
||||
|
@ -64,10 +79,20 @@ msgid ""
|
|||
"project file for the :source:`winsound <PCbuild/winsound.vcxproj>` standard "
|
||||
"library module."
|
||||
msgstr ""
|
||||
"Il y a deux approches lorsque l'on construit des modules d'extension sur "
|
||||
"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour "
|
||||
"contrôler le processus de construction, ou faire les choses manuellement. "
|
||||
"L'approche distutils fonctionne bien pour la plupart des extensions ; la "
|
||||
"documentation pour utiliser :mod:`distutils` pour construire et empaqueter "
|
||||
"les modules d'extension est disponible dans :ref:`distutils-index`. Si vous "
|
||||
"considerez que vous avez réellement besoin de faire les choses manuellement, "
|
||||
"il pourrait être enrichissant d'étudier le fichier de projet :source:"
|
||||
"`winsound <PCbuild/winsound.vcxproj>` pour le module de la bibliothèque "
|
||||
"standard."
|
||||
|
||||
#: ../Doc/extending/windows.rst:48
|
||||
msgid "Differences Between Unix and Windows"
|
||||
msgstr ""
|
||||
msgstr "Différences entre Unix et Windows"
|
||||
|
||||
#: ../Doc/extending/windows.rst:53
|
||||
msgid ""
|
||||
|
@ -75,6 +100,10 @@ msgid ""
|
|||
"code. Before you try to build a module that can be dynamically loaded, be "
|
||||
"aware of how your system works."
|
||||
msgstr ""
|
||||
"Unix et Windows utilisent des paradigmes complètement différents pour le "
|
||||
"chargement du code pendant l'exécution. Avant d'essayer de construire un "
|
||||
"module qui puisse être chargé dynamiquement, soyez conscient du mode de "
|
||||
"fonctionnement du système."
|
||||
|
||||
#: ../Doc/extending/windows.rst:57
|
||||
msgid ""
|
||||
|
@ -85,6 +114,13 @@ msgid ""
|
|||
"actual locations in the program where the functions and data are placed in "
|
||||
"memory. This is basically a link operation."
|
||||
msgstr ""
|
||||
"Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au "
|
||||
"programme, ainsi que les noms des fonctions et les données que l'on "
|
||||
"s'attend à trouver dans le programme. Quand le fichier est attaché au "
|
||||
"programme, toutes les réferences à ces fonctions et données dans le code du "
|
||||
"fichier sont modifiées pour pointer vers les localisations actuelles dans le "
|
||||
"programme où sont désormais placées les fonctions et données dans la "
|
||||
"mémoire. C'est tout simplement une opération de liaison."
|
||||
|
||||
#: ../Doc/extending/windows.rst:64
|
||||
msgid ""
|
||||
|
@ -95,6 +131,13 @@ msgid ""
|
|||
"and the lookup table is modified at runtime to point to the functions and "
|
||||
"data."
|
||||
msgstr ""
|
||||
"Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a "
|
||||
"pas de références paresseuses. A la place, un accès aux fonctions ou données "
|
||||
"passe par une table de conversion. Cela est fait pour que le code DLL ne "
|
||||
"doive pas être réarrangé à l'exécution pour renvoyer à la mémoire du "
|
||||
"programme ; à la place, le code utilise déjà la table de conversion DLL, et "
|
||||
"cette table est modifiée à l'exécution pour pointer vers les fonctions et "
|
||||
"données."
|
||||
|
||||
#: ../Doc/extending/windows.rst:70
|
||||
msgid ""
|
||||
|
@ -105,6 +148,12 @@ msgid ""
|
|||
"files in the libraries; if it finds it, it will include all the code from "
|
||||
"that object file."
|
||||
msgstr ""
|
||||
"Sur Unix, il n'y a qu'un type de bibliothèque de fichier (:file:`.a`) qui "
|
||||
"contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant "
|
||||
"l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le "
|
||||
"lieur peut informer qu'il ne sait pas où un identificateur est défini. Le "
|
||||
"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le "
|
||||
"trouve, il incluera tout le code provenant de ce fichier objet."
|
||||
|
||||
#: ../Doc/extending/windows.rst:76
|
||||
msgid ""
|
||||
|
@ -119,6 +168,18 @@ msgid ""
|
|||
"will need to be used for all future DLLs that depend on the symbols in the "
|
||||
"application or DLL."
|
||||
msgstr ""
|
||||
"Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique "
|
||||
"et une bibliothèque d'import (toutes deux appelées :file:`.lib`). Une "
|
||||
"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient "
|
||||
"du code pouvant être inclus si nécessaire. Une bibliothèque d'import est "
|
||||
"uniquement utilisée pour rassurer le lieur qu'un certain identificateur est "
|
||||
"légal, et sera présent dans le programme quand la DLL est chargé. Comme ça "
|
||||
"le lieur utilise les informations provenant de la bibliothèque d'import pour "
|
||||
"construire la table de conversion pour utiliser les identificateurs qui ne "
|
||||
"sont pas inclus dans la DLL. Quand une application ou une DLL est lié, une "
|
||||
"bibliothèque d'import peut être générée, qui devra être utilisée pour tous "
|
||||
"les futures DLL dépendantes aux symboles provenant de l'application ou de la "
|
||||
"DLL."
|
||||
|
||||
#: ../Doc/extending/windows.rst:86
|
||||
msgid ""
|
||||
|
@ -130,6 +191,14 @@ msgid ""
|
|||
"`A.lib` to the linker for B and C. :file:`A.lib` does not contain code; it "
|
||||
"just contains information which will be used at runtime to access A's code."
|
||||
msgstr ""
|
||||
"Supposons que vous construisez deux modules de chargement dynamiques, B et "
|
||||
"C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, "
|
||||
"vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C."
|
||||
"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacuns "
|
||||
"leur propre copie. Sur Windows, construire :file:`A.dll` construira aussi :"
|
||||
"file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A."
|
||||
"lib` ne contient pas de code ; il contient uniquement des informations qui "
|
||||
"seront utilisées lors de l'exécution pour accéder au code de A."
|
||||
|
||||
#: ../Doc/extending/windows.rst:94
|
||||
msgid ""
|
||||
|
@ -138,10 +207,14 @@ msgid ""
|
|||
"On Unix, linking with a library is more like ``from spam import *``; it does "
|
||||
"create a separate copy."
|
||||
msgstr ""
|
||||
"Sur Windows, utiliser une bibliothèque d'import est comme utiliser ``import "
|
||||
"spam``; cela vous donne accès aux noms des spams, mais ne crée par de copie "
|
||||
"séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from spam "
|
||||
"import *`` ; cela créé une copie séparée."
|
||||
|
||||
#: ../Doc/extending/windows.rst:103
|
||||
msgid "Using DLLs in Practice"
|
||||
msgstr ""
|
||||
msgstr "Utiliser les DLL en pratique"
|
||||
|
||||
#: ../Doc/extending/windows.rst:108
|
||||
msgid ""
|
||||
|
@ -149,6 +222,9 @@ msgid ""
|
|||
"or may not work (though Borland seems to). 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++."
|
||||
|
||||
#: ../Doc/extending/windows.rst:112
|
||||
msgid ""
|
||||
|
@ -156,6 +232,9 @@ msgid ""
|
|||
"linker. To build two DLLs, spam and ni (which uses C functions found in "
|
||||
"spam), you could use these commands::"
|
||||
msgstr ""
|
||||
"Lorsque vous créez des DLL sur Windows, vous devez transmettre :file:"
|
||||
"`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 ::"
|
||||
|
||||
#: ../Doc/extending/windows.rst:119
|
||||
msgid ""
|
||||
|
@ -164,6 +243,10 @@ msgid ""
|
|||
"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find "
|
||||
"the Python code thanks to :file:`pythonXY.lib`."
|
||||
msgstr ""
|
||||
"La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam."
|
||||
"dll` et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions "
|
||||
"Python (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver "
|
||||
"le code Python grâce à :file:`pythonXY.lib`."
|
||||
|
||||
#: ../Doc/extending/windows.rst:124
|
||||
msgid ""
|
||||
|
@ -171,6 +254,9 @@ msgid ""
|
|||
"lib`), which knows how to find the necessary functions from spam, and also "
|
||||
"from the Python executable."
|
||||
msgstr ""
|
||||
"La seconde commande a créé :file:`ni.dll` (et :file:`.obj` et :file:`.lib`), "
|
||||
"qui sait comment trouver les fonctions nécessaires dans spam, ainsi qu'à "
|
||||
"partir de l'exécutable Python."
|
||||
|
||||
#: ../Doc/extending/windows.rst:128
|
||||
msgid ""
|
||||
|
@ -179,6 +265,11 @@ msgid ""
|
|||
"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) "
|
||||
"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``."
|
||||
msgstr ""
|
||||
"Chaque identificateur n'est pas exporté vers la table de conversion. Si vous "
|
||||
"voulez que tout autre module (y compris Python) soit capable de voir vos "
|
||||
"identificateurs, vous devez préciser ``_declspec(dllexport)``, comme dans "
|
||||
"``void _declspec(dllexport) initspam(void)`` ou ``PyObject "
|
||||
"_declspec(dllexport) *NiGetSpamData(void)``."
|
||||
|
||||
#: ../Doc/extending/windows.rst:133
|
||||
msgid ""
|
||||
|
@ -187,3 +278,8 @@ msgid ""
|
|||
"the Project Settings dialog, Link tab, to specify *ignore default "
|
||||
"libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries."
|
||||
msgstr ""
|
||||
"Developer Studio apportera beaucoup de bibliothèques d'import dont vous "
|
||||
"n'avez pas vraiment besoin, augmentant d'environ 100K votre exécutable. Pour "
|
||||
"s'en débarasser, allez dans les Paramètres du Projet, onglet Lien, pour "
|
||||
"préciser *ignorer les bibliothèques par défaut*. Et la :file:`msvcrtxx.lib` "
|
||||
"correcte à la liste des bibliothèques."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:35+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:36+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/design.rst:3
|
||||
msgid "Design and History FAQ"
|
||||
msgstr "FAQ Histoire et Design"
|
||||
msgstr "FAQ histoire et design"
|
||||
|
||||
#: ../Doc/faq/design.rst:6
|
||||
msgid "Why does Python use indentation for grouping of statements?"
|
||||
|
@ -370,7 +370,7 @@ msgid ""
|
|||
"generally less robust than the \"while True\" solution::"
|
||||
msgstr ""
|
||||
"Il y a une manière alternative de faire ça qui semble attrayante mais elle "
|
||||
"est généralement moins robuste que la solution ``while True`` ::"
|
||||
"est généralement moins robuste que la solution ``while True`` ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:196
|
||||
msgid ""
|
||||
|
@ -537,7 +537,7 @@ msgstr ""
|
|||
"Un bloc try/except est extrêmement efficient tant qu'aucune exception ne "
|
||||
"sont levée. En effet, intercepter une exception s'avère coûteux. Dans les "
|
||||
"versions de précédant Python 2.0, il était courant d'utiliser cette "
|
||||
"pratique::"
|
||||
"pratique ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:286
|
||||
msgid ""
|
||||
|
@ -612,8 +612,8 @@ msgid ""
|
|||
"Can't you emulate threads in the interpreter instead of relying on an OS-"
|
||||
"specific thread implementation?"
|
||||
msgstr ""
|
||||
"Est-il possible d'émuler des *threads* dans l'interpréteur plutôt que se "
|
||||
"baser sur les implémentations spécifique aux OS ?"
|
||||
"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que "
|
||||
"se baser sur les implémentations spécifique aux OS ?"
|
||||
|
||||
#: ../Doc/faq/design.rst:341
|
||||
msgid ""
|
||||
|
@ -625,8 +625,8 @@ msgstr ""
|
|||
"Réponse 1: Malheureusement, l'interpréteur pousse au moins un block de pile "
|
||||
"C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions "
|
||||
"peuvent rappeler dans Python à presque n'importe quel moment. Par "
|
||||
"conséquent, une implémentation complète des *thread* nécessiterai un support "
|
||||
"complet en C."
|
||||
"conséquent, une implémentation complète des fils d'exécution nécessiterai un "
|
||||
"support complet en C."
|
||||
|
||||
#: ../Doc/faq/design.rst:346
|
||||
msgid ""
|
||||
|
@ -733,7 +733,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Dans certaines implémentations de Python, le code suivant (qui marche "
|
||||
"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de "
|
||||
"fichiers::"
|
||||
"fichiers ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:400
|
||||
msgid ""
|
||||
|
@ -757,7 +757,7 @@ msgstr ""
|
|||
"Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle "
|
||||
"implémentation de Python, vous devez explicitement fermer le fichier ou "
|
||||
"utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du "
|
||||
"système de gestion de la mémoire::"
|
||||
"système de gestion de la mémoire ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:415
|
||||
msgid "Why doesn't CPython use a more traditional garbage collection scheme?"
|
||||
|
@ -876,7 +876,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les *tuples* sont immuables, ce qui signifie que lorsqu'un *tuple* a été "
|
||||
"créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle "
|
||||
"valeur. Les listes sont mutables, ce qui signifie que vous pouvez toujours "
|
||||
"valeur. Les listes sont muables, ce qui signifie que vous pouvez toujours "
|
||||
"modifier les éléments d'une liste. Seuls des éléments immuables peuvent être "
|
||||
"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul "
|
||||
"des *tuples* peuvent être utilisés comme clés."
|
||||
|
@ -984,7 +984,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"L'implémentation de la table de hachage des dictionnaires utilise une valeur "
|
||||
"de hachage calculée à partir de la valeur de la clé pour trouver la clé elle-"
|
||||
"même. Si la clé était un objet mutable, sa valeur peut changer, et donc son "
|
||||
"même. Si la clé était un objet muable, sa valeur peut changer, et donc son "
|
||||
"hachage pourrait également changer. Mais toute personne modifiant l'objet "
|
||||
"clé ne peut pas dire qu'elle a été utilisée comme une clé de dictionnaire. "
|
||||
"Il ne peut déplacer l'entrée dans le dictionnaire. Ainsi, lorsque vous "
|
||||
|
@ -1016,7 +1016,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les listes de hachage par leur adresse (*ID* de l'objet). Cela ne "
|
||||
"fonctionne pas parce que si vous créez une nouvelle liste avec la même "
|
||||
"valeur, elle ne sera pas retrouvée; par exemple.::"
|
||||
"valeur, elle ne sera pas retrouvée; par exemple ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:529
|
||||
msgid ""
|
||||
|
@ -1036,7 +1036,7 @@ msgid ""
|
|||
"copying code would run into an infinite loop."
|
||||
msgstr ""
|
||||
"Faire une copie lors de l'utilisation d'une liste en tant que clé. Cela ne "
|
||||
"fonctionne pas puisque la liste, étant un objet mutable, pourrait contenir "
|
||||
"fonctionne pas puisque la liste, étant un objet muable, pourrait contenir "
|
||||
"une référence à elle-même ou avoir une boucle infinie au niveau du code "
|
||||
"copié."
|
||||
|
||||
|
@ -1190,7 +1190,7 @@ msgstr ""
|
|||
"structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de "
|
||||
"personnes estiment que les exceptions peuvent émuler idéalement tout "
|
||||
"utilisation raisonnable des constructions \"go\" ou \"goto\" en C, en "
|
||||
"Fortran ou autres langages de programmation. Par exemple::"
|
||||
"Fortran ou autres langages de programmation. Par exemple ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:665
|
||||
msgid ""
|
||||
|
@ -1247,7 +1247,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Python a une instruction \"with\" qui encapsule l'exécution d'un bloc, en "
|
||||
"appelant le code sur l'entrée et la sortie du bloc. Certains langages "
|
||||
"possèdent une construction qui ressemble à ceci::"
|
||||
"possèdent une construction qui ressemble à ceci ::"
|
||||
|
||||
#: ../Doc/faq/design.rst:706
|
||||
msgid "In Python, such a construct would be ambiguous."
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+0100\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:37+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/extending.rst:3
|
||||
msgid "Extending/Embedding FAQ"
|
||||
msgstr "FAQ Extension/Intégration"
|
||||
msgstr "FAQ extension/intégration"
|
||||
|
||||
#: ../Doc/faq/extending.rst:16
|
||||
msgid "Can I create my own functions in C?"
|
||||
|
@ -81,8 +81,8 @@ msgid ""
|
|||
"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."
|
||||
"html>`_, or `Weave <https://scipy.github.io/devdocs/tutorial/weave.html>`_ "
|
||||
"are also alternatives for wrapping C++ libraries."
|
||||
"html>`_, or `Weave <https://github.com/scipy/weave>`_ are also alternatives "
|
||||
"for wrapping C++ libraries."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/extending.rst:61
|
||||
|
@ -93,8 +93,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"The highest-level function to do this is :c:func:`PyRun_SimpleString` which "
|
||||
"takes a single string argument to be executed in the context of the module "
|
||||
"``__main__`` and returns 0 for success and -1 when an exception occurred "
|
||||
"(including ``SyntaxError``). If you want more control, use :c:func:"
|
||||
"``__main__`` and returns ``0`` for success and ``-1`` when an exception "
|
||||
"occurred (including ``SyntaxError``). If you want more control, use :c:func:"
|
||||
"`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in ``Python/"
|
||||
"pythonrun.c``."
|
||||
msgstr ""
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-12 13:37+0200\n"
|
||||
"PO-Revision-Date: 2017-09-12 13:41+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:37+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,11 +19,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/general.rst:5
|
||||
msgid "General Python FAQ"
|
||||
msgstr "FAQ Générale sur Python"
|
||||
msgstr "FAQ générale sur Python"
|
||||
|
||||
#: ../Doc/faq/general.rst:13
|
||||
msgid "General Information"
|
||||
msgstr "Informations Générales"
|
||||
msgstr "Informations générales"
|
||||
|
||||
#: ../Doc/faq/general.rst:16
|
||||
msgid "What is Python?"
|
||||
|
@ -900,7 +900,7 @@ msgstr ""
|
|||
"une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la "
|
||||
"source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se "
|
||||
"souvenir des méthodes pour une listen, ils peuvent faire quelque chose comme "
|
||||
"ça :"
|
||||
"ça ::"
|
||||
|
||||
#: ../Doc/faq/general.rst:441
|
||||
msgid ""
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:37+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/gui.rst:5
|
||||
msgid "Graphic User Interface FAQ"
|
||||
msgstr "FAQ Interface Graphique"
|
||||
msgstr "FAQ interface graphique"
|
||||
|
||||
#: ../Doc/faq/gui.rst:15
|
||||
msgid "General GUI Questions"
|
||||
|
|
252
faq/library.po
252
faq/library.po
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:37+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:5
|
||||
msgid "Library and Extension FAQ"
|
||||
msgstr "Bibliothèque et Extension FAQ"
|
||||
msgstr "FAQ sur la bibliothèque et les extension"
|
||||
|
||||
#: ../Doc/faq/library.rst:12
|
||||
msgid "General Library Questions"
|
||||
|
@ -127,20 +127,20 @@ msgstr ""
|
|||
msgid ""
|
||||
"Occasionally, a user's environment is so full that the :program:`/usr/bin/"
|
||||
"env` program fails; or there's no env program at all. In that case, you can "
|
||||
"try the following hack (due to Alex Rezinsky)::"
|
||||
"try the following hack (due to Alex Rezinsky):"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:84
|
||||
#: ../Doc/faq/library.rst:86
|
||||
msgid ""
|
||||
"The minor disadvantage is that this defines the script's __doc__ string. "
|
||||
"However, you can fix that by adding ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:92
|
||||
#: ../Doc/faq/library.rst:94
|
||||
msgid "Is there a curses/termcap package for Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:96
|
||||
#: ../Doc/faq/library.rst:98
|
||||
msgid ""
|
||||
"For Unix variants: The standard Python source distribution comes with a "
|
||||
"curses module in the :source:`Modules` subdirectory, though it's not "
|
||||
|
@ -148,7 +148,7 @@ msgid ""
|
|||
"distribution -- there is no curses module for Windows.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:101
|
||||
#: ../Doc/faq/library.rst:103
|
||||
msgid ""
|
||||
"The :mod:`curses` module supports basic curses features as well as many "
|
||||
"additional functions from ncurses and SYSV curses such as colour, "
|
||||
|
@ -158,58 +158,58 @@ msgid ""
|
|||
"category."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:107
|
||||
#: ../Doc/faq/library.rst:109
|
||||
msgid ""
|
||||
"For Windows: use `the consolelib module <http://effbot.org/zone/console-"
|
||||
"index.htm>`_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:112
|
||||
#: ../Doc/faq/library.rst:114
|
||||
msgid "Is there an equivalent to C's onexit() in Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:114
|
||||
#: ../Doc/faq/library.rst:116
|
||||
msgid ""
|
||||
"The :mod:`atexit` module provides a register function that is similar to "
|
||||
"C's :c:func:`onexit`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:119
|
||||
#: ../Doc/faq/library.rst:121
|
||||
msgid "Why don't my signal handlers work?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:121
|
||||
#: ../Doc/faq/library.rst:123
|
||||
msgid ""
|
||||
"The most common problem is that the signal handler is declared with the "
|
||||
"wrong argument list. It is called as ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:126
|
||||
#: ../Doc/faq/library.rst:128
|
||||
msgid "so it should be declared with two arguments::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:133
|
||||
#: ../Doc/faq/library.rst:135
|
||||
msgid "Common tasks"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:136
|
||||
#: ../Doc/faq/library.rst:138
|
||||
msgid "How do I test a Python program or component?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:138
|
||||
#: ../Doc/faq/library.rst:140
|
||||
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 "
|
||||
"with the expected output given in the docstring."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:142
|
||||
#: ../Doc/faq/library.rst:144
|
||||
msgid ""
|
||||
"The :mod:`unittest` module is a fancier testing framework modelled on Java "
|
||||
"and Smalltalk testing frameworks."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:145
|
||||
#: ../Doc/faq/library.rst:147
|
||||
msgid ""
|
||||
"To make testing easier, you should use good modular design in your program. "
|
||||
"Your program should have almost all functionality encapsulated in either "
|
||||
|
@ -220,15 +220,15 @@ msgid ""
|
|||
"more difficult to do."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:153
|
||||
#: ../Doc/faq/library.rst:155
|
||||
msgid "The \"global main logic\" of your program may be as simple as ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:158
|
||||
#: ../Doc/faq/library.rst:160
|
||||
msgid "at the bottom of the main module of your program."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:160
|
||||
#: ../Doc/faq/library.rst:162
|
||||
msgid ""
|
||||
"Once your program is organized as a tractable collection of functions and "
|
||||
"class behaviours you should write test functions that exercise the "
|
||||
|
@ -240,24 +240,24 @@ msgid ""
|
|||
"design flaws earlier."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:168
|
||||
#: ../Doc/faq/library.rst:170
|
||||
msgid ""
|
||||
"\"Support modules\" that are not intended to be the main module of a program "
|
||||
"may include a self-test of the module. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:174
|
||||
#: ../Doc/faq/library.rst:176
|
||||
msgid ""
|
||||
"Even programs that interact with complex external interfaces may be tested "
|
||||
"when the external interfaces are unavailable by using \"fake\" interfaces "
|
||||
"implemented in Python."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:180
|
||||
#: ../Doc/faq/library.rst:182
|
||||
msgid "How do I create documentation from doc strings?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:182
|
||||
#: ../Doc/faq/library.rst:184
|
||||
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 "
|
||||
|
@ -265,65 +265,65 @@ msgid ""
|
|||
"sphinx-doc.org>`_ can also include docstring content."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:189
|
||||
#: ../Doc/faq/library.rst:191
|
||||
msgid "How do I get a single keypress at a time?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:191
|
||||
#: ../Doc/faq/library.rst:193
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:235
|
||||
#: ../Doc/faq/library.rst:237
|
||||
msgid "Threads"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:238
|
||||
#: ../Doc/faq/library.rst:240
|
||||
msgid "How do I program using threads?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:240
|
||||
#: ../Doc/faq/library.rst:242
|
||||
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 "
|
||||
"the low-level primitives provided by the :mod:`_thread` module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:244
|
||||
#: ../Doc/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 ""
|
||||
|
||||
#: ../Doc/faq/library.rst:249
|
||||
#: ../Doc/faq/library.rst:251
|
||||
msgid "None of my threads seem to run: why?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:251
|
||||
#: ../Doc/faq/library.rst:253
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:254
|
||||
#: ../Doc/faq/library.rst:256
|
||||
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::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:269
|
||||
#: ../Doc/faq/library.rst:271
|
||||
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 "
|
||||
"doesn't start a new thread until the previous thread is blocked."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:273
|
||||
#: ../Doc/faq/library.rst:275
|
||||
msgid "A simple fix is to add a tiny sleep to the start of the run function::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:286
|
||||
#: ../Doc/faq/library.rst:288
|
||||
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:"
|
||||
|
@ -332,17 +332,17 @@ msgid ""
|
|||
"the queue as there are threads."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:294
|
||||
#: ../Doc/faq/library.rst:296
|
||||
msgid "How do I parcel out work among a bunch of worker threads?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:296
|
||||
#: ../Doc/faq/library.rst:298
|
||||
msgid ""
|
||||
"The easiest way is to use the new :mod:`concurrent.futures` module, "
|
||||
"especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:299
|
||||
#: ../Doc/faq/library.rst:301
|
||||
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 "
|
||||
|
@ -352,25 +352,25 @@ msgid ""
|
|||
"necessary to ensure that each job is handed out exactly once."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:306
|
||||
#: ../Doc/faq/library.rst:308
|
||||
msgid "Here's a trivial example::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:344
|
||||
#: ../Doc/faq/library.rst:346
|
||||
msgid "When run, this will produce the following output:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:362
|
||||
#: ../Doc/faq/library.rst:364
|
||||
msgid ""
|
||||
"Consult the module's documentation for more details; the :class:`~queue."
|
||||
"Queue` class provides a featureful interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:367
|
||||
#: ../Doc/faq/library.rst:369
|
||||
msgid "What kinds of global value mutation are thread-safe?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:369
|
||||
#: ../Doc/faq/library.rst:371
|
||||
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 "
|
||||
|
@ -380,7 +380,7 @@ msgid ""
|
|||
"instruction is therefore atomic from the point of view of a Python program."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:376
|
||||
#: ../Doc/faq/library.rst:378
|
||||
msgid ""
|
||||
"In theory, this means an exact accounting requires an exact understanding of "
|
||||
"the PVM bytecode implementation. In practice, it means that operations on "
|
||||
|
@ -388,17 +388,17 @@ msgid ""
|
|||
"\"look atomic\" really are."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:381
|
||||
#: ../Doc/faq/library.rst:383
|
||||
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)::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:396
|
||||
#: ../Doc/faq/library.rst:398
|
||||
msgid "These aren't::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:403
|
||||
#: ../Doc/faq/library.rst:405
|
||||
msgid ""
|
||||
"Operations that replace other objects may invoke those other objects' :meth:"
|
||||
"`__del__` method when their reference count reaches zero, and that can "
|
||||
|
@ -406,11 +406,11 @@ msgid ""
|
|||
"and lists. When in doubt, use a mutex!"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:410
|
||||
#: ../Doc/faq/library.rst:412
|
||||
msgid "Can't we get rid of the Global Interpreter Lock?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:414
|
||||
#: ../Doc/faq/library.rst:416
|
||||
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 "
|
||||
|
@ -418,7 +418,7 @@ msgid ""
|
|||
"insistence that (almost) all Python code can only run while the GIL is held."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:419
|
||||
#: ../Doc/faq/library.rst:421
|
||||
msgid ""
|
||||
"Back in the days of Python 1.5, Greg Stein actually implemented a "
|
||||
"comprehensive patch set (the \"free threading\" patches) that removed the "
|
||||
|
@ -430,7 +430,7 @@ msgid ""
|
|||
"the GIL."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:427
|
||||
#: ../Doc/faq/library.rst:429
|
||||
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 "
|
||||
|
@ -441,7 +441,7 @@ msgid ""
|
|||
"dispatching of tasks."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:435
|
||||
#: ../Doc/faq/library.rst:437
|
||||
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 "
|
||||
|
@ -450,7 +450,7 @@ msgid ""
|
|||
"`hashlib` already do this."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:441
|
||||
#: ../Doc/faq/library.rst:443
|
||||
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 "
|
||||
|
@ -462,7 +462,7 @@ msgid ""
|
|||
"the interpreter state. And so on."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:450
|
||||
#: ../Doc/faq/library.rst:452
|
||||
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 "
|
||||
|
@ -470,28 +470,28 @@ msgid ""
|
|||
"store all their global state in the interpreter state."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:455
|
||||
#: ../Doc/faq/library.rst:457
|
||||
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 ""
|
||||
|
||||
#: ../Doc/faq/library.rst:460
|
||||
#: ../Doc/faq/library.rst:462
|
||||
msgid "Input and Output"
|
||||
msgstr "Les entrées/sorties"
|
||||
|
||||
#: ../Doc/faq/library.rst:463
|
||||
#: ../Doc/faq/library.rst:465
|
||||
msgid "How do I delete a file? (And other file questions...)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:465
|
||||
#: ../Doc/faq/library.rst:467
|
||||
msgid ""
|
||||
"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, "
|
||||
"see the :mod:`os` module. The two functions are identical; :func:`~os."
|
||||
"unlink` is simply the name of the Unix system call for this function."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:469
|
||||
#: ../Doc/faq/library.rst:471
|
||||
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 "
|
||||
|
@ -500,11 +500,11 @@ msgid ""
|
|||
"directory tree and its contents, use :func:`shutil.rmtree`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:475
|
||||
#: ../Doc/faq/library.rst:477
|
||||
msgid "To rename a file, use ``os.rename(old_path, new_path)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:477
|
||||
#: ../Doc/faq/library.rst:479
|
||||
msgid ""
|
||||
"To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use "
|
||||
"``f.truncate(offset)``; offset defaults to the current seek position. "
|
||||
|
@ -512,54 +512,54 @@ msgid ""
|
|||
"open`, where *fd* is the file descriptor (a small integer)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:482
|
||||
#: ../Doc/faq/library.rst:484
|
||||
msgid ""
|
||||
"The :mod:`shutil` module also contains a number of functions to work on "
|
||||
"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :"
|
||||
"func:`~shutil.rmtree`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:488
|
||||
#: ../Doc/faq/library.rst:490
|
||||
msgid "How do I copy a file?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:490
|
||||
#: ../Doc/faq/library.rst:492
|
||||
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 ""
|
||||
|
||||
#: ../Doc/faq/library.rst:495
|
||||
#: ../Doc/faq/library.rst:497
|
||||
msgid "How do I read (or write) binary data?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:497
|
||||
#: ../Doc/faq/library.rst:499
|
||||
msgid ""
|
||||
"To read or write complex binary data formats, it's best to use the :mod:"
|
||||
"`struct` module. It allows you to take a string containing binary data "
|
||||
"(usually numbers) and convert it to Python objects; and vice versa."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:501
|
||||
#: ../Doc/faq/library.rst:503
|
||||
msgid ""
|
||||
"For example, the following code reads two 2-byte integers and one 4-byte "
|
||||
"integer in big-endian format from a file::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:510
|
||||
#: ../Doc/faq/library.rst:512
|
||||
msgid ""
|
||||
"The '>' in the format string forces big-endian data; the letter 'h' reads "
|
||||
"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 "
|
||||
"bytes) from the string."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:514
|
||||
#: ../Doc/faq/library.rst:516
|
||||
msgid ""
|
||||
"For data that is more regular (e.g. a homogeneous list of ints or floats), "
|
||||
"you can also use the :mod:`array` module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:519
|
||||
#: ../Doc/faq/library.rst:521
|
||||
msgid ""
|
||||
"To read and write binary data, it is mandatory to open the file in binary "
|
||||
"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` "
|
||||
|
@ -567,11 +567,11 @@ msgid ""
|
|||
"will return :class:`str` objects rather than :class:`bytes` objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:527
|
||||
#: ../Doc/faq/library.rst:529
|
||||
msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:529
|
||||
#: ../Doc/faq/library.rst:531
|
||||
msgid ""
|
||||
":func:`os.read` is a low-level function which takes a file descriptor, a "
|
||||
"small integer representing the opened file. :func:`os.popen` creates a high-"
|
||||
|
@ -580,37 +580,37 @@ msgid ""
|
|||
"popen`, you need to use ``p.read(n)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:616
|
||||
#: ../Doc/faq/library.rst:618
|
||||
msgid "How do I access the serial (RS232) port?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:618
|
||||
#: ../Doc/faq/library.rst:620
|
||||
msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:620
|
||||
#: ../Doc/faq/library.rst:622
|
||||
msgid "http://pyserial.sourceforge.net"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:622
|
||||
#: ../Doc/faq/library.rst:624
|
||||
msgid "For Unix, see a Usenet post by Mitch Chapman:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:624
|
||||
#: ../Doc/faq/library.rst:626
|
||||
msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:628
|
||||
#: ../Doc/faq/library.rst:630
|
||||
msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:630
|
||||
#: ../Doc/faq/library.rst:632
|
||||
msgid ""
|
||||
"Python :term:`file objects <file object>` are a high-level layer of "
|
||||
"abstraction on low-level C file descriptors."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:633
|
||||
#: ../Doc/faq/library.rst:635
|
||||
msgid ""
|
||||
"For most file objects you create in Python via the built-in :func:`open` "
|
||||
"function, ``f.close()`` marks the Python file object as being closed from "
|
||||
|
@ -619,7 +619,7 @@ msgid ""
|
|||
"``f`` becomes garbage."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:639
|
||||
#: ../Doc/faq/library.rst:641
|
||||
msgid ""
|
||||
"But stdin, stdout and stderr are treated specially by Python, because of the "
|
||||
"special status also given to them by C. Running ``sys.stdout.close()`` "
|
||||
|
@ -627,94 +627,94 @@ msgid ""
|
|||
"associated C file descriptor."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:644
|
||||
#: ../Doc/faq/library.rst:646
|
||||
msgid ""
|
||||
"To close the underlying C file descriptor for one of these three, you should "
|
||||
"first be sure that's what you really want to do (e.g., you may confuse "
|
||||
"extension modules trying to do I/O). If it is, use :func:`os.close`::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:652
|
||||
#: ../Doc/faq/library.rst:654
|
||||
msgid "Or you can use the numeric constants 0, 1 and 2, respectively."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:656
|
||||
#: ../Doc/faq/library.rst:658
|
||||
msgid "Network/Internet Programming"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:659
|
||||
#: ../Doc/faq/library.rst:661
|
||||
msgid "What WWW tools are there for Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:661
|
||||
#: ../Doc/faq/library.rst:663
|
||||
msgid ""
|
||||
"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library "
|
||||
"Reference Manual. Python has many modules that will help you build server-"
|
||||
"side and client-side web systems."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:667
|
||||
#: ../Doc/faq/library.rst:669
|
||||
msgid ""
|
||||
"A summary of available frameworks is maintained by Paul Boddie at https://"
|
||||
"wiki.python.org/moin/WebProgramming\\ ."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:670
|
||||
#: ../Doc/faq/library.rst:672
|
||||
msgid ""
|
||||
"Cameron Laird maintains a useful set of pages about Python web technologies "
|
||||
"at http://phaseit.net/claird/comp.lang.python/web_python."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:675
|
||||
#: ../Doc/faq/library.rst:677
|
||||
msgid "How can I mimic CGI form submission (METHOD=POST)?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:677
|
||||
#: ../Doc/faq/library.rst:679
|
||||
msgid ""
|
||||
"I would like to retrieve web pages that are the result of POSTing a form. Is "
|
||||
"there existing code that would let me do this easily?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:680
|
||||
#: ../Doc/faq/library.rst:682
|
||||
msgid "Yes. Here's a simple example that uses urllib.request::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:695
|
||||
#: ../Doc/faq/library.rst:697
|
||||
msgid ""
|
||||
"Note that in general for percent-encoded POST operations, query strings must "
|
||||
"be quoted using :func:`urllib.parse.urlencode`. For example, to send "
|
||||
"``name=Guy Steele, Jr.``::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:703
|
||||
#: ../Doc/faq/library.rst:705
|
||||
msgid ":ref:`urllib-howto` for extensive examples."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:707
|
||||
#: ../Doc/faq/library.rst:709
|
||||
msgid "What module should I use to help with generating HTML?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:711
|
||||
#: ../Doc/faq/library.rst:713
|
||||
msgid ""
|
||||
"You can find a collection of useful links on the `Web Programming wiki page "
|
||||
"<https://wiki.python.org/moin/WebProgramming>`_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:716
|
||||
#: ../Doc/faq/library.rst:718
|
||||
msgid "How do I send mail from a Python script?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:718
|
||||
#: ../Doc/faq/library.rst:720
|
||||
msgid "Use the standard library module :mod:`smtplib`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:720
|
||||
#: ../Doc/faq/library.rst:722
|
||||
msgid ""
|
||||
"Here's a very simple interactive mail sender that uses it. This method will "
|
||||
"work on any host that supports an SMTP listener. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:740
|
||||
#: ../Doc/faq/library.rst:742
|
||||
msgid ""
|
||||
"A Unix-only alternative uses sendmail. The location of the sendmail program "
|
||||
"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/"
|
||||
|
@ -722,17 +722,17 @@ msgid ""
|
|||
"some sample code::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:760
|
||||
#: ../Doc/faq/library.rst:762
|
||||
msgid "How do I avoid blocking in the connect() method of a socket?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:762
|
||||
#: ../Doc/faq/library.rst:764
|
||||
msgid ""
|
||||
"The :mod:`select` module is commonly used to help with asynchronous I/O on "
|
||||
"sockets."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:765
|
||||
#: ../Doc/faq/library.rst:767
|
||||
msgid ""
|
||||
"To prevent the TCP connect from blocking, you can set the socket to non-"
|
||||
"blocking mode. Then when you do the ``connect()``, you will either connect "
|
||||
|
@ -742,7 +742,7 @@ msgid ""
|
|||
"values, so you're going to have to check what's returned on your system."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:772
|
||||
#: ../Doc/faq/library.rst:774
|
||||
msgid ""
|
||||
"You can use the ``connect_ex()`` method to avoid creating an exception. It "
|
||||
"will just return the errno value. To poll, you can call ``connect_ex()`` "
|
||||
|
@ -750,26 +750,26 @@ msgid ""
|
|||
"or you can pass this socket to select to check if it's writable."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:778
|
||||
#: ../Doc/faq/library.rst:780
|
||||
msgid ""
|
||||
"The :mod:`asyncore` module presents a framework-like approach to the problem "
|
||||
"of writing non-blocking networking code. The third-party `Twisted <https://"
|
||||
"twistedmatrix.com/trac/>`_ library is a popular and feature-rich alternative."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:785
|
||||
#: ../Doc/faq/library.rst:787
|
||||
msgid "Databases"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:788
|
||||
#: ../Doc/faq/library.rst:790
|
||||
msgid "Are there any interfaces to database packages in Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:790
|
||||
#: ../Doc/faq/library.rst:792
|
||||
msgid "Yes."
|
||||
msgstr "Oui."
|
||||
|
||||
#: ../Doc/faq/library.rst:792
|
||||
#: ../Doc/faq/library.rst:794
|
||||
msgid ""
|
||||
"Interfaces to disk-based hashes such as :mod:`DBM <dbm.ndbm>` and :mod:`GDBM "
|
||||
"<dbm.gnu>` are also included with standard Python. There is also the :mod:"
|
||||
|
@ -777,18 +777,18 @@ msgid ""
|
|||
"database."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:797
|
||||
#: ../Doc/faq/library.rst:799
|
||||
msgid ""
|
||||
"Support for most relational databases is available. See the "
|
||||
"`DatabaseProgramming wiki page <https://wiki.python.org/moin/"
|
||||
"DatabaseProgramming>`_ for details."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:803
|
||||
#: ../Doc/faq/library.rst:805
|
||||
msgid "How do you implement persistent objects in Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:805
|
||||
#: ../Doc/faq/library.rst:807
|
||||
msgid ""
|
||||
"The :mod:`pickle` library module solves this in a very general way (though "
|
||||
"you still can't store things like open files, sockets or windows), and the :"
|
||||
|
@ -796,55 +796,55 @@ msgid ""
|
|||
"mappings containing arbitrary Python objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:812
|
||||
#: ../Doc/faq/library.rst:814
|
||||
msgid "Mathematics and Numerics"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:815
|
||||
#: ../Doc/faq/library.rst:817
|
||||
msgid "How do I generate random numbers in Python?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:817
|
||||
#: ../Doc/faq/library.rst:819
|
||||
msgid ""
|
||||
"The standard module :mod:`random` implements a random number generator. "
|
||||
"Usage is simple::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:823
|
||||
#: ../Doc/faq/library.rst:825
|
||||
msgid "This returns a random floating point number in the range [0, 1)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:825
|
||||
#: ../Doc/faq/library.rst:827
|
||||
msgid ""
|
||||
"There are also many other specialized generators in this module, such as:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:827
|
||||
#: ../Doc/faq/library.rst:829
|
||||
msgid "``randrange(a, b)`` chooses an integer in the range [a, b)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:828
|
||||
#: ../Doc/faq/library.rst:830
|
||||
msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:829
|
||||
#: ../Doc/faq/library.rst:831
|
||||
msgid ""
|
||||
"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:831
|
||||
#: ../Doc/faq/library.rst:833
|
||||
msgid "Some higher-level functions operate on sequences directly, such as:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:833
|
||||
#: ../Doc/faq/library.rst:835
|
||||
msgid "``choice(S)`` chooses random element from a given sequence"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:834
|
||||
#: ../Doc/faq/library.rst:836
|
||||
msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/library.rst:836
|
||||
#: ../Doc/faq/library.rst:838
|
||||
msgid ""
|
||||
"There's also a ``Random`` class you can instantiate to create independent "
|
||||
"multiple random number generators."
|
||||
|
|
|
@ -7,14 +7,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-12 13:37+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:34+0200\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2017-10-27 17:41+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/faq/programming.rst:5
|
||||
|
@ -651,7 +651,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/programming.rst:526
|
||||
msgid "By passing a mutable (changeable in-place) object::"
|
||||
msgstr "En passant un objet mutable (modifiable sur place) ::"
|
||||
msgstr "En passant un objet muable (modifiable sur place) ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:536
|
||||
msgid "By passing in a dictionary that gets mutated::"
|
||||
|
@ -659,7 +659,7 @@ msgstr "En passant un dictionnaire, qui sera modifié : ::"
|
|||
|
||||
#: ../Doc/faq/programming.rst:546
|
||||
msgid "Or bundle up values in a class instance::"
|
||||
msgstr "Ou regrouper les valeurs dans une instance de classe::"
|
||||
msgstr "Ou regrouper les valeurs dans une instance de classe ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:562
|
||||
msgid "There's almost never a good reason to get this complicated."
|
||||
|
@ -714,7 +714,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/programming.rst:604
|
||||
msgid "Object can encapsulate state for several methods::"
|
||||
msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes::"
|
||||
msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:622
|
||||
msgid ""
|
||||
|
@ -743,11 +743,11 @@ msgid ""
|
|||
"copy` method::"
|
||||
msgstr ""
|
||||
"Certains objects peuvent être copiés plus facilement. Les Dictionnaires ont "
|
||||
"une méthode :meth:`~dict.copy` ::"
|
||||
"une méthode :meth:`~dict.copy` ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:637
|
||||
msgid "Sequences can be copied by slicing::"
|
||||
msgstr "Les séquences peuvent être copiées via la syntaxe des tranches::"
|
||||
msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:643
|
||||
msgid "How can I find the methods or attributes of an object?"
|
||||
|
@ -823,7 +823,7 @@ msgstr ""
|
|||
"C'est pareil que trouver le nom du chat qui traîne devant votre porte: Le "
|
||||
"chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu "
|
||||
"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à "
|
||||
"tous vos voisins (namespaces) si c'est leur chat (objet)…"
|
||||
"tous vos voisins (namespaces) si c'est leur chat (objet)…."
|
||||
|
||||
#: ../Doc/faq/programming.rst:687
|
||||
msgid ""
|
||||
|
@ -840,7 +840,7 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?"
|
|||
#: ../Doc/faq/programming.rst:694
|
||||
msgid "Comma is not an operator in Python. Consider this session::"
|
||||
msgstr ""
|
||||
"La virgule n'est pas un opérateur en Python. Observez la session suivante::"
|
||||
"La virgule n'est pas un opérateur en Python. Observez la session suivante ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:699
|
||||
msgid ""
|
||||
|
@ -849,11 +849,11 @@ msgid ""
|
|||
msgstr ""
|
||||
"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux "
|
||||
"expression, l'expression ci dessus, est évaluée de la même façon que si vous "
|
||||
"aviez écrit::"
|
||||
"aviez écrit ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:704
|
||||
msgid "not::"
|
||||
msgstr "et non::"
|
||||
msgstr "et non ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:708
|
||||
msgid ""
|
||||
|
@ -899,7 +899,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Oui. Cela est généralement réalisé en imbriquant les :keyword:`lambda` dans "
|
||||
"des :keyword:`lambda`. Observez les trois exemples suivants, contribués par "
|
||||
"Ulf Bartelt::"
|
||||
"Ulf Bartelt ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:762
|
||||
msgid "Don't try this at home, kids!"
|
||||
|
@ -921,7 +921,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, "
|
||||
"puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale "
|
||||
"\"10\" (8 en décimal) à la variable \"a\", tapez::"
|
||||
"\"10\" (8 en décimal) à la variable \"a\", tapez ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:779
|
||||
msgid ""
|
||||
|
@ -932,7 +932,7 @@ msgstr ""
|
|||
"L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal "
|
||||
"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux "
|
||||
"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans "
|
||||
"l'interpréteur Python::"
|
||||
"l'interpréteur Python ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:792
|
||||
msgid "Why does -22 // 10 return -3?"
|
||||
|
@ -1076,11 +1076,11 @@ msgstr ""
|
|||
"chaines de caractères à des fonctions. Le principal avantage de cette "
|
||||
"technique est que les chaines n'ont pas besoin d'être égales aux noms de "
|
||||
"fonctions. C'est aussi la principale façon d'imiter la construction \"case"
|
||||
"\"::"
|
||||
"\" ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:898
|
||||
msgid "Use the built-in function :func:`getattr`::"
|
||||
msgstr "Utiliser la fonction :func:`getattr`::"
|
||||
msgstr "Utiliser la fonction :func:`getattr` ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:903
|
||||
msgid ""
|
||||
|
@ -1094,12 +1094,12 @@ msgstr ""
|
|||
msgid "This is used in several places in the standard library, like this::"
|
||||
msgstr ""
|
||||
"Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de "
|
||||
"cette façon::"
|
||||
"cette façon ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:919
|
||||
msgid "Use :func:`locals` or :func:`eval` to resolve the function name::"
|
||||
msgstr ""
|
||||
"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction::"
|
||||
"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:932
|
||||
msgid ""
|
||||
|
@ -1331,7 +1331,7 @@ msgid ""
|
|||
"iterable) into a tuple with the same items in the same order."
|
||||
msgstr ""
|
||||
"Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait "
|
||||
"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…"
|
||||
"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…."
|
||||
|
||||
#: ../Doc/faq/programming.rst:1072
|
||||
msgid ""
|
||||
|
@ -1397,7 +1397,7 @@ msgid ""
|
|||
"Use the :func:`reversed` built-in function, which is new in Python 2.4::"
|
||||
msgstr ""
|
||||
"Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python "
|
||||
"2.4::"
|
||||
"2.4 ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1104
|
||||
msgid ""
|
||||
|
@ -1409,7 +1409,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/programming.rst:1107
|
||||
msgid "With Python 2.3, you can use an extended slice syntax::"
|
||||
msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches::"
|
||||
msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1114
|
||||
msgid "How do you remove duplicates from a list?"
|
||||
|
@ -1432,7 +1432,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier "
|
||||
"celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons "
|
||||
"trouvés en chemin::"
|
||||
"trouvés en chemin ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1132
|
||||
msgid ""
|
||||
|
@ -1457,7 +1457,7 @@ msgstr "Comment construire un tableau en Python?"
|
|||
|
||||
#: ../Doc/faq/programming.rst:1144
|
||||
msgid "Use a list::"
|
||||
msgstr "Utilisez une liste::"
|
||||
msgstr "Utilisez une liste ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1148
|
||||
msgid ""
|
||||
|
@ -1487,7 +1487,7 @@ msgid ""
|
|||
"To get Lisp-style linked lists, you can emulate cons cells using tuples::"
|
||||
msgstr ""
|
||||
"Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les \"cons "
|
||||
"cells\" en utilisant des tuples::"
|
||||
"cells\" en utilisant des tuples ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1160
|
||||
msgid ""
|
||||
|
@ -1510,7 +1510,7 @@ msgstr "Comment puis-je créer une liste à plusieurs dimensions?"
|
|||
msgid "You probably tried to make a multidimensional array like this::"
|
||||
msgstr ""
|
||||
"Vous avez probablement essayé de créer une liste à plusieurs dimensions de "
|
||||
"cette façon::"
|
||||
"cette façon ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1175
|
||||
msgid "This looks correct if you print it:"
|
||||
|
@ -1540,7 +1540,7 @@ msgid ""
|
|||
"then fill in each element with a newly created list::"
|
||||
msgstr ""
|
||||
"L'approche suggérée est de créer une liste de la longueur désiré d'abords, "
|
||||
"puis de remplir tous les éléments avec une chaîne nouvellement créée."
|
||||
"puis de remplir tous les éléments avec une chaîne nouvellement créée ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1210
|
||||
msgid ""
|
||||
|
@ -1548,7 +1548,7 @@ msgid ""
|
|||
"also use a list comprehension::"
|
||||
msgstr ""
|
||||
"Cette liste générée contient trois listes différentes de longueur deux. Vous "
|
||||
"pouvez aussi utilisez la notation de compréhension de listes."
|
||||
"pouvez aussi utilisez la notation de compréhension de listes ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1216
|
||||
msgid ""
|
||||
|
@ -1562,7 +1562,7 @@ msgstr "Comment appliquer une méthode à une séquence d'objets?"
|
|||
|
||||
#: ../Doc/faq/programming.rst:1223
|
||||
msgid "Use a list comprehension::"
|
||||
msgstr "Utilisez une compréhension de liste::"
|
||||
msgstr "Utilisez une compréhension de liste ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1230
|
||||
msgid ""
|
||||
|
@ -1769,7 +1769,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Une méthode est une fonction sur un objet ``x`` appelez normalement comme "
|
||||
"``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à "
|
||||
"l'intérieur de la définition de classe::"
|
||||
"l'intérieur de la définition de classe ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1396
|
||||
msgid "What is self?"
|
||||
|
@ -1838,7 +1838,7 @@ msgid ""
|
|||
"just call it::"
|
||||
msgstr ""
|
||||
"Une meilleure approche est de définir une méthode ``search()`` sur toutes "
|
||||
"les classes et qu'il suffit d'appeler::"
|
||||
"les classes et qu'il suffit d'appeler ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1444
|
||||
msgid "What is delegation?"
|
||||
|
@ -1867,7 +1867,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. "
|
||||
"Par exemple, la classe suivante implémente une classe qui se comporte comme "
|
||||
"un fichier, mais convertit toutes les données écrites en majuscules:"
|
||||
"un fichier, mais convertit toutes les données écrites en majuscules ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1467
|
||||
msgid ""
|
||||
|
@ -1897,7 +1897,7 @@ msgstr ""
|
|||
"peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien "
|
||||
"que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, "
|
||||
"et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:"
|
||||
"`__setattr__` est à peu près équivalent à ce qui suit:"
|
||||
"`__setattr__` est à peu près équivalent à ce qui suit ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1485
|
||||
msgid ""
|
||||
|
@ -1955,7 +1955,7 @@ msgstr ""
|
|||
"votre classe. Ensuite, tout ce que vous devez changer est la valeur "
|
||||
"attribuée à l'alias. Incidemment, cette astuce est également utile si vous "
|
||||
"voulez décider dynamiquement (par exemple en fonction de la disponibilité "
|
||||
"des ressources) la classe de base à utiliser. Exemple::"
|
||||
"des ressources) la classe de base à utiliser. Exemple ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1523
|
||||
msgid "How do I create static class data and static class methods?"
|
||||
|
@ -1978,7 +1978,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Pour les données statiques, il suffit de définir un attribut de classe. Pour "
|
||||
"attribuer une nouvelle valeur à l'attribut, vous devez explicitement "
|
||||
"utiliser le nom de classe dans l'affectation:"
|
||||
"utiliser le nom de classe dans l'affectation ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1540
|
||||
msgid ""
|
||||
|
@ -2002,7 +2002,7 @@ msgstr ""
|
|||
"crée une nouvelle instance et sans rapport avec le nom \"count\" dans dans "
|
||||
"le dictionnaire de données de ``self``. La redéfinition d'une donnée "
|
||||
"statique de classe doit toujours spécifier la classe que l'on soit à "
|
||||
"l'intérieur d'une méthode ou non:"
|
||||
"l'intérieur d'une méthode ou non ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1551
|
||||
msgid "Static methods are possible::"
|
||||
|
@ -2014,7 +2014,7 @@ msgid ""
|
|||
"is via a simple module-level function::"
|
||||
msgstr ""
|
||||
"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une "
|
||||
"méthode statique se fait par une simple fonction au niveau du module::"
|
||||
"méthode statique se fait par une simple fonction au niveau du module ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1565
|
||||
msgid ""
|
||||
|
@ -2047,7 +2047,7 @@ msgid ""
|
|||
"using default arguments. For example::"
|
||||
msgstr ""
|
||||
"En Python, vous devez écrire un constructeur unique qui considère tous les "
|
||||
"cas en utilisant des arguments par défaut. Par exemple::"
|
||||
"cas en utilisant des arguments par défaut. Par exemple ::"
|
||||
|
||||
#: ../Doc/faq/programming.rst:1594
|
||||
msgid "This is not entirely equivalent, but close enough in practice."
|
||||
|
|
180
faq/windows.po
180
faq/windows.po
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\n"
|
||||
"PO-Revision-Date: 2018-01-21 23:08+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -17,18 +17,18 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../Doc/faq/windows.rst:7
|
||||
#: ../Doc/faq/windows.rst:9
|
||||
msgid "Python on Windows FAQ"
|
||||
msgstr ""
|
||||
"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec "
|
||||
"le lancement de programmes depuis la ligne de commande de Windows alors tout "
|
||||
"semblera évident; Sinon, vous auriez besoin d'être un peu guidé."
|
||||
|
||||
#: ../Doc/faq/windows.rst:18
|
||||
#: ../Doc/faq/windows.rst:20
|
||||
msgid "How do I run a Python program under Windows?"
|
||||
msgstr "Comment exécuter un programme Python sous Windows ?"
|
||||
|
||||
#: ../Doc/faq/windows.rst:20
|
||||
#: ../Doc/faq/windows.rst:22
|
||||
msgid ""
|
||||
"This is not necessarily a straightforward question. If you are already "
|
||||
"familiar with running programs from the Windows command line then everything "
|
||||
|
@ -38,19 +38,21 @@ msgstr ""
|
|||
"le lancement de programmes depuis la ligne de commande de Windows alors tout "
|
||||
"semblera évident; Sinon, vous auriez besoin d'être un peu guidé."
|
||||
|
||||
#: ../Doc/faq/windows.rst:0
|
||||
msgid "|Python Development on XP|_"
|
||||
msgstr "Développement |Python sur XP|_"
|
||||
|
||||
#: ../Doc/faq/windows.rst:27
|
||||
#: ../Doc/faq/windows.rst:29
|
||||
msgid ""
|
||||
"This series of screencasts aims to get you up and running with Python on "
|
||||
"Windows XP. The knowledge is distilled into 1.5 hours and will get you up "
|
||||
"and running with the right Python distribution, coding in your choice of "
|
||||
"IDE, and debugging and writing solid code with unit-tests."
|
||||
msgstr ""
|
||||
"Cette série de vidéos a pour but de vous montrer comment utiliser Python sur "
|
||||
"Windows XP. Les explications durent 1 heure et demi et vous permetteront "
|
||||
"d'utiliser la distribution Python adéquate, de développer dans l'IDE de "
|
||||
"votre choix, et de débugger et écrire du code solide accompagné des tests "
|
||||
"unitaires."
|
||||
|
||||
#: ../Doc/faq/windows.rst:36
|
||||
#: ../Doc/faq/windows.rst:38
|
||||
#, fuzzy
|
||||
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 "
|
||||
|
@ -58,54 +60,75 @@ msgid ""
|
|||
"from your Start menu; under Windows 7 the menu selection is :menuselection:"
|
||||
"`Start --> Programs --> Accessories --> Command Prompt`. 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::"
|
||||
"Windows \"command prompt\", which usually looks like this:"
|
||||
msgstr ""
|
||||
"A moins que vous n'utilisiez quelque environnement de développement, vous "
|
||||
"devrez entrer des commandes Windows dans ce qui est diversement référé comme "
|
||||
"\"DOS Windows\" ou \"invite de commande Windows\". En général vous pouvez "
|
||||
"ouvrir cette fenêtre depuis le menu Démarrer; sous Windows 7, allez dans :"
|
||||
"Démarrer --> Programmes --> Accessoires --> Invite de commande. Vous serez "
|
||||
"dans la bonne fenêtre quand vous verrez une fenêtre invite de commande qui "
|
||||
"ressemble normalement à ça ::"
|
||||
|
||||
#: ../Doc/faq/windows.rst:46
|
||||
#: ../Doc/faq/windows.rst:50
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The letter may be different, and there might be other things after it, so "
|
||||
"you might just as easily see something like::"
|
||||
"you might just as easily see something like:"
|
||||
msgstr ""
|
||||
"la lettre peut être différente, et il peut y avoir d'autres choses à la "
|
||||
"suite, alors il se peut aussi bien que vous voyez quelque chose tel que::"
|
||||
"La lettre peut être différente, et il peut y avoir d'autres choses à la "
|
||||
"suite, alors il se peut aussi bien que vous voyez quelque chose tel que ::"
|
||||
|
||||
#: ../Doc/faq/windows.rst:51
|
||||
#: ../Doc/faq/windows.rst:57
|
||||
msgid ""
|
||||
"depending on how your computer has been set up and what else you have "
|
||||
"recently done with it. Once you have started such a window, you are well on "
|
||||
"the way to running Python programs."
|
||||
msgstr ""
|
||||
"selon la configuration de votre ordinateur et ce que vous avez récemment "
|
||||
"fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien "
|
||||
"partis pour pouvoir lancer des programmes Python."
|
||||
|
||||
#: ../Doc/faq/windows.rst:55
|
||||
#: ../Doc/faq/windows.rst:61
|
||||
msgid ""
|
||||
"You need to realize that your Python scripts have to be processed by another "
|
||||
"program called the Python *interpreter*. The interpreter reads your script, "
|
||||
"compiles it into bytecodes, and then executes the bytecodes to run your "
|
||||
"program. So, how do you arrange for the interpreter to handle your Python?"
|
||||
msgstr ""
|
||||
"Retenez que vos scripts Python doivent être traités par un autre programme "
|
||||
"appelé \"l’interpréteur\" Python. L’interpréteur lit votre script, le "
|
||||
"compile en *bytecode*, et exécute le *bytecode* pour faire tourner votre "
|
||||
"programme. Alors, comment faire pour donner votre code Python à "
|
||||
"l'interpréteur ?"
|
||||
|
||||
#: ../Doc/faq/windows.rst:60
|
||||
#: ../Doc/faq/windows.rst:66
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"First, you need to make sure that your command window recognises the word "
|
||||
"\"python\" as an instruction to start the interpreter. If you have opened a "
|
||||
"command window, you should try entering the command ``python`` and hitting "
|
||||
"return.::"
|
||||
"return:"
|
||||
msgstr ""
|
||||
"Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande "
|
||||
"reconnaît le mot \"python\" comme une instruction pour démarrer "
|
||||
"l'interpréteur. Si vous avez ouvert une fenêtre de commande, entrez la "
|
||||
"commande ``python``, puis appuyez sur la touche entrée ::"
|
||||
|
||||
#: ../Doc/faq/windows.rst:67
|
||||
msgid "You should then see something like::"
|
||||
msgstr ""
|
||||
#: ../Doc/faq/windows.rst:75
|
||||
#, fuzzy
|
||||
msgid "You should then see something like:"
|
||||
msgstr "Vous devez vous trouver face à quelque chose comme ça ::"
|
||||
|
||||
#: ../Doc/faq/windows.rst:73
|
||||
#: ../Doc/faq/windows.rst:83
|
||||
msgid ""
|
||||
"You have started the interpreter in \"interactive mode\". That means you can "
|
||||
"enter Python statements or expressions interactively and have them executed "
|
||||
"or evaluated while you wait. This is one of Python's strongest features. "
|
||||
"Check it by entering a few expressions of your choice and seeing the "
|
||||
"results::"
|
||||
"Check it by entering a few expressions of your choice and seeing the results:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:83
|
||||
#: ../Doc/faq/windows.rst:95
|
||||
msgid ""
|
||||
"Many people use the interactive mode as a convenient yet highly programmable "
|
||||
"calculator. When you want to end your interactive Python session, hold the :"
|
||||
|
@ -113,7 +136,7 @@ msgid ""
|
|||
"\" key to get back to your Windows command prompt."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:88
|
||||
#: ../Doc/faq/windows.rst:100
|
||||
msgid ""
|
||||
"You may also find that you have a Start-menu entry such as :menuselection:"
|
||||
"`Start --> Programs --> Python 3.3 --> Python (command line)` that results "
|
||||
|
@ -123,42 +146,38 @@ msgid ""
|
|||
"the interpreter."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:94
|
||||
#: ../Doc/faq/windows.rst:106
|
||||
msgid ""
|
||||
"If the ``python`` command, instead of displaying the interpreter prompt "
|
||||
"``>>>``, gives you a message like::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:0
|
||||
msgid "|Adding Python to DOS Path|_"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:102
|
||||
#: ../Doc/faq/windows.rst:114
|
||||
msgid ""
|
||||
"Python is not added to the DOS path by default. This screencast will walk "
|
||||
"you through the steps to add the correct entry to the `System Path`, "
|
||||
"allowing Python to be executed from the command-line by all users."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:111
|
||||
#: ../Doc/faq/windows.rst:123
|
||||
msgid "or::"
|
||||
msgstr "ou : ::"
|
||||
|
||||
#: ../Doc/faq/windows.rst:115
|
||||
#: ../Doc/faq/windows.rst:127
|
||||
msgid ""
|
||||
"then you need to make sure that your computer knows where to find the Python "
|
||||
"interpreter. To do this you will have to modify a setting called PATH, "
|
||||
"which is a list of directories where Windows will look for programs."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:119
|
||||
#: ../Doc/faq/windows.rst:131
|
||||
msgid ""
|
||||
"You should arrange for Python's installation directory to be added to the "
|
||||
"PATH of every command window as it starts. If you installed Python fairly "
|
||||
"recently then the command ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:125
|
||||
#: ../Doc/faq/windows.rst:137
|
||||
msgid ""
|
||||
"will probably tell you where it is installed; the usual location is "
|
||||
"something like ``C:\\Python33``. Otherwise you will be reduced to a search "
|
||||
|
@ -169,7 +188,7 @@ msgid ""
|
|||
"command ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:134
|
||||
#: ../Doc/faq/windows.rst:146
|
||||
msgid ""
|
||||
"starts up the interpreter as above (and don't forget you'll need a \":kbd:"
|
||||
"`Ctrl-Z`\" and an \":kbd:`Enter`\" to get out of it). Once you have verified "
|
||||
|
@ -178,17 +197,17 @@ msgid ""
|
|||
"in the installer as of CPython 3.3."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:140
|
||||
#: ../Doc/faq/windows.rst:152
|
||||
msgid ""
|
||||
"More information about environment variables can be found on the :ref:`Using "
|
||||
"Python on Windows <setting-envvars>` page."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:144
|
||||
#: ../Doc/faq/windows.rst:156
|
||||
msgid "How do I make Python scripts executable?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:146
|
||||
#: ../Doc/faq/windows.rst:158
|
||||
msgid ""
|
||||
"On Windows, the standard Python installer already associates the .py "
|
||||
"extension with a file type (Python.File) and gives that file type an open "
|
||||
|
@ -199,11 +218,11 @@ msgid ""
|
|||
"environment variable."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:154
|
||||
#: ../Doc/faq/windows.rst:166
|
||||
msgid "Why does Python sometimes take so long to start?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:156
|
||||
#: ../Doc/faq/windows.rst:168
|
||||
msgid ""
|
||||
"Usually Python starts very quickly on Windows, but occasionally there are "
|
||||
"bug reports that Python suddenly begins to take a long time to start up. "
|
||||
|
@ -211,7 +230,7 @@ msgid ""
|
|||
"Windows systems which appear to be configured identically."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:161
|
||||
#: ../Doc/faq/windows.rst:173
|
||||
msgid ""
|
||||
"The problem may be caused by a misconfiguration of virus checking software "
|
||||
"on the problem machine. Some virus scanners have been known to introduce "
|
||||
|
@ -222,11 +241,11 @@ msgid ""
|
|||
"activity, is a particular offender."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:171
|
||||
#: ../Doc/faq/windows.rst:183
|
||||
msgid "How do I make an executable from a Python script?"
|
||||
msgstr "Comment construire un exécutable depuis un script Python ?"
|
||||
|
||||
#: ../Doc/faq/windows.rst:173
|
||||
#: ../Doc/faq/windows.rst:185
|
||||
msgid ""
|
||||
"See http://cx-freeze.sourceforge.net/ for a distutils extension that allows "
|
||||
"you to create console and GUI executables from Python code. `py2exe <http://"
|
||||
|
@ -235,11 +254,11 @@ msgid ""
|
|||
"development."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:181
|
||||
#: ../Doc/faq/windows.rst:193
|
||||
msgid "Is a ``*.pyd`` file the same as a DLL?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:183
|
||||
#: ../Doc/faq/windows.rst:195
|
||||
msgid ""
|
||||
"Yes, .pyd files are dll's, but there are a few differences. If you have a "
|
||||
"DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You "
|
||||
|
@ -249,7 +268,7 @@ msgid ""
|
|||
"as that would cause Windows to require the DLL to be present."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:190
|
||||
#: ../Doc/faq/windows.rst:202
|
||||
msgid ""
|
||||
"Note that the search path for foo.pyd is PYTHONPATH, not the same as the "
|
||||
"path that Windows uses to search for foo.dll. Also, foo.pyd need not be "
|
||||
|
@ -260,17 +279,17 @@ msgid ""
|
|||
"available functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:199
|
||||
#: ../Doc/faq/windows.rst:211
|
||||
msgid "How can I embed Python into a Windows application?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:201
|
||||
#: ../Doc/faq/windows.rst:213
|
||||
msgid ""
|
||||
"Embedding the Python interpreter in a Windows app can be summarized as "
|
||||
"follows:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:203
|
||||
#: ../Doc/faq/windows.rst:215
|
||||
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 "
|
||||
|
@ -279,7 +298,7 @@ msgid ""
|
|||
"version, a number such as \"33\" for Python 3.3."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:209
|
||||
#: ../Doc/faq/windows.rst:221
|
||||
msgid ""
|
||||
"You can link to Python in two different ways. Load-time linking means "
|
||||
"linking against :file:`python{NN}.lib`, while run-time linking means linking "
|
||||
|
@ -288,7 +307,7 @@ msgid ""
|
|||
"merely defines symbols for the linker.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:215
|
||||
#: ../Doc/faq/windows.rst:227
|
||||
msgid ""
|
||||
"Run-time linking greatly simplifies link options; everything happens at run "
|
||||
"time. Your code must load :file:`python{NN}.dll` using the Windows "
|
||||
|
@ -299,13 +318,13 @@ msgid ""
|
|||
"API."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:222
|
||||
#: ../Doc/faq/windows.rst:234
|
||||
msgid ""
|
||||
"Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
|
||||
"exe first."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:227
|
||||
#: ../Doc/faq/windows.rst:239
|
||||
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 "
|
||||
|
@ -314,7 +333,7 @@ msgid ""
|
|||
"this also simplifies linking."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:233
|
||||
#: ../Doc/faq/windows.rst:245
|
||||
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 "
|
||||
|
@ -323,26 +342,26 @@ msgid ""
|
|||
"initializes a mostly hidden helper class used by the shadow class."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:239
|
||||
#: ../Doc/faq/windows.rst:251
|
||||
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 "
|
||||
"into Python! (This is the second key undocumented fact.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:243
|
||||
#: ../Doc/faq/windows.rst:255
|
||||
msgid ""
|
||||
"In short, you can use the following code to initialize the Python "
|
||||
"interpreter with your extension module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:254
|
||||
#: ../Doc/faq/windows.rst:266
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:257
|
||||
#: ../Doc/faq/windows.rst:269
|
||||
msgid ""
|
||||
"Problem 1: The so-called \"Very High Level\" functions that take FILE * "
|
||||
"arguments will not work in a multi-compiler environment because each "
|
||||
|
@ -350,27 +369,27 @@ msgid ""
|
|||
"implementation standpoint these are very _low_ level functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:262
|
||||
#: ../Doc/faq/windows.rst:274
|
||||
msgid ""
|
||||
"Problem 2: SWIG generates the following code when generating wrappers to "
|
||||
"void functions:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:271
|
||||
#: ../Doc/faq/windows.rst:283
|
||||
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 "
|
||||
"fail in a mult-compiler environment. Replace such code by:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:279
|
||||
#: ../Doc/faq/windows.rst:291
|
||||
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 "
|
||||
"complete SWIG newbie)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:283
|
||||
#: ../Doc/faq/windows.rst:295
|
||||
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 "
|
||||
|
@ -382,18 +401,18 @@ msgid ""
|
|||
"and write() methods."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:292
|
||||
#: ../Doc/faq/windows.rst:304
|
||||
msgid "How do I keep editors from inserting tabs into my Python source?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:294
|
||||
#: ../Doc/faq/windows.rst:306
|
||||
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 "
|
||||
"python-mode default."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:298
|
||||
#: ../Doc/faq/windows.rst:310
|
||||
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 :"
|
||||
|
@ -402,35 +421,35 @@ msgid ""
|
|||
"radio button."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:303
|
||||
#: ../Doc/faq/windows.rst:315
|
||||
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:"
|
||||
"`tabnanny` module to check a directory tree in batch mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:310
|
||||
#: ../Doc/faq/windows.rst:322
|
||||
msgid "How do I check for a keypress without blocking?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:312
|
||||
#: ../Doc/faq/windows.rst:324
|
||||
msgid ""
|
||||
"Use the msvcrt module. This is a standard Windows-specific extension "
|
||||
"module. It defines a function ``kbhit()`` which checks whether a keyboard "
|
||||
"hit is present, and ``getch()`` which gets one character without echoing it."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:318
|
||||
#: ../Doc/faq/windows.rst:330
|
||||
msgid "How do I emulate os.kill() in Windows?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:320
|
||||
#: ../Doc/faq/windows.rst:332
|
||||
msgid ""
|
||||
"Prior to Python 2.7 and 3.2, to terminate a process, you can use :mod:"
|
||||
"`ctypes`::"
|
||||
"`ctypes`:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:330
|
||||
#: ../Doc/faq/windows.rst:344
|
||||
msgid ""
|
||||
"In 2.7 and 3.2, :func:`os.kill` is implemented similar to the above "
|
||||
"function, with the additional feature of being able to send :kbd:`Ctrl+C` "
|
||||
|
@ -438,20 +457,23 @@ msgid ""
|
|||
"those signals. See :func:`os.kill` for further details."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:336
|
||||
#: ../Doc/faq/windows.rst:350
|
||||
msgid "How do I extract the downloaded documentation on Windows?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:338
|
||||
#: ../Doc/faq/windows.rst:352
|
||||
msgid ""
|
||||
"Sometimes, when you download the documentation package to a Windows machine "
|
||||
"using a web browser, the file extension of the saved file ends up being ."
|
||||
"EXE. This is a mistake; the extension should be .TGZ."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/faq/windows.rst:342
|
||||
#: ../Doc/faq/windows.rst:356
|
||||
msgid ""
|
||||
"Simply rename the downloaded file to have the .TGZ extension, and WinZip "
|
||||
"will be able to handle it. (If your copy of WinZip doesn't, get a newer one "
|
||||
"from https://www.winzip.com.)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "|Python Development on XP|_"
|
||||
#~ msgstr "|Python Development on XP|_"
|
||||
|
|
1519
glossary.po
1519
glossary.po
File diff suppressed because it is too large
Load Diff
|
@ -7,19 +7,23 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2017-08-10 14:06+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:38+0100\n"
|
||||
"Last-Translator: Hugo Ludmann <ludmann.h@gmail.com>\n"
|
||||
"Language-Team: \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 1.8.7.1\n"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:3
|
||||
msgid "Argparse Tutorial"
|
||||
msgstr "Tutoriel Argparse"
|
||||
msgstr "Tutoriel argparse"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:0
|
||||
msgid "author"
|
||||
msgstr "auteur"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:5
|
||||
msgid "Tshepang Lekhonkhobe"
|
||||
|
@ -376,17 +380,19 @@ msgstr "Et voilà le résultat :"
|
|||
|
||||
#: ../Doc/howto/argparse.rst:374
|
||||
msgid "We've brought back a positional argument, hence the complaint."
|
||||
msgstr ""
|
||||
msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:376
|
||||
msgid "Note that the order does not matter."
|
||||
msgstr ""
|
||||
msgstr "Notez que l'ordre importe peu."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:378
|
||||
msgid ""
|
||||
"How about we give this program of ours back the ability to have multiple "
|
||||
"verbosity values, and actually get to use them::"
|
||||
msgstr ""
|
||||
"Qu'en est il si nous donnons à ce programme la possibilité d'avoir plusieurs "
|
||||
"niveaux de verbosité, et que celui-ci les prend en compte : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:412
|
||||
msgid ""
|
||||
|
@ -394,12 +400,17 @@ msgid ""
|
|||
"Let's fix it by restricting the values the ``--verbosity`` option can "
|
||||
"accept::"
|
||||
msgstr ""
|
||||
"Tout semble bon sauf le dernier, qui montre que notre programme contient un "
|
||||
"bogue. Corrigeons cela en restreignant les options que ``--verbosity`` "
|
||||
"accepte : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:448
|
||||
msgid ""
|
||||
"Note that the change also reflects both in the error message as well as the "
|
||||
"help string."
|
||||
msgstr ""
|
||||
"Notez que ce changement est pris en compte à la fois dans le message "
|
||||
"d'erreur et dans le texte d'aide."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:451
|
||||
msgid ""
|
||||
|
@ -407,40 +418,55 @@ msgid ""
|
|||
"pretty common. It also matches the way the CPython executable handles its "
|
||||
"own verbosity argument (check the output of ``python --help``)::"
|
||||
msgstr ""
|
||||
"Essayons maintenant une approche différente pour jouer sur la verbosité, ce "
|
||||
"qui arrive fréquemment. Cela correspond également à comment le programme "
|
||||
"CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie "
|
||||
"de la commande ``python --help``) : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:470
|
||||
msgid ""
|
||||
"We have introduced another action, \"count\", to count the number of "
|
||||
"occurrences of a specific optional arguments:"
|
||||
msgstr ""
|
||||
"Nous avons introduit une autre action, \"count\", pour compter le nombre "
|
||||
"d’occurrences d'une argument optionnel en particulier :"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:498
|
||||
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."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:501
|
||||
msgid "It also behaves similar to \"store_true\" action."
|
||||
msgstr ""
|
||||
msgstr "Cela se comporte de la même manière que l'action \"store_true\"."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:503
|
||||
msgid ""
|
||||
"Now here's a demonstration of what the \"count\" action gives. You've "
|
||||
"probably seen this sort of usage before."
|
||||
msgstr ""
|
||||
"Maintenant voici une démonstration de ce que l'action \"count\" fait. Vous "
|
||||
"avez sûrement vu ce genre d'utilisation auparavant."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:506
|
||||
msgid ""
|
||||
"And if you don't specify the ``-v`` flag, that flag is considered to have "
|
||||
"``None`` value."
|
||||
msgstr ""
|
||||
"Et si vous ne spécifiez pas le option ``-v``, ce option sera considéré en "
|
||||
"tant que valeur ``None``."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:509
|
||||
msgid ""
|
||||
"As should be expected, specifying the long form of the flag, we should get "
|
||||
"the same output."
|
||||
msgstr ""
|
||||
"Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait "
|
||||
"obtenir la même sortie."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:512
|
||||
msgid ""
|
||||
|
@ -448,32 +474,39 @@ msgid ""
|
|||
"has acquired, but that can always be fixed by improving the documentation "
|
||||
"for our script (e.g. via the ``help`` keyword argument)."
|
||||
msgstr ""
|
||||
"Malheureusement, notre sortie d'aide n'est pas très informative à propos des "
|
||||
"nouvelles possibilités de notre programme, mais cela peut toujours être "
|
||||
"corrigé en améliorant sa documentation. (e.g. en utilisant le l'argument "
|
||||
"``help``)."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:516
|
||||
msgid "That last output exposes a bug in our program."
|
||||
msgstr ""
|
||||
msgstr "La dernière sortie du programme montre que celui-ci contient un bogue."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:519
|
||||
msgid "Let's fix::"
|
||||
msgstr ""
|
||||
msgstr "Corrigeons : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:538
|
||||
msgid "And this is what it gives:"
|
||||
msgstr ""
|
||||
msgstr "Et c'est ce que ça donne :"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:553
|
||||
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."
|
||||
msgstr ""
|
||||
"Les premières exécutions du programme sont correctes, et le bogue que nous "
|
||||
"avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= "
|
||||
"2 rende le programme aussi verbeux que possible."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:556
|
||||
msgid "Third output not so good."
|
||||
msgstr ""
|
||||
msgstr "La troisième sortie de programme n'est pas si bien que ça."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:558
|
||||
msgid "Let's fix that bug::"
|
||||
msgstr ""
|
||||
msgstr "Corrigeons ce bogue : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:575
|
||||
msgid ""
|
||||
|
@ -483,10 +516,15 @@ msgid ""
|
|||
"value, and that cannot be compared to an int value (hence the :exc:"
|
||||
"`TypeError` exception)."
|
||||
msgstr ""
|
||||
"Nous venons juste d'introduire un nouveau mot clef, ``default``. Nous "
|
||||
"l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. "
|
||||
"Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, "
|
||||
"il sera définit à ``None``, et ne pourra pas être comparé à une valeur de "
|
||||
"type entier (Une erreur :exc:`TypeError` serait alors levée)."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:582
|
||||
msgid "And:"
|
||||
msgstr ""
|
||||
msgstr "Et :"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:589
|
||||
msgid ""
|
||||
|
@ -494,16 +532,22 @@ msgid ""
|
|||
"scratched the surface. The :mod:`argparse` module is very powerful, and "
|
||||
"we'll explore a bit more of it before we end this tutorial."
|
||||
msgstr ""
|
||||
"Vous pouvez aller assez loin seulement avec ce que nous avons appris jusqu'à "
|
||||
"maintenant, et nous n'avons qu’aperçu la surface. Le module :mod:`argparse` "
|
||||
"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce "
|
||||
"tutoriel."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:596
|
||||
msgid "Getting a little more advanced"
|
||||
msgstr ""
|
||||
msgstr "Aller un peu plus loin"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:598
|
||||
msgid ""
|
||||
"What if we wanted to expand our tiny program to perform other powers, not "
|
||||
"just squares::"
|
||||
msgstr ""
|
||||
"Qu'en est il si nous souhaitons étendre notre mini programe pour le rendre "
|
||||
"capable de calculer d'autres puissances, et pas seulement des carrés : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653
|
||||
msgid "Output:"
|
||||
|
@ -515,10 +559,13 @@ msgid ""
|
|||
"that gets displayed. The following example instead uses verbosity level to "
|
||||
"display *more* text instead::"
|
||||
msgstr ""
|
||||
"Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité "
|
||||
"pour *changer* le texte qui est affiché. L'exemple suivant au contraire "
|
||||
"utilise le niveau de verbosité pour afficher *plus* de texte à la place : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:667
|
||||
msgid "Conflicting options"
|
||||
msgstr ""
|
||||
msgstr "Options en conflit"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:669
|
||||
msgid ""
|
||||
|
@ -529,12 +576,22 @@ msgid ""
|
|||
"the new functionality makes more sense: we'll introduce the ``--quiet`` "
|
||||
"option, which will be the opposite of the ``--verbose`` one::"
|
||||
msgstr ""
|
||||
"Jusque là, nous avons travaillé avec deux méthodes d'une instance de :class:"
|
||||
"`argparse.ArgumentParser`. En voici une troisième, :meth:"
|
||||
"`add_mutually_exclusive_group`. Elle nous permet de spécifier des options "
|
||||
"qui sont en conflit entre elles. Changeons aussi le reste du programme de "
|
||||
"telle sorte que la nouvelle fonctionnalité fasse sens : nous allons "
|
||||
"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--"
|
||||
"verbose`` : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:695
|
||||
msgid ""
|
||||
"Our program is now simpler, and we've lost some functionality for the sake "
|
||||
"of demonstration. Anyways, here's the output:"
|
||||
msgstr ""
|
||||
"Notre programme est maintenant plus simple, et nous avons perdu des "
|
||||
"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie "
|
||||
"du programme :"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:713
|
||||
msgid ""
|
||||
|
@ -542,12 +599,18 @@ msgid ""
|
|||
"the sort of flexibility you get, i.e. mixing long form options with short "
|
||||
"form ones."
|
||||
msgstr ""
|
||||
"Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour "
|
||||
"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, i.e. "
|
||||
"faire un mixe entre des options courtes et longues."
|
||||
|
||||
#: ../Doc/howto/argparse.rst:717
|
||||
msgid ""
|
||||
"Before we conclude, you probably want to tell your users the main purpose of "
|
||||
"your program, just in case they don't know::"
|
||||
msgstr ""
|
||||
"Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est "
|
||||
"le but principal de votre programme, juste dans le cas ou ils ne savent "
|
||||
"pas : ::"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:738
|
||||
msgid ""
|
||||
|
@ -555,10 +618,13 @@ msgid ""
|
|||
"tells us that we can either use ``-v`` or ``-q``, but not both at the same "
|
||||
"time:"
|
||||
msgstr ""
|
||||
"Notez cette nuance dans le texte d'utlisation. Les options `[-v | -q]``, qui "
|
||||
"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas "
|
||||
"les deux ensemble :"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:760
|
||||
msgid "Conclusion"
|
||||
msgstr ""
|
||||
msgstr "Conclusion"
|
||||
|
||||
#: ../Doc/howto/argparse.rst:762
|
||||
msgid ""
|
||||
|
@ -566,3 +632,7 @@ msgid ""
|
|||
"quite detailed and thorough, and full of examples. Having gone through this "
|
||||
"tutorial, you should easily digest them without feeling overwhelmed."
|
||||
msgstr ""
|
||||
"Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa "
|
||||
"documentation est assez détaillée complète et pleine d'exemples. En ayant "
|
||||
"accompli ce tutoriel, vous pourriez facilement comprendre cette "
|
||||
"documentation sans vous sentir dépassé."
|
||||
|
|
797
howto/clinic.po
797
howto/clinic.po
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,14 +21,14 @@ msgstr ""
|
|||
msgid "Porting Extension Modules to Python 3"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/cporting.rst:0
|
||||
msgid "author"
|
||||
msgstr "auteur"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:9
|
||||
msgid "Benjamin Peterson"
|
||||
msgstr "Benjamin Peterson"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:0
|
||||
msgid "Abstract"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:14
|
||||
msgid ""
|
||||
"Although changing the C-API was not one of Python 3's objectives, the many "
|
||||
|
@ -190,3 +190,6 @@ msgid ""
|
|||
"<http://cython.org/>`_. It translates a Python-like language to C. The "
|
||||
"extension modules it creates are compatible with Python 3 and Python 2."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Abstract"
|
||||
#~ msgstr "Résumé"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,18 +21,22 @@ msgstr ""
|
|||
msgid "Curses Programming with Python"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/curses.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/curses.rst:7
|
||||
msgid "A.M. Kuchling, Eric S. Raymond"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/curses.rst:0
|
||||
msgid "Release"
|
||||
msgstr "Version"
|
||||
|
||||
#: ../Doc/howto/curses.rst:8
|
||||
msgid "2.04"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/curses.rst:0
|
||||
msgid "Abstract"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: ../Doc/howto/curses.rst:13
|
||||
msgid ""
|
||||
"This document describes how to use the :mod:`curses` extension module to "
|
||||
|
@ -731,5 +735,5 @@ msgid ""
|
|||
"demonstrating some applications written using Urwid."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Release"
|
||||
#~ msgstr "Version"
|
||||
#~ msgid "Abstract"
|
||||
#~ msgstr "Résumé"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,16 +21,20 @@ msgstr ""
|
|||
msgid "Descriptor HowTo Guide"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:5
|
||||
msgid "Raymond Hettinger"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:6
|
||||
msgid "<python at rcn dot com>"
|
||||
#: ../Doc/howto/descriptor.rst:0
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:0
|
||||
msgid "Contents"
|
||||
#: ../Doc/howto/descriptor.rst:6
|
||||
msgid "<python at rcn dot com>"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:11
|
||||
|
@ -247,8 +251,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"The protocol is simple and offers exciting possibilities. Several use cases "
|
||||
"are so common that they have been packaged into individual function calls. "
|
||||
"Properties, bound and unbound methods, static methods, and class methods are "
|
||||
"all based on the descriptor protocol."
|
||||
"Properties, bound methods, static methods, and class methods are all based "
|
||||
"on the descriptor protocol."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:188
|
||||
|
@ -302,8 +306,8 @@ msgstr ""
|
|||
#: ../Doc/howto/descriptor.rst:268
|
||||
msgid ""
|
||||
"Class dictionaries store methods as functions. In a class definition, "
|
||||
"methods are written using :keyword:`def` and :keyword:`lambda`, the usual "
|
||||
"tools for creating functions. The only difference from regular functions is "
|
||||
"methods are written using :keyword:`def` or :keyword:`lambda`, the usual "
|
||||
"tools for creating functions. Methods only differ from regular functions in "
|
||||
"that the first argument is reserved for the object instance. By Python "
|
||||
"convention, the instance reference is called *self* but may be called *this* "
|
||||
"or any other variable name."
|
||||
|
@ -313,47 +317,26 @@ msgstr ""
|
|||
msgid ""
|
||||
"To support method calls, functions include the :meth:`__get__` method for "
|
||||
"binding methods during attribute access. This means that all functions are "
|
||||
"non-data descriptors which return bound or unbound methods depending whether "
|
||||
"they are invoked from an object or a class. In pure python, it works like "
|
||||
"this::"
|
||||
"non-data descriptors which return bound methods when they are invoked from "
|
||||
"an object. In pure python, it works like this::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:287
|
||||
#: ../Doc/howto/descriptor.rst:288
|
||||
msgid ""
|
||||
"Running the interpreter shows how the function descriptor works in practice::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:301
|
||||
msgid ""
|
||||
"The output suggests that bound and unbound methods are two different types. "
|
||||
"While they could have been implemented that way, the actual C implementation "
|
||||
"of :c:type:`PyMethod_Type` in :source:`Objects/classobject.c` is a single "
|
||||
"object with two different representations depending on whether the :attr:"
|
||||
"`im_self` field is set or is *NULL* (the C equivalent of ``None``)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:307
|
||||
msgid ""
|
||||
"Likewise, the effects of calling a method object depend on the :attr:"
|
||||
"`im_self` field. If set (meaning bound), the original function (stored in "
|
||||
"the :attr:`im_func` field) is called as expected with the first argument set "
|
||||
"to the instance. If unbound, all of the arguments are passed unchanged to "
|
||||
"the original function. The actual C implementation of :func:"
|
||||
"`instancemethod_call()` is only slightly more complex in that it includes "
|
||||
"some type checking."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:316
|
||||
#: ../Doc/howto/descriptor.rst:326
|
||||
msgid "Static Methods and Class Methods"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:318
|
||||
#: ../Doc/howto/descriptor.rst:328
|
||||
msgid ""
|
||||
"Non-data descriptors provide a simple mechanism for variations on the usual "
|
||||
"patterns of binding functions into methods."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:321
|
||||
#: ../Doc/howto/descriptor.rst:331
|
||||
msgid ""
|
||||
"To recap, functions have a :meth:`__get__` method so that they can be "
|
||||
"converted to a method when accessed as attributes. The non-data descriptor "
|
||||
|
@ -361,51 +344,51 @@ msgid ""
|
|||
"f(*args)`` becomes ``f(*args)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:326
|
||||
#: ../Doc/howto/descriptor.rst:336
|
||||
msgid "This chart summarizes the binding and its two most useful variants:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:329
|
||||
#: ../Doc/howto/descriptor.rst:339
|
||||
msgid "Transformation"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:329
|
||||
#: ../Doc/howto/descriptor.rst:339
|
||||
msgid "Called from an Object"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:329
|
||||
#: ../Doc/howto/descriptor.rst:339
|
||||
msgid "Called from a Class"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:332
|
||||
#: ../Doc/howto/descriptor.rst:342
|
||||
msgid "function"
|
||||
msgstr "fonction"
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:332
|
||||
#: ../Doc/howto/descriptor.rst:342
|
||||
msgid "f(obj, \\*args)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:332 ../Doc/howto/descriptor.rst:334
|
||||
#: ../Doc/howto/descriptor.rst:342 ../Doc/howto/descriptor.rst:344
|
||||
msgid "f(\\*args)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:334
|
||||
#: ../Doc/howto/descriptor.rst:344
|
||||
msgid "staticmethod"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:336
|
||||
#: ../Doc/howto/descriptor.rst:346
|
||||
msgid "classmethod"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:336
|
||||
#: ../Doc/howto/descriptor.rst:346
|
||||
msgid "f(type(obj), \\*args)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:336
|
||||
#: ../Doc/howto/descriptor.rst:346
|
||||
msgid "f(klass, \\*args)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:339
|
||||
#: ../Doc/howto/descriptor.rst:349
|
||||
msgid ""
|
||||
"Static methods return the underlying function without changes. Calling "
|
||||
"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object."
|
||||
|
@ -414,13 +397,13 @@ msgid ""
|
|||
"a class."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:345
|
||||
#: ../Doc/howto/descriptor.rst:355
|
||||
msgid ""
|
||||
"Good candidates for static methods are methods that do not reference the "
|
||||
"``self`` variable."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:348
|
||||
#: ../Doc/howto/descriptor.rst:358
|
||||
msgid ""
|
||||
"For instance, a statistics package may include a container class for "
|
||||
"experimental data. The class provides normal methods for computing the "
|
||||
|
@ -432,26 +415,26 @@ msgid ""
|
|||
"``s.erf(1.5) --> .9332`` or ``Sample.erf(1.5) --> .9332``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:357
|
||||
#: ../Doc/howto/descriptor.rst:367
|
||||
msgid ""
|
||||
"Since staticmethods return the underlying function with no changes, the "
|
||||
"example calls are unexciting::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:370
|
||||
#: ../Doc/howto/descriptor.rst:380
|
||||
msgid ""
|
||||
"Using the non-data descriptor protocol, a pure Python version of :func:"
|
||||
"`staticmethod` would look like this::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:382
|
||||
#: ../Doc/howto/descriptor.rst:392
|
||||
msgid ""
|
||||
"Unlike static methods, class methods prepend the class reference to the "
|
||||
"argument list before calling the function. This format is the same for "
|
||||
"whether the caller is an object or a class::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:397
|
||||
#: ../Doc/howto/descriptor.rst:407
|
||||
msgid ""
|
||||
"This behavior is useful whenever the function only needs to have a class "
|
||||
"reference and does not care about any underlying data. One use for "
|
||||
|
@ -460,11 +443,11 @@ msgid ""
|
|||
"keys. The pure Python equivalent is::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:413
|
||||
#: ../Doc/howto/descriptor.rst:423
|
||||
msgid "Now a new dictionary of unique keys can be constructed like this::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/descriptor.rst:418
|
||||
#: ../Doc/howto/descriptor.rst:428
|
||||
msgid ""
|
||||
"Using the non-data descriptor protocol, a pure Python version of :func:"
|
||||
"`classmethod` would look like this::"
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:38+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -21,10 +21,18 @@ msgstr ""
|
|||
msgid "Functional Programming HOWTO"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/functional.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/functional.rst:5
|
||||
msgid "A. M. Kuchling"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/functional.rst:0
|
||||
msgid "Release"
|
||||
msgstr "Version"
|
||||
|
||||
#: ../Doc/howto/functional.rst:6
|
||||
msgid "0.32"
|
||||
msgstr ""
|
||||
|
@ -707,7 +715,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/functional.rst:617
|
||||
msgid "Built-in functions"
|
||||
msgstr "Fonctions Natives"
|
||||
msgstr "Fonctions natives"
|
||||
|
||||
#: ../Doc/howto/functional.rst:619
|
||||
msgid ""
|
||||
|
@ -1368,6 +1376,3 @@ msgid ""
|
|||
":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new "
|
||||
"generator features in Python 2.5."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Release"
|
||||
#~ msgstr "Version"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -21,6 +21,10 @@ msgstr ""
|
|||
msgid "Instrumenting CPython with DTrace and SystemTap"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:0
|
||||
msgid "author"
|
||||
msgstr "auteur"
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:9
|
||||
msgid "David Malcolm"
|
||||
msgstr ""
|
||||
|
@ -178,112 +182,112 @@ msgstr ""
|
|||
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::"
|
||||
"this. For example, this line from the above example:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:261
|
||||
msgid "should instead read::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:265
|
||||
msgid "(assuming a debug build of CPython 3.6)"
|
||||
#: ../Doc/howto/instrumentation.rst:263
|
||||
msgid "should instead read:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:269
|
||||
msgid "(assuming a debug build of CPython 3.6)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:273
|
||||
msgid "Available static markers"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:275
|
||||
#: ../Doc/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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:278
|
||||
#: ../Doc/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``:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:282
|
||||
#: ../Doc/howto/instrumentation.rst:286
|
||||
msgid ""
|
||||
"``$arg1`` : ``(const char *)`` filename, accessible using "
|
||||
"``user_string($arg1)``"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:284
|
||||
#: ../Doc/howto/instrumentation.rst:288
|
||||
msgid ""
|
||||
"``$arg2`` : ``(const char *)`` function name, accessible using "
|
||||
"``user_string($arg2)``"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:287
|
||||
#: ../Doc/howto/instrumentation.rst:291
|
||||
msgid "``$arg3`` : ``int`` line number"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:291
|
||||
#: ../Doc/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 "
|
||||
"exception). It is only triggered for pure-Python (bytecode) functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:295
|
||||
#: ../Doc/howto/instrumentation.rst:299
|
||||
msgid "The arguments are the same as for :c:func:`function__entry`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:299
|
||||
#: ../Doc/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 "
|
||||
"triggered within C functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:303
|
||||
#: ../Doc/howto/instrumentation.rst:307
|
||||
msgid "The arguments are the same as for :c:func:`function__entry`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:307
|
||||
#: ../Doc/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()`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:312
|
||||
#: ../Doc/howto/instrumentation.rst:316
|
||||
msgid ""
|
||||
"Fires when the Python interpreter finishes a garbage collection cycle. "
|
||||
"``arg0`` is the number of collected objects."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:317
|
||||
#: ../Doc/howto/instrumentation.rst:321
|
||||
msgid "SystemTap Tapsets"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:319
|
||||
#: ../Doc/howto/instrumentation.rst:323
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:323
|
||||
#: ../Doc/howto/instrumentation.rst:327
|
||||
msgid "Here is a tapset file, based on a non-shared build of CPython:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:346
|
||||
#: ../Doc/howto/instrumentation.rst:350
|
||||
msgid ""
|
||||
"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/"
|
||||
"systemtap/tapset``), then these additional probepoints become available:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:352
|
||||
#: ../Doc/howto/instrumentation.rst:356
|
||||
msgid ""
|
||||
"This probe point indicates that execution of a Python function has begun. It "
|
||||
"is only triggered for pure-python (bytecode) functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:357
|
||||
#: ../Doc/howto/instrumentation.rst:361
|
||||
msgid ""
|
||||
"This probe point is the converse of :c:func:`python.function.return`, and "
|
||||
"indicates that execution of a Python function has ended (either via "
|
||||
|
@ -291,18 +295,18 @@ msgid ""
|
|||
"(bytecode) functions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:364
|
||||
#: ../Doc/howto/instrumentation.rst:368
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:365
|
||||
#: ../Doc/howto/instrumentation.rst:369
|
||||
msgid ""
|
||||
"This SystemTap script uses the tapset above to more cleanly implement the "
|
||||
"example given above of tracing the Python function-call hierarchy, without "
|
||||
"needing to directly name the static markers:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/instrumentation.rst:384
|
||||
#: ../Doc/howto/instrumentation.rst:388
|
||||
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 "
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,6 +21,10 @@ msgstr ""
|
|||
msgid "An introduction to the ipaddress module"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/ipaddress.rst:0
|
||||
msgid "author"
|
||||
msgstr "auteur"
|
||||
|
||||
#: ../Doc/howto/ipaddress.rst:11
|
||||
msgid "Peter Moody"
|
||||
msgstr ""
|
||||
|
@ -29,10 +33,6 @@ msgstr ""
|
|||
msgid "Nick Coghlan"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/ipaddress.rst:0
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/ipaddress.rst:16
|
||||
msgid ""
|
||||
"This document aims to provide a gentle introduction to the :mod:`ipaddress` "
|
||||
|
|
File diff suppressed because it is too large
Load Diff
390
howto/logging.po
390
howto/logging.po
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,14 +21,14 @@ msgstr ""
|
|||
msgid "Porting Python 2 Code to Python 3"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:0
|
||||
msgid "author"
|
||||
msgstr "auteur"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:7
|
||||
msgid "Brett Cannon"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:0
|
||||
msgid "Abstract"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:11
|
||||
msgid ""
|
||||
"With Python 3 being the future of Python while Python 2 is still in active "
|
||||
|
@ -631,3 +631,6 @@ msgid ""
|
|||
"binary data, helping to make sure everything functions as expected in both "
|
||||
"versions of Python."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Abstract"
|
||||
#~ msgstr "Résumé"
|
||||
|
|
758
howto/regex.po
758
howto/regex.po
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\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"
|
||||
|
@ -21,14 +21,14 @@ msgstr ""
|
|||
msgid "Socket Programming HOWTO"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/sockets.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:7
|
||||
msgid "Gordon McMillan"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/sockets.rst:0
|
||||
msgid "Abstract"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:12
|
||||
msgid ""
|
||||
"Sockets are used nearly everywhere, but are one of the most severely "
|
||||
|
@ -475,3 +475,6 @@ msgid ""
|
|||
"differently on Windows. In fact, on Windows I usually use threads (which "
|
||||
"work very, very well) with my sockets."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Abstract"
|
||||
#~ msgstr "Résumé"
|
||||
|
|
155
howto/sorting.po
155
howto/sorting.po
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:39+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,15 +19,23 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/sorting.rst:4
|
||||
msgid "Sorting HOW TO"
|
||||
msgstr ""
|
||||
msgstr "Guide pour le tri"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:6
|
||||
msgid "Andrew Dalke and Raymond Hettinger"
|
||||
msgstr ""
|
||||
msgstr "Andrew Dalke et Raymond Hettinger"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:0
|
||||
msgid "Release"
|
||||
msgstr "Version"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:7
|
||||
msgid "0.1"
|
||||
msgstr ""
|
||||
msgstr "0.1"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:10
|
||||
msgid ""
|
||||
|
@ -35,22 +43,29 @@ msgid ""
|
|||
"in-place. There is also a :func:`sorted` built-in function that builds a "
|
||||
"new sorted list from an iterable."
|
||||
msgstr ""
|
||||
"Les listes Python ont une méthode native :meth:`list.sort` qui modifie les "
|
||||
"listes elles-mêmes. Il y a également une fonction native :func:`sorted` qui "
|
||||
"construit une nouvelle liste triée depuis un itérable."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:14
|
||||
msgid ""
|
||||
"In this document, we explore the various techniques for sorting data using "
|
||||
"Python."
|
||||
msgstr ""
|
||||
"Dans ce document, nous explorons différentes techniques pour trier les "
|
||||
"données en Python."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:18
|
||||
msgid "Sorting Basics"
|
||||
msgstr ""
|
||||
msgstr "Les bases du tri"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:20
|
||||
msgid ""
|
||||
"A simple ascending sort is very easy: just call the :func:`sorted` function. "
|
||||
"It returns a new sorted list::"
|
||||
msgstr ""
|
||||
"Un tri ascendant simple est très facile : il suffit d'appeler la fonction :"
|
||||
"func:`sorted`. Elle renvoie une nouvelle liste triée : ::"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:26
|
||||
msgid ""
|
||||
|
@ -59,26 +74,37 @@ msgid ""
|
|||
"than :func:`sorted` - but if you don't need the original list, it's slightly "
|
||||
"more efficient."
|
||||
msgstr ""
|
||||
"Vous pouvez aussi utiliser la méthode :meth:`list.sort`. Elle modifie la "
|
||||
"liste elle-même (et renvoie ``None`` pour éviter les confusions). "
|
||||
"Habituellement, cette méthode est moins pratique que la fonction :func:"
|
||||
"`sorted` - mais si vous n'avez pas besoin de la liste originale, cette "
|
||||
"technique est légèrement plus efficace."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:36
|
||||
msgid ""
|
||||
"Another difference is that the :meth:`list.sort` method is only defined for "
|
||||
"lists. In contrast, the :func:`sorted` function accepts any iterable."
|
||||
msgstr ""
|
||||
"Une autre différence est que la méthode :meth:`list.sort` est seulement "
|
||||
"définie pour les listes. Au contraire, la fonction :func:`sorted` accepte "
|
||||
"n'importe quel itérable."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:43
|
||||
msgid "Key Functions"
|
||||
msgstr ""
|
||||
msgstr "Fonctions clef"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:45
|
||||
msgid ""
|
||||
"Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify "
|
||||
"a function to be called on each list element prior to making comparisons."
|
||||
msgstr ""
|
||||
":meth:`list.sort` et :func:`sorted` ont un paramètre nommé *key* afin de "
|
||||
"spécifier une fonction qui peut être appelée sur chaque élément de la liste "
|
||||
"afin d'effectuer des comparaisons."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:48
|
||||
msgid "For example, here's a case-insensitive string comparison:"
|
||||
msgstr ""
|
||||
msgstr "Par exemple, voici une comparaison de texte insensible à la casse:"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:53
|
||||
msgid ""
|
||||
|
@ -86,21 +112,29 @@ msgid ""
|
|||
"argument and returns a key to use for sorting purposes. This technique is "
|
||||
"fast because the key function is called exactly once for each input record."
|
||||
msgstr ""
|
||||
"La valeur du paramètre *key* devrait être une fonction qui prend un seul "
|
||||
"argument et renvoie une clef à utiliser à des fins de tri. Cette technique "
|
||||
"est rapide car la fonction clef est appelée exactement une seule fois pour "
|
||||
"chaque enregistrement en entrée."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:57
|
||||
msgid ""
|
||||
"A common pattern is to sort complex objects using some of the object's "
|
||||
"indices as keys. For example:"
|
||||
msgstr ""
|
||||
"Un usage fréquent est de faire un tri sur des objets complexes en utilisant "
|
||||
"les indices des objets en tant que clef. Par exemple :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:68
|
||||
msgid ""
|
||||
"The same technique works for objects with named attributes. For example:"
|
||||
msgstr ""
|
||||
"La même technique marche pour des objets avec des attributs nommés. Par "
|
||||
"exemple :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:87
|
||||
msgid "Operator Module Functions"
|
||||
msgstr ""
|
||||
msgstr "Fonctions du module *operator*"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:89
|
||||
msgid ""
|
||||
|
@ -109,20 +143,29 @@ msgid ""
|
|||
"`operator` module has :func:`~operator.itemgetter`, :func:`~operator."
|
||||
"attrgetter`, and a :func:`~operator.methodcaller` function."
|
||||
msgstr ""
|
||||
"Les fonctions clef utilisées ci-dessus sont courantes, donc Python fournit "
|
||||
"des fonctions permettant de rendre plus simple et plus rapide l'usage des "
|
||||
"fonctions d'accesseur. Le module :mod:`operator` contient les fonctions :"
|
||||
"func:`~operator.itemgetter`, :func:`~operator.attrgetter`, et :func:"
|
||||
"`~operator.methodcaller`."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:94
|
||||
msgid "Using those functions, the above examples become simpler and faster:"
|
||||
msgstr ""
|
||||
"En utilisant ces fonctions, les exemples au dessus deviennent plus simples "
|
||||
"et plus rapides :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:104
|
||||
msgid ""
|
||||
"The operator module functions allow multiple levels of sorting. For example, "
|
||||
"to sort by *grade* then by *age*:"
|
||||
msgstr ""
|
||||
"Les fonctions du module *operator* permettent plusieurs niveaux de tri. Par "
|
||||
"exemple, pour trier par *grade* puis par *age* :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:114
|
||||
msgid "Ascending and Descending"
|
||||
msgstr ""
|
||||
msgstr "Ascendant et descendant"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:116
|
||||
msgid ""
|
||||
|
@ -130,10 +173,14 @@ msgid ""
|
|||
"a boolean value. This is used to flag descending sorts. For example, to get "
|
||||
"the student data in reverse *age* order:"
|
||||
msgstr ""
|
||||
":meth:`list.sort` and :func:`sorted` acceptent un paramètre nommé *reverse* "
|
||||
"avec une valeur booléenne. C'est utilisé pour déterminer l'ordre descendant "
|
||||
"des tris. Par exemple, pour avoir les données des étudiants dans l'ordre "
|
||||
"inverse par *age* :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:127
|
||||
msgid "Sort Stability and Complex Sorts"
|
||||
msgstr ""
|
||||
msgstr "Stabilité des tris et tris complexes"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:129
|
||||
msgid ""
|
||||
|
@ -141,12 +188,18 @@ msgid ""
|
|||
"Sorting_algorithm#Stability>`_\\. That means that when multiple records have "
|
||||
"the same key, their original order is preserved."
|
||||
msgstr ""
|
||||
"Les tris sont garantis `stables <https://fr.wikipedia.org/wiki/"
|
||||
"Algorithme_de_tri#Caract.C3.A8re_stable>`_\\. Cela signifie que lorsque "
|
||||
"plusieurs enregistrements on la même clef, leur ordre original est préservé."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:137
|
||||
msgid ""
|
||||
"Notice how the two records for *blue* retain their original order so that "
|
||||
"``('blue', 1)`` is guaranteed to precede ``('blue', 2)``."
|
||||
msgstr ""
|
||||
"Notez comme les deux enregistrements pour *blue* gardent leur ordre original "
|
||||
"et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', "
|
||||
"2)``."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:140
|
||||
msgid ""
|
||||
|
@ -154,6 +207,10 @@ msgid ""
|
|||
"steps. For example, to sort the student data by descending *grade* and then "
|
||||
"ascending *age*, do the *age* sort first and then sort again using *grade*:"
|
||||
msgstr ""
|
||||
"Cette propriété fantastique vous permet de construire des tris complexes "
|
||||
"dans des tris en plusieurs étapes. Par exemple, afin de sortir les données "
|
||||
"des étudiants en ordre descendant par *grade* puis en ordre ascendant par "
|
||||
"*age*, effectuez un tri par *age* en premier puis un second tri par *grade* :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:148
|
||||
msgid ""
|
||||
|
@ -161,35 +218,46 @@ msgid ""
|
|||
"Python does multiple sorts efficiently because it can take advantage of any "
|
||||
"ordering already present in a dataset."
|
||||
msgstr ""
|
||||
"L'algorithme `Timsort <https://fr.wikipedia.org/wiki/Timsort>`_ utilisé dans "
|
||||
"Python effectue de multiples tris efficacement parce qu'il peut tirer "
|
||||
"avantage de n'importe quel ordre de existant dans un jeu de données."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:153
|
||||
msgid "The Old Way Using Decorate-Sort-Undecorate"
|
||||
msgstr ""
|
||||
msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:155
|
||||
msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:"
|
||||
msgstr ""
|
||||
"Cette technique est appelée Decorate-Sort-Undecorate et se base sur trois "
|
||||
"étapes :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:157
|
||||
msgid ""
|
||||
"First, the initial list is decorated with new values that control the sort "
|
||||
"order."
|
||||
msgstr ""
|
||||
"Premièrement, la liste de départ est décorée avec les nouvelles valeurs qui "
|
||||
"contrôlent l'ordre du tri."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:159
|
||||
msgid "Second, the decorated list is sorted."
|
||||
msgstr ""
|
||||
msgstr "En second lieu, la liste décorée est triée."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:161
|
||||
msgid ""
|
||||
"Finally, the decorations are removed, creating a list that contains only the "
|
||||
"initial values in the new order."
|
||||
msgstr ""
|
||||
"Enfin, la décoration est supprimée, créant ainsi une liste qui contient "
|
||||
"seulement la valeur initiale dans le nouvel ordre."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:164
|
||||
msgid ""
|
||||
"For example, to sort the student data by *grade* using the DSU approach:"
|
||||
msgstr ""
|
||||
"Par exemple, pour trier les données étudiant par *grade* en utilisant "
|
||||
"l'approche DSU :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:171
|
||||
msgid ""
|
||||
|
@ -197,18 +265,25 @@ msgid ""
|
|||
"items are compared; if they are the same then the second items are compared, "
|
||||
"and so on."
|
||||
msgstr ""
|
||||
"Cette technique marche parsce que les tuples sont comparés par ordre "
|
||||
"lexicographique; les premiers objets sont comparés; si il y a des objets "
|
||||
"identiques, alors l'objet suivant est comparé, et ainsi de suite."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:175
|
||||
msgid ""
|
||||
"It is not strictly necessary in all cases to include the index *i* in the "
|
||||
"decorated list, but including it gives two benefits:"
|
||||
msgstr ""
|
||||
"Il n'est pas strictement nécessaire dans tous les cas d’inclure l'indice *i* "
|
||||
"dans la liste décorée, mais l'inclure donne deux avantages :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:178
|
||||
msgid ""
|
||||
"The sort is stable -- if two items have the same key, their order will be "
|
||||
"preserved in the sorted list."
|
||||
msgstr ""
|
||||
"Le tri est stable -- si deux objets on la même clef, leur ordre sera "
|
||||
"préservé dans la liste triée."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:181
|
||||
msgid ""
|
||||
|
@ -217,6 +292,10 @@ msgid ""
|
|||
"example the original list could contain complex numbers which cannot be "
|
||||
"sorted directly."
|
||||
msgstr ""
|
||||
"Les objets d'origine ne sont pas nécessairement comparables car l'ordre des "
|
||||
"tuples décorés sera déterminé par au plus les deux premiers objets. Donc par "
|
||||
"exemple la liste originale pourrait contenir des nombres complexes qui "
|
||||
"pourraient ne pas être triés directement."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:186
|
||||
msgid ""
|
||||
|
@ -224,16 +303,21 @@ msgid ""
|
|||
"org/wiki/Schwartzian_transform>`_\\, after Randal L. Schwartz, who "
|
||||
"popularized it among Perl programmers."
|
||||
msgstr ""
|
||||
"Un autre nom pour cette technique est `Schwartzian transform <https://en."
|
||||
"wikipedia.org/wiki/Schwartzian_transform>`_\\, après que Randal L. Schwartz "
|
||||
"l'ait popularisé chez les développeurs Perl."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:190
|
||||
msgid ""
|
||||
"Now that Python sorting provides key-functions, this technique is not often "
|
||||
"needed."
|
||||
msgstr ""
|
||||
"Maintenant que le tri Python fournit des fonctions-clef, cette technique "
|
||||
"n'est plus souvent utilisée."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:194
|
||||
msgid "The Old Way Using the *cmp* Parameter"
|
||||
msgstr ""
|
||||
msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:196
|
||||
msgid ""
|
||||
|
@ -242,6 +326,11 @@ msgid ""
|
|||
"arguments. Instead, all of the Py2.x versions supported a *cmp* parameter to "
|
||||
"handle user specified comparison functions."
|
||||
msgstr ""
|
||||
"Plusieurs construction données dans ce guide se basent sur Python 2.4 ou "
|
||||
"plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la méthode :"
|
||||
"meth:`list.sort` ne prenait pas d'arguments nommés. À la place, toutes les "
|
||||
"versions Py2.x utilisaient un paramètre *cmp* pour prendre en charge les "
|
||||
"fonctions de comparaisons définies par les utilisateurs."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:201
|
||||
msgid ""
|
||||
|
@ -249,6 +338,9 @@ msgid ""
|
|||
"effort to simplify and unify the language, eliminating the conflict between "
|
||||
"rich comparisons and the :meth:`__cmp__` magic method)."
|
||||
msgstr ""
|
||||
"En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre d'un "
|
||||
"effort plus général pour simplifier et unifier le langage, en éliminant le "
|
||||
"conflit entre les comparaisons riches et la méthode magique :meth:`__cmp__`)."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:205
|
||||
msgid ""
|
||||
|
@ -257,10 +349,15 @@ msgid ""
|
|||
"then return a negative value for less-than, return zero if they are equal, "
|
||||
"or return a positive value for greater-than. For example, we can do:"
|
||||
msgstr ""
|
||||
"En Py2.x, le tri permettait en paramètre une fonction optionnelle qui peut "
|
||||
"être appelée pour faire des comparaisons. Cette fonction devrait prendre "
|
||||
"deux arguments à comparer pour renvoyer une valeur négative pour inférieur-"
|
||||
"à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur positive pour "
|
||||
"supérieur-à. Par exemple, nous pouvons faire :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:215
|
||||
msgid "Or you can reverse the order of comparison with:"
|
||||
msgstr ""
|
||||
msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:222
|
||||
msgid ""
|
||||
|
@ -268,26 +365,36 @@ msgid ""
|
|||
"have the user supplying a comparison function and you need to convert that "
|
||||
"to a key function. The following wrapper makes that easy to do::"
|
||||
msgstr ""
|
||||
"En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent "
|
||||
"survenir quand des utilisateurs fournissent une fonction de comparaison et "
|
||||
"qu'il faut convertir cette fonction en une fonction-clef. La fonction "
|
||||
"d'encapsulation suivante rend cela plus facile à faire : ::"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:245
|
||||
msgid "To convert to a key function, just wrap the old comparison function:"
|
||||
msgstr ""
|
||||
"Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne "
|
||||
"fonction de comparaison :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:256
|
||||
msgid ""
|
||||
"In Python 3.2, the :func:`functools.cmp_to_key` function was added to the :"
|
||||
"mod:`functools` module in the standard library."
|
||||
msgstr ""
|
||||
"En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au "
|
||||
"module :mod:`functools` dans la librairie standard."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:260
|
||||
msgid "Odd and Ends"
|
||||
msgstr ""
|
||||
msgstr "Curiosités et conclusion"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:262
|
||||
msgid ""
|
||||
"For locale aware sorting, use :func:`locale.strxfrm` for a key function or :"
|
||||
"func:`locale.strcoll` for a comparison function."
|
||||
msgstr ""
|
||||
"Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que "
|
||||
"fonction clef ou :func:`locale.strcoll` comme fonction de comparaison."
|
||||
|
||||
#: ../Doc/howto/sorting.rst:265
|
||||
msgid ""
|
||||
|
@ -296,6 +403,10 @@ msgid ""
|
|||
"simulated without the parameter by using the builtin :func:`reversed` "
|
||||
"function twice:"
|
||||
msgstr ""
|
||||
"Le paramètre *reverse* maintient toujours un tri stable (de telle sorte que "
|
||||
"les enregistrements avec des clef égales gardent le même ordre). Notez que "
|
||||
"cet effet peut être simulé sans le paramètre en utilisant la fonction "
|
||||
"native :func:`reversed` deux fois :"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:277
|
||||
msgid ""
|
||||
|
@ -303,6 +414,10 @@ msgid ""
|
|||
"comparisons between two objects. So, it is easy to add a standard sort order "
|
||||
"to a class by defining an :meth:`__lt__` method::"
|
||||
msgstr ""
|
||||
"Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` "
|
||||
"lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est "
|
||||
"facile d'ajouter un ordre de tri standard à une classe en définissant sa "
|
||||
"méthode :meth:`__lt__` : ::"
|
||||
|
||||
#: ../Doc/howto/sorting.rst:285
|
||||
msgid ""
|
||||
|
@ -311,6 +426,8 @@ msgid ""
|
|||
"grades are stored in a dictionary, they can be used to sort a separate list "
|
||||
"of student names:"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Release"
|
||||
#~ msgstr "Version"
|
||||
"Les fonctions clef n'ont pas besoin de dépendre directement des objets "
|
||||
"triés. Une fonction clef peut aussi accéder à des ressources externes. En "
|
||||
"l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, "
|
||||
"ils peuvent être utilisés pour trier une liste différentes de noms "
|
||||
"d'étudiants :"
|
||||
|
|
251
howto/unicode.po
251
howto/unicode.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -21,6 +21,10 @@ msgstr ""
|
|||
msgid "Unicode HOWTO"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:0
|
||||
msgid "Release"
|
||||
msgstr "Version"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:7
|
||||
msgid "1.12"
|
||||
msgstr ""
|
||||
|
@ -61,16 +65,16 @@ msgstr ""
|
|||
msgid ""
|
||||
"For a while people just wrote programs that didn't display accents. In the "
|
||||
"mid-1980s an Apple II BASIC program written by a French speaker might have "
|
||||
"lines like these::"
|
||||
"lines like these:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:38
|
||||
#: ../Doc/howto/unicode.rst:40
|
||||
msgid ""
|
||||
"Those messages should contain accents (terminée, paramètre, enregistrés) and "
|
||||
"they just look wrong to someone who can read French."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:41
|
||||
#: ../Doc/howto/unicode.rst:43
|
||||
msgid ""
|
||||
"In the 1980s, almost all personal computers were 8-bit, meaning that bytes "
|
||||
"could hold values ranging from 0 to 255. ASCII codes only went up to 127, "
|
||||
|
@ -83,7 +87,7 @@ msgid ""
|
|||
"catch on."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:50
|
||||
#: ../Doc/howto/unicode.rst:52
|
||||
msgid ""
|
||||
"255 characters aren't very many. For example, you can't fit both the "
|
||||
"accented characters used in Western Europe and the Cyrillic alphabet used "
|
||||
|
@ -91,7 +95,7 @@ msgid ""
|
|||
"characters."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:54
|
||||
#: ../Doc/howto/unicode.rst:56
|
||||
msgid ""
|
||||
"You could write files using different codes (all your Russian files in a "
|
||||
"coding system called KOI8, all your French files in a different coding "
|
||||
|
@ -100,7 +104,7 @@ msgid ""
|
|||
"this problem, and the Unicode standardization effort began."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:60
|
||||
#: ../Doc/howto/unicode.rst:62
|
||||
msgid ""
|
||||
"Unicode started out using 16-bit characters instead of 8-bit characters. 16 "
|
||||
"bits means you have 2^16 = 65,536 distinct values available, making it "
|
||||
|
@ -111,14 +115,14 @@ msgid ""
|
|||
"codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:68
|
||||
#: ../Doc/howto/unicode.rst:70
|
||||
msgid ""
|
||||
"There's a related ISO standard, ISO 10646. Unicode and ISO 10646 were "
|
||||
"originally separate efforts, but the specifications were merged with the 1.1 "
|
||||
"revision of Unicode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:72
|
||||
#: ../Doc/howto/unicode.rst:74
|
||||
msgid ""
|
||||
"(This discussion of Unicode's history is highly simplified. The precise "
|
||||
"historical details aren't necessary for understanding how to use Unicode "
|
||||
|
@ -127,11 +131,11 @@ msgid ""
|
|||
"wikipedia.org/wiki/Unicode#History>`_ for more information.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:81
|
||||
#: ../Doc/howto/unicode.rst:83
|
||||
msgid "Definitions"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:83
|
||||
#: ../Doc/howto/unicode.rst:85
|
||||
msgid ""
|
||||
"A **character** is the smallest possible component of a text. 'A', 'B', "
|
||||
"'C', etc., are all different characters. So are 'È' and 'Í'. Characters "
|
||||
|
@ -142,7 +146,7 @@ msgid ""
|
|||
"different meanings."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:91
|
||||
#: ../Doc/howto/unicode.rst:93
|
||||
msgid ""
|
||||
"The Unicode standard describes how characters are represented by **code "
|
||||
"points**. A code point is an integer value, usually denoted in base 16. In "
|
||||
|
@ -152,7 +156,7 @@ msgid ""
|
|||
"points:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:105
|
||||
#: ../Doc/howto/unicode.rst:107
|
||||
msgid ""
|
||||
"Strictly, these definitions imply that it's meaningless to say 'this is "
|
||||
"character ``U+12CA``'. ``U+12CA`` is a code point, which represents some "
|
||||
|
@ -161,7 +165,7 @@ msgid ""
|
|||
"and characters will sometimes be forgotten."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:111
|
||||
#: ../Doc/howto/unicode.rst:113
|
||||
msgid ""
|
||||
"A character is represented on a screen or on paper by a set of graphical "
|
||||
"elements that's called a **glyph**. The glyph for an uppercase A, for "
|
||||
|
@ -171,11 +175,11 @@ msgid ""
|
|||
"generally the job of a GUI toolkit or a terminal's font renderer."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:120
|
||||
#: ../Doc/howto/unicode.rst:122
|
||||
msgid "Encodings"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:122
|
||||
#: ../Doc/howto/unicode.rst:124
|
||||
msgid ""
|
||||
"To summarize the previous section: a Unicode string is a sequence of code "
|
||||
"points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). "
|
||||
|
@ -184,23 +188,23 @@ msgid ""
|
|||
"into a sequence of bytes are called an **encoding**."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:128
|
||||
#: ../Doc/howto/unicode.rst:130
|
||||
msgid ""
|
||||
"The first encoding you might think of is an array of 32-bit integers. In "
|
||||
"this representation, the string \"Python\" would look like this:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:137
|
||||
#: ../Doc/howto/unicode.rst:139
|
||||
msgid ""
|
||||
"This representation is straightforward but using it presents a number of "
|
||||
"problems."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:140
|
||||
#: ../Doc/howto/unicode.rst:142
|
||||
msgid "It's not portable; different processors order the bytes differently."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:142
|
||||
#: ../Doc/howto/unicode.rst:144
|
||||
msgid ""
|
||||
"It's very wasteful of space. In most texts, the majority of the code points "
|
||||
"are less than 127, or less than 255, so a lot of space is occupied by "
|
||||
|
@ -211,46 +215,46 @@ msgid ""
|
|||
"factor of 4 is intolerable."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:150
|
||||
#: ../Doc/howto/unicode.rst:152
|
||||
msgid ""
|
||||
"It's not compatible with existing C functions such as ``strlen()``, so a new "
|
||||
"family of wide string functions would need to be used."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:153
|
||||
#: ../Doc/howto/unicode.rst:155
|
||||
msgid ""
|
||||
"Many Internet standards are defined in terms of textual data, and can't "
|
||||
"handle content with embedded zero bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:156
|
||||
#: ../Doc/howto/unicode.rst:158
|
||||
msgid ""
|
||||
"Generally people don't use this encoding, instead choosing other encodings "
|
||||
"that are more efficient and convenient. UTF-8 is probably the most commonly "
|
||||
"supported encoding; it will be discussed below."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:160
|
||||
#: ../Doc/howto/unicode.rst:162
|
||||
msgid ""
|
||||
"Encodings don't have to handle every possible Unicode character, and most "
|
||||
"encodings don't. The rules for converting a Unicode string into the ASCII "
|
||||
"encoding, for example, are simple; for each code point:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:164
|
||||
#: ../Doc/howto/unicode.rst:166
|
||||
msgid ""
|
||||
"If the code point is < 128, each byte is the same as the value of the code "
|
||||
"point."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:167
|
||||
#: ../Doc/howto/unicode.rst:169
|
||||
msgid ""
|
||||
"If the code point is 128 or greater, the Unicode string can't be represented "
|
||||
"in this encoding. (Python raises a :exc:`UnicodeEncodeError` exception in "
|
||||
"this case.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:171
|
||||
#: ../Doc/howto/unicode.rst:173
|
||||
msgid ""
|
||||
"Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code "
|
||||
"points 0--255 are identical to the Latin-1 values, so converting to this "
|
||||
|
@ -259,7 +263,7 @@ msgid ""
|
|||
"Latin-1."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:176
|
||||
#: ../Doc/howto/unicode.rst:178
|
||||
msgid ""
|
||||
"Encodings don't have to be simple one-to-one mappings like Latin-1. "
|
||||
"Consider IBM's EBCDIC, which was used on IBM mainframes. Letter values "
|
||||
|
@ -269,7 +273,7 @@ msgid ""
|
|||
"conversion, but this is largely an internal detail."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:183
|
||||
#: ../Doc/howto/unicode.rst:185
|
||||
msgid ""
|
||||
"UTF-8 is one of the most commonly used encodings. UTF stands for \"Unicode "
|
||||
"Transformation Format\", and the '8' means that 8-bit numbers are used in "
|
||||
|
@ -277,26 +281,26 @@ msgid ""
|
|||
"less frequently used than UTF-8.) UTF-8 uses the following rules:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:188
|
||||
#: ../Doc/howto/unicode.rst:190
|
||||
msgid ""
|
||||
"If the code point is < 128, it's represented by the corresponding byte value."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:189
|
||||
#: ../Doc/howto/unicode.rst:191
|
||||
msgid ""
|
||||
"If the code point is >= 128, it's turned into a sequence of two, three, or "
|
||||
"four bytes, where each byte of the sequence is between 128 and 255."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:192
|
||||
#: ../Doc/howto/unicode.rst:194
|
||||
msgid "UTF-8 has several convenient properties:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:194
|
||||
#: ../Doc/howto/unicode.rst:196
|
||||
msgid "It can handle any Unicode code point."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:195
|
||||
#: ../Doc/howto/unicode.rst:197
|
||||
msgid ""
|
||||
"A Unicode string is turned into a sequence of bytes containing no embedded "
|
||||
"zero bytes. This avoids byte-ordering issues, and means UTF-8 strings can "
|
||||
|
@ -304,29 +308,29 @@ msgid ""
|
|||
"that can't handle zero bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:199
|
||||
#: ../Doc/howto/unicode.rst:201
|
||||
msgid "A string of ASCII text is also valid UTF-8 text."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:200
|
||||
#: ../Doc/howto/unicode.rst:202
|
||||
msgid ""
|
||||
"UTF-8 is fairly compact; the majority of commonly used characters can be "
|
||||
"represented with one or two bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:202
|
||||
#: ../Doc/howto/unicode.rst:204
|
||||
msgid ""
|
||||
"If bytes are corrupted or lost, it's possible to determine the start of the "
|
||||
"next UTF-8-encoded code point and resynchronize. It's also unlikely that "
|
||||
"random 8-bit data will look like valid UTF-8."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:209 ../Doc/howto/unicode.rst:483
|
||||
#: ../Doc/howto/unicode.rst:703
|
||||
#: ../Doc/howto/unicode.rst:211 ../Doc/howto/unicode.rst:485
|
||||
#: ../Doc/howto/unicode.rst:705
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:211
|
||||
#: ../Doc/howto/unicode.rst:213
|
||||
msgid ""
|
||||
"The `Unicode Consortium site <http://www.unicode.org>`_ has character "
|
||||
"charts, a glossary, and PDF versions of the Unicode specification. Be "
|
||||
|
@ -335,14 +339,14 @@ msgid ""
|
|||
"the site."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:216
|
||||
#: ../Doc/howto/unicode.rst:218
|
||||
msgid ""
|
||||
"To help understand the standard, Jukka Korpela has written `an introductory "
|
||||
"guide <https://www.cs.tut.fi/~jkorpela/unicode/guide.html>`_ to reading the "
|
||||
"Unicode character tables."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:220
|
||||
#: ../Doc/howto/unicode.rst:222
|
||||
msgid ""
|
||||
"Another `good introductory article <http://www.joelonsoftware.com/articles/"
|
||||
"Unicode.html>`_ was written by Joel Spolsky. If this introduction didn't "
|
||||
|
@ -350,28 +354,28 @@ msgid ""
|
|||
"before continuing."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:225
|
||||
#: ../Doc/howto/unicode.rst:227
|
||||
msgid ""
|
||||
"Wikipedia entries are often helpful; see the entries for \"`character "
|
||||
"encoding <https://en.wikipedia.org/wiki/Character_encoding>`_\" and `UTF-8 "
|
||||
"<https://en.wikipedia.org/wiki/UTF-8>`_, for example."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:231
|
||||
#: ../Doc/howto/unicode.rst:233
|
||||
msgid "Python's Unicode Support"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:233
|
||||
#: ../Doc/howto/unicode.rst:235
|
||||
msgid ""
|
||||
"Now that you've learned the rudiments of Unicode, we can look at Python's "
|
||||
"Unicode features."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:237
|
||||
#: ../Doc/howto/unicode.rst:239
|
||||
msgid "The String Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:239
|
||||
#: ../Doc/howto/unicode.rst:241
|
||||
msgid ""
|
||||
"Since Python 3.0, the language features a :class:`str` type that contain "
|
||||
"Unicode characters, meaning any string created using ``\"unicode rocks!\"``, "
|
||||
|
@ -379,24 +383,24 @@ msgid ""
|
|||
"Unicode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:243
|
||||
#: ../Doc/howto/unicode.rst:245
|
||||
msgid ""
|
||||
"The default encoding for Python source code is UTF-8, so you can simply "
|
||||
"include a Unicode character in a string literal::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:253
|
||||
#: ../Doc/howto/unicode.rst:255
|
||||
msgid ""
|
||||
"You can use a different encoding from UTF-8 by putting a specially-formatted "
|
||||
"comment as the first or second line of the source code::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:258
|
||||
#: ../Doc/howto/unicode.rst:260
|
||||
msgid ""
|
||||
"Side note: Python 3 also supports using Unicode characters in identifiers::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:264
|
||||
#: ../Doc/howto/unicode.rst:266
|
||||
msgid ""
|
||||
"If you can't enter a particular character in your editor or want to keep the "
|
||||
"source code ASCII-only for some reason, you can also use escape sequences in "
|
||||
|
@ -404,14 +408,14 @@ msgid ""
|
|||
"delta glyph instead of a \\u escape.) ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:276
|
||||
#: ../Doc/howto/unicode.rst:278
|
||||
msgid ""
|
||||
"In addition, one can create a string using the :func:`~bytes.decode` method "
|
||||
"of :class:`bytes`. This method takes an *encoding* argument, such as "
|
||||
"``UTF-8``, and optionally an *errors* argument."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:280
|
||||
#: ../Doc/howto/unicode.rst:282
|
||||
msgid ""
|
||||
"The *errors* argument specifies the response when the input string can't be "
|
||||
"converted according to the encoding's rules. Legal values for this argument "
|
||||
|
@ -422,7 +426,7 @@ msgid ""
|
|||
"examples show the differences::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:300
|
||||
#: ../Doc/howto/unicode.rst:302
|
||||
msgid ""
|
||||
"Encodings are specified as strings containing the encoding's name. Python "
|
||||
"3.2 comes with roughly 100 different encodings; see the Python Library "
|
||||
|
@ -431,7 +435,7 @@ msgid ""
|
|||
"are all synonyms for the same encoding."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:306
|
||||
#: ../Doc/howto/unicode.rst:308
|
||||
msgid ""
|
||||
"One-character Unicode strings can also be created with the :func:`chr` built-"
|
||||
"in function, which takes integers and returns a Unicode string of length 1 "
|
||||
|
@ -440,18 +444,18 @@ msgid ""
|
|||
"returns the code point value::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:318
|
||||
#: ../Doc/howto/unicode.rst:320
|
||||
msgid "Converting to Bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:320
|
||||
#: ../Doc/howto/unicode.rst:322
|
||||
msgid ""
|
||||
"The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which "
|
||||
"returns a :class:`bytes` representation of the Unicode string, encoded in "
|
||||
"the requested *encoding*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:324
|
||||
#: ../Doc/howto/unicode.rst:326
|
||||
msgid ""
|
||||
"The *errors* parameter is the same as the parameter of the :meth:`~bytes."
|
||||
"decode` method but supports a few more possible handlers. As well as "
|
||||
|
@ -462,11 +466,11 @@ msgid ""
|
|||
"``namereplace`` (inserts a ``\\N{...}`` escape sequence)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:332
|
||||
#: ../Doc/howto/unicode.rst:334
|
||||
msgid "The following example shows the different results::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:353
|
||||
#: ../Doc/howto/unicode.rst:355
|
||||
msgid ""
|
||||
"The low-level routines for registering and accessing the available encodings "
|
||||
"are found in the :mod:`codecs` module. Implementing new encodings also "
|
||||
|
@ -476,11 +480,11 @@ msgid ""
|
|||
"module won't be covered in this HOWTO."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:362
|
||||
#: ../Doc/howto/unicode.rst:364
|
||||
msgid "Unicode Literals in Python Source Code"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:364
|
||||
#: ../Doc/howto/unicode.rst:366
|
||||
msgid ""
|
||||
"In Python source code, specific Unicode code points can be written using the "
|
||||
"``\\u`` escape sequence, which is followed by four hex digits giving the "
|
||||
|
@ -488,7 +492,7 @@ msgid ""
|
|||
"digits, not four::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:376
|
||||
#: ../Doc/howto/unicode.rst:378
|
||||
msgid ""
|
||||
"Using escape sequences for code points greater than 127 is fine in small "
|
||||
"doses, but becomes an annoyance if you're using many accented characters, as "
|
||||
|
@ -497,7 +501,7 @@ msgid ""
|
|||
"function, but this is even more tedious."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:382
|
||||
#: ../Doc/howto/unicode.rst:384
|
||||
msgid ""
|
||||
"Ideally, you'd want to be able to write literals in your language's natural "
|
||||
"encoding. You could then edit Python source code with your favorite editor "
|
||||
|
@ -505,7 +509,7 @@ msgid ""
|
|||
"characters used at runtime."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:387
|
||||
#: ../Doc/howto/unicode.rst:389
|
||||
msgid ""
|
||||
"Python supports writing source code in UTF-8 by default, but you can use "
|
||||
"almost any encoding if you declare the encoding being used. This is done by "
|
||||
|
@ -513,7 +517,7 @@ msgid ""
|
|||
"file::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:397
|
||||
#: ../Doc/howto/unicode.rst:399
|
||||
msgid ""
|
||||
"The syntax is inspired by Emacs's notation for specifying variables local to "
|
||||
"a file. Emacs supports many different variables, but Python only supports "
|
||||
|
@ -522,17 +526,17 @@ msgid ""
|
|||
"looks for ``coding: name`` or ``coding=name`` in the comment."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:403
|
||||
#: ../Doc/howto/unicode.rst:405
|
||||
msgid ""
|
||||
"If you don't include such a comment, the default encoding used will be UTF-8 "
|
||||
"as already mentioned. See also :pep:`263` for more information."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:408
|
||||
#: ../Doc/howto/unicode.rst:410
|
||||
msgid "Unicode Properties"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:410
|
||||
#: ../Doc/howto/unicode.rst:412
|
||||
msgid ""
|
||||
"The Unicode specification includes a database of information about code "
|
||||
"points. For each defined code point, the information includes the "
|
||||
|
@ -542,17 +546,17 @@ msgid ""
|
|||
"in bidirectional text and other display-related properties."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:417
|
||||
#: ../Doc/howto/unicode.rst:419
|
||||
msgid ""
|
||||
"The following program displays some information about several characters, "
|
||||
"and prints the numeric value of one particular character::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:431
|
||||
#: ../Doc/howto/unicode.rst:433
|
||||
msgid "When run, this prints:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:442
|
||||
#: ../Doc/howto/unicode.rst:444
|
||||
msgid ""
|
||||
"The category codes are abbreviations describing the nature of the character. "
|
||||
"These are grouped into categories such as \"Letter\", \"Number\", "
|
||||
|
@ -565,11 +569,11 @@ msgid ""
|
|||
"codes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:453
|
||||
#: ../Doc/howto/unicode.rst:455
|
||||
msgid "Unicode Regular Expressions"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:455
|
||||
#: ../Doc/howto/unicode.rst:457
|
||||
msgid ""
|
||||
"The regular expressions supported by the :mod:`re` module can be provided "
|
||||
"either as bytes or strings. Some of the special character sequences such as "
|
||||
|
@ -579,57 +583,57 @@ msgid ""
|
|||
"in the ``'Nd'`` category."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:462
|
||||
#: ../Doc/howto/unicode.rst:464
|
||||
msgid ""
|
||||
"The string in this example has the number 57 written in both Thai and Arabic "
|
||||
"numerals::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:472
|
||||
#: ../Doc/howto/unicode.rst:474
|
||||
msgid ""
|
||||
"When executed, ``\\d+`` will match the Thai numerals and print them out. If "
|
||||
"you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will "
|
||||
"match the substring \"57\" instead."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:476
|
||||
#: ../Doc/howto/unicode.rst:478
|
||||
msgid ""
|
||||
"Similarly, ``\\w`` matches a wide variety of Unicode characters but only "
|
||||
"``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` "
|
||||
"will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:487
|
||||
#: ../Doc/howto/unicode.rst:489
|
||||
msgid "Some good alternative discussions of Python's Unicode support are:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:489
|
||||
#: ../Doc/howto/unicode.rst:491
|
||||
msgid ""
|
||||
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
|
||||
"org/en/latest/python3/text_file_processing.html>`_, by Nick Coghlan."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:490
|
||||
#: ../Doc/howto/unicode.rst:492
|
||||
msgid ""
|
||||
"`Pragmatic Unicode <http://nedbatchelder.com/text/unipain.html>`_, a PyCon "
|
||||
"2012 presentation by Ned Batchelder."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:492
|
||||
#: ../Doc/howto/unicode.rst:494
|
||||
msgid ""
|
||||
"The :class:`str` type is described in the Python library reference at :ref:"
|
||||
"`textseq`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:495
|
||||
#: ../Doc/howto/unicode.rst:497
|
||||
msgid "The documentation for the :mod:`unicodedata` module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:497
|
||||
#: ../Doc/howto/unicode.rst:499
|
||||
msgid "The documentation for the :mod:`codecs` module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:499
|
||||
#: ../Doc/howto/unicode.rst:501
|
||||
msgid ""
|
||||
"Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF "
|
||||
"slides) <https://downloads.egenix.com/python/Unicode-EPC2002-Talk.pdf>`_ at "
|
||||
|
@ -638,18 +642,18 @@ msgid ""
|
|||
"``unicode`` and literals start with ``u``)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:507
|
||||
#: ../Doc/howto/unicode.rst:509
|
||||
msgid "Reading and Writing Unicode Data"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:509
|
||||
#: ../Doc/howto/unicode.rst:511
|
||||
msgid ""
|
||||
"Once you've written some code that works with Unicode data, the next problem "
|
||||
"is input/output. How do you get Unicode strings into your program, and how "
|
||||
"do you convert Unicode into a form suitable for storage or transmission?"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:513
|
||||
#: ../Doc/howto/unicode.rst:515
|
||||
msgid ""
|
||||
"It's possible that you may not need to do anything depending on your input "
|
||||
"sources and output destinations; you should check whether the libraries used "
|
||||
|
@ -658,7 +662,7 @@ msgid ""
|
|||
"valued columns and can return Unicode values from an SQL query."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:519
|
||||
#: ../Doc/howto/unicode.rst:521
|
||||
msgid ""
|
||||
"Unicode data is usually converted to a particular encoding before it gets "
|
||||
"written to disk or sent over a socket. It's possible to do all the work "
|
||||
|
@ -667,7 +671,7 @@ msgid ""
|
|||
"recommended."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:524
|
||||
#: ../Doc/howto/unicode.rst:526
|
||||
msgid ""
|
||||
"One problem is the multi-byte nature of encodings; one Unicode character can "
|
||||
"be represented by several bytes. If you want to read the file in arbitrary-"
|
||||
|
@ -681,7 +685,7 @@ msgid ""
|
|||
"version in memory.)"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:534
|
||||
#: ../Doc/howto/unicode.rst:536
|
||||
msgid ""
|
||||
"The solution would be to use the low-level decoding interface to catch the "
|
||||
"case of partial coding sequences. The work of implementing this has already "
|
||||
|
@ -693,17 +697,17 @@ msgid ""
|
|||
"meth:`str.encode` and :meth:`bytes.decode`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:543
|
||||
#: ../Doc/howto/unicode.rst:545
|
||||
msgid "Reading Unicode from a file is therefore simple::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:549
|
||||
#: ../Doc/howto/unicode.rst:551
|
||||
msgid ""
|
||||
"It's also possible to open files in update mode, allowing both reading and "
|
||||
"writing::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:557
|
||||
#: ../Doc/howto/unicode.rst:559
|
||||
msgid ""
|
||||
"The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is "
|
||||
"often written as the first character of a file in order to assist with "
|
||||
|
@ -716,7 +720,7 @@ msgid ""
|
|||
"the BOM."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:566
|
||||
#: ../Doc/howto/unicode.rst:568
|
||||
msgid ""
|
||||
"In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 "
|
||||
"encoded files; the name is misleading since UTF-8 is not byte-order "
|
||||
|
@ -725,11 +729,11 @@ msgid ""
|
|||
"such files."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:574
|
||||
#: ../Doc/howto/unicode.rst:576
|
||||
msgid "Unicode filenames"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:576
|
||||
#: ../Doc/howto/unicode.rst:578
|
||||
msgid ""
|
||||
"Most of the operating systems in common use today support filenames that "
|
||||
"contain arbitrary Unicode characters. Usually this is implemented by "
|
||||
|
@ -741,7 +745,7 @@ msgid ""
|
|||
"environment variables; if you haven't, the default encoding is UTF-8."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:585
|
||||
#: ../Doc/howto/unicode.rst:587
|
||||
msgid ""
|
||||
"The :func:`sys.getfilesystemencoding` function returns the encoding to use "
|
||||
"on your current system, in case you want to do the encoding manually, but "
|
||||
|
@ -750,13 +754,13 @@ msgid ""
|
|||
"and it will be automatically converted to the right encoding for you::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:595
|
||||
#: ../Doc/howto/unicode.rst:597
|
||||
msgid ""
|
||||
"Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
|
||||
"Unicode filenames."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:598
|
||||
#: ../Doc/howto/unicode.rst:600
|
||||
msgid ""
|
||||
"The :func:`os.listdir` function returns filenames and raises an issue: "
|
||||
"should it return the Unicode version of filenames, or should it return bytes "
|
||||
|
@ -769,44 +773,44 @@ msgid ""
|
|||
"program::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:616
|
||||
#: ../Doc/howto/unicode.rst:618
|
||||
msgid "will produce the following output:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:624
|
||||
#: ../Doc/howto/unicode.rst:626
|
||||
msgid ""
|
||||
"The first list contains UTF-8-encoded filenames, and the second list "
|
||||
"contains the Unicode versions."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:627
|
||||
#: ../Doc/howto/unicode.rst:629
|
||||
msgid ""
|
||||
"Note that on most occasions, the Unicode APIs should be used. The bytes "
|
||||
"APIs should only be used on systems where undecodable file names can be "
|
||||
"present, i.e. Unix systems."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:633
|
||||
#: ../Doc/howto/unicode.rst:635
|
||||
msgid "Tips for Writing Unicode-aware Programs"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:635
|
||||
#: ../Doc/howto/unicode.rst:637
|
||||
msgid ""
|
||||
"This section provides some suggestions on writing software that deals with "
|
||||
"Unicode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:638
|
||||
#: ../Doc/howto/unicode.rst:640
|
||||
msgid "The most important tip is:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:640
|
||||
#: ../Doc/howto/unicode.rst:642
|
||||
msgid ""
|
||||
"Software should only work with Unicode strings internally, decoding the "
|
||||
"input data as soon as possible and encoding the output only at the end."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:643
|
||||
#: ../Doc/howto/unicode.rst:645
|
||||
msgid ""
|
||||
"If you attempt to write processing functions that accept both Unicode and "
|
||||
"byte strings, you will find your program vulnerable to bugs wherever you "
|
||||
|
@ -815,7 +819,7 @@ msgid ""
|
|||
"raised."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:648
|
||||
#: ../Doc/howto/unicode.rst:650
|
||||
msgid ""
|
||||
"When using data coming from a web browser or some other untrusted source, a "
|
||||
"common technique is to check for illegal characters in a string before using "
|
||||
|
@ -827,28 +831,28 @@ msgid ""
|
|||
"then choose a clever way to hide malicious text in the encoded bytestream."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:659
|
||||
#: ../Doc/howto/unicode.rst:661
|
||||
msgid "Converting Between File Encodings"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:661
|
||||
#: ../Doc/howto/unicode.rst:663
|
||||
msgid ""
|
||||
"The :class:`~codecs.StreamRecoder` class can transparently convert between "
|
||||
"encodings, taking a stream that returns data in encoding #1 and behaving "
|
||||
"like a stream returning data in encoding #2."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:665
|
||||
#: ../Doc/howto/unicode.rst:667
|
||||
msgid ""
|
||||
"For example, if you have an input file *f* that's in Latin-1, you can wrap "
|
||||
"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:679
|
||||
#: ../Doc/howto/unicode.rst:681
|
||||
msgid "Files in an Unknown Encoding"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:681
|
||||
#: ../Doc/howto/unicode.rst:683
|
||||
msgid ""
|
||||
"What can you do if you need to make a change to a file, but don't know the "
|
||||
"file's encoding? If you know the encoding is ASCII-compatible and only want "
|
||||
|
@ -856,7 +860,7 @@ msgid ""
|
|||
"``surrogateescape`` error handler::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:695
|
||||
#: ../Doc/howto/unicode.rst:697
|
||||
msgid ""
|
||||
"The ``surrogateescape`` error handler will decode any non-ASCII bytes as "
|
||||
"code points in the Unicode Private Use Area ranging from U+DC80 to U+DCFF. "
|
||||
|
@ -865,14 +869,14 @@ msgid ""
|
|||
"writing it back out."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:705
|
||||
#: ../Doc/howto/unicode.rst:707
|
||||
msgid ""
|
||||
"One section of `Mastering Python 3 Input/Output <http://pyvideo.org/"
|
||||
"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
|
||||
"Beazley, discusses text processing and binary data handling."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:709
|
||||
#: ../Doc/howto/unicode.rst:711
|
||||
msgid ""
|
||||
"The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-"
|
||||
"aware Applications in Python\" <https://downloads.egenix.com/python/LSM2005-"
|
||||
|
@ -881,31 +885,28 @@ msgid ""
|
|||
"application. These slides cover Python 2.x only."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:715
|
||||
#: ../Doc/howto/unicode.rst:717
|
||||
msgid ""
|
||||
"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
|
||||
"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
|
||||
"discusses the internal Unicode representation in Python 3.3."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:722
|
||||
msgid "Acknowledgements"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:724
|
||||
msgid "Acknowledgements"
|
||||
msgstr "Remerciements"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:726
|
||||
msgid ""
|
||||
"The initial draft of this document was written by Andrew Kuchling. It has "
|
||||
"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew "
|
||||
"Kuchling, and Ezio Melotti."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/unicode.rst:728
|
||||
#: ../Doc/howto/unicode.rst:730
|
||||
msgid ""
|
||||
"Thanks to the following people who have noted errors or offered suggestions "
|
||||
"on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius "
|
||||
"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, "
|
||||
"Terry J. Reedy, Chad Whitacre."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Release"
|
||||
#~ msgstr "Version"
|
||||
|
|
158
howto/urllib2.po
158
howto/urllib2.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"POT-Creation-Date: 2018-04-29 00:24+0200\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"
|
||||
|
@ -21,6 +21,10 @@ msgstr ""
|
|||
msgid "HOWTO Fetch Internet Resources Using The urllib Package"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:0
|
||||
msgid "Author"
|
||||
msgstr "Auteur"
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:7
|
||||
msgid "`Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_"
|
||||
msgstr ""
|
||||
|
@ -36,10 +40,6 @@ msgstr ""
|
|||
msgid "Introduction"
|
||||
msgstr "Introduction"
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:0
|
||||
msgid "Related Articles"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:22
|
||||
msgid ""
|
||||
"You may also find useful the following article on fetching web resources "
|
||||
|
@ -98,11 +98,11 @@ msgstr ""
|
|||
#: ../Doc/howto/urllib2.rst:59
|
||||
msgid ""
|
||||
"If you wish to retrieve a resource via URL and store it in a temporary "
|
||||
"location, you can do so via the :func:`~urllib.request.urlretrieve` "
|
||||
"function::"
|
||||
"location, you can do so via the :func:`shutil.copyfileobj` and :func:"
|
||||
"`tempfile.NamedTemporaryFile` functions::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:66
|
||||
#: ../Doc/howto/urllib2.rst:74
|
||||
msgid ""
|
||||
"Many uses of urllib will be that simple (note that instead of an 'http:' URL "
|
||||
"we could have used a URL starting with 'ftp:', 'file:', etc.). However, "
|
||||
|
@ -110,7 +110,7 @@ msgid ""
|
|||
"concentrating on HTTP."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:71
|
||||
#: ../Doc/howto/urllib2.rst:79
|
||||
msgid ""
|
||||
"HTTP is based on requests and responses - the client makes requests and "
|
||||
"servers send responses. urllib.request mirrors this with a ``Request`` "
|
||||
|
@ -121,13 +121,13 @@ msgid ""
|
|||
"for example call ``.read()`` on the response::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:85
|
||||
#: ../Doc/howto/urllib2.rst:93
|
||||
msgid ""
|
||||
"Note that urllib.request makes use of the same Request interface to handle "
|
||||
"all URL schemes. For example, you can make an FTP request like so::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:90
|
||||
#: ../Doc/howto/urllib2.rst:98
|
||||
msgid ""
|
||||
"In the case of HTTP, there are two extra things that Request objects allow "
|
||||
"you to do: First, you can pass data to be sent to the server. Second, you "
|
||||
|
@ -136,11 +136,11 @@ msgid ""
|
|||
"\". Let's look at each of these in turn."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:97
|
||||
#: ../Doc/howto/urllib2.rst:105
|
||||
msgid "Data"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:99
|
||||
#: ../Doc/howto/urllib2.rst:107
|
||||
msgid ""
|
||||
"Sometimes you want to send data to a URL (often the URL will refer to a CGI "
|
||||
"(Common Gateway Interface) script or other web application). With HTTP, this "
|
||||
|
@ -153,14 +153,14 @@ msgid ""
|
|||
"function from the :mod:`urllib.parse` library. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:123
|
||||
#: ../Doc/howto/urllib2.rst:131
|
||||
msgid ""
|
||||
"Note that other encodings are sometimes required (e.g. for file upload from "
|
||||
"HTML forms - see `HTML Specification, Form Submission <https://www.w3.org/TR/"
|
||||
"REC-html40/interact/forms.html#h-17.13>`_ for more details)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:128
|
||||
#: ../Doc/howto/urllib2.rst:136
|
||||
msgid ""
|
||||
"If you do not pass the ``data`` argument, urllib uses a **GET** request. One "
|
||||
"way in which GET and POST requests differ is that POST requests often have "
|
||||
|
@ -173,27 +173,27 @@ msgid ""
|
|||
"be passed in an HTTP GET request by encoding it in the URL itself."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:138
|
||||
#: ../Doc/howto/urllib2.rst:146
|
||||
msgid "This is done as follows::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:153
|
||||
#: ../Doc/howto/urllib2.rst:161
|
||||
msgid ""
|
||||
"Notice that the full URL is created by adding a ``?`` to the URL, followed "
|
||||
"by the encoded values."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:157
|
||||
#: ../Doc/howto/urllib2.rst:165
|
||||
msgid "Headers"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:159
|
||||
#: ../Doc/howto/urllib2.rst:167
|
||||
msgid ""
|
||||
"We'll discuss here one particular HTTP header, to illustrate how to add "
|
||||
"headers to your HTTP request."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:162
|
||||
#: ../Doc/howto/urllib2.rst:170
|
||||
msgid ""
|
||||
"Some websites [#]_ dislike being browsed by programs, or send different "
|
||||
"versions to different browsers [#]_. By default urllib identifies itself as "
|
||||
|
@ -206,39 +206,39 @@ msgid ""
|
|||
"Explorer [#]_. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:189
|
||||
#: ../Doc/howto/urllib2.rst:197
|
||||
msgid ""
|
||||
"The response also has two useful methods. See the section on `info and "
|
||||
"geturl`_ which comes after we have a look at what happens when things go "
|
||||
"wrong."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:194
|
||||
#: ../Doc/howto/urllib2.rst:202
|
||||
msgid "Handling Exceptions"
|
||||
msgstr "Gestion des exceptions"
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:196
|
||||
#: ../Doc/howto/urllib2.rst:204
|
||||
msgid ""
|
||||
"*urlopen* raises :exc:`URLError` when it cannot handle a response (though as "
|
||||
"usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:"
|
||||
"`TypeError` etc. may also be raised)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:200
|
||||
#: ../Doc/howto/urllib2.rst:208
|
||||
msgid ""
|
||||
":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific "
|
||||
"case of HTTP URLs."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:203
|
||||
#: ../Doc/howto/urllib2.rst:211
|
||||
msgid "The exception classes are exported from the :mod:`urllib.error` module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:206
|
||||
#: ../Doc/howto/urllib2.rst:214
|
||||
msgid "URLError"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:208
|
||||
#: ../Doc/howto/urllib2.rst:216
|
||||
msgid ""
|
||||
"Often, URLError is raised because there is no network connection (no route "
|
||||
"to the specified server), or the specified server doesn't exist. In this "
|
||||
|
@ -246,15 +246,15 @@ msgid ""
|
|||
"containing an error code and a text error message."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:213 ../Doc/howto/urllib2.rst:460
|
||||
#: ../Doc/howto/urllib2.rst:221
|
||||
msgid "e.g. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:224
|
||||
#: ../Doc/howto/urllib2.rst:232
|
||||
msgid "HTTPError"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:226
|
||||
#: ../Doc/howto/urllib2.rst:234
|
||||
msgid ""
|
||||
"Every HTTP response from the server contains a numeric \"status code\". "
|
||||
"Sometimes the status code indicates that the server is unable to fulfil the "
|
||||
|
@ -266,35 +266,35 @@ msgid ""
|
|||
"'401' (authentication required)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:234
|
||||
#: ../Doc/howto/urllib2.rst:242
|
||||
msgid "See section 10 of RFC 2616 for a reference on all the HTTP error codes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:236
|
||||
#: ../Doc/howto/urllib2.rst:244
|
||||
msgid ""
|
||||
"The :exc:`HTTPError` instance raised will have an integer 'code' attribute, "
|
||||
"which corresponds to the error sent by the server."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:240
|
||||
#: ../Doc/howto/urllib2.rst:248
|
||||
msgid "Error Codes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:242
|
||||
#: ../Doc/howto/urllib2.rst:250
|
||||
msgid ""
|
||||
"Because the default handlers handle redirects (codes in the 300 range), and "
|
||||
"codes in the 100--299 range indicate success, you will usually only see "
|
||||
"error codes in the 400--599 range."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:246
|
||||
#: ../Doc/howto/urllib2.rst:254
|
||||
msgid ""
|
||||
":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary "
|
||||
"of response codes in that shows all the response codes used by RFC 2616. The "
|
||||
"dictionary is reproduced here for convenience ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:318
|
||||
#: ../Doc/howto/urllib2.rst:326
|
||||
msgid ""
|
||||
"When an error is raised the server responds by returning an HTTP error code "
|
||||
"*and* an error page. You can use the :exc:`HTTPError` instance as a response "
|
||||
|
@ -303,42 +303,42 @@ msgid ""
|
|||
"module::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:338
|
||||
#: ../Doc/howto/urllib2.rst:346
|
||||
msgid "Wrapping it Up"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:340
|
||||
#: ../Doc/howto/urllib2.rst:348
|
||||
msgid ""
|
||||
"So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` "
|
||||
"there are two basic approaches. I prefer the second approach."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:344
|
||||
#: ../Doc/howto/urllib2.rst:352
|
||||
msgid "Number 1"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:366
|
||||
#: ../Doc/howto/urllib2.rst:374
|
||||
msgid ""
|
||||
"The ``except HTTPError`` *must* come first, otherwise ``except URLError`` "
|
||||
"will *also* catch an :exc:`HTTPError`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:370
|
||||
#: ../Doc/howto/urllib2.rst:378
|
||||
msgid "Number 2"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:391
|
||||
#: ../Doc/howto/urllib2.rst:399
|
||||
msgid "info and geturl"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:393
|
||||
#: ../Doc/howto/urllib2.rst:401
|
||||
msgid ""
|
||||
"The response returned by urlopen (or the :exc:`HTTPError` instance) has two "
|
||||
"useful methods :meth:`info` and :meth:`geturl` and is defined in the module :"
|
||||
"mod:`urllib.response`.."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:397
|
||||
#: ../Doc/howto/urllib2.rst:405
|
||||
msgid ""
|
||||
"**geturl** - this returns the real URL of the page fetched. This is useful "
|
||||
"because ``urlopen`` (or the opener object used) may have followed a "
|
||||
|
@ -346,14 +346,14 @@ msgid ""
|
|||
"requested."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:401
|
||||
#: ../Doc/howto/urllib2.rst:409
|
||||
msgid ""
|
||||
"**info** - this returns a dictionary-like object that describes the page "
|
||||
"fetched, particularly the headers sent by the server. It is currently an :"
|
||||
"class:`http.client.HTTPMessage` instance."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:405
|
||||
#: ../Doc/howto/urllib2.rst:413
|
||||
msgid ""
|
||||
"Typical headers include 'Content-length', 'Content-type', and so on. See the "
|
||||
"`Quick Reference to HTTP Headers <https://www.cs.tut.fi/~jkorpela/http."
|
||||
|
@ -361,11 +361,11 @@ msgid ""
|
|||
"their meaning and use."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:412
|
||||
#: ../Doc/howto/urllib2.rst:420
|
||||
msgid "Openers and Handlers"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:414
|
||||
#: ../Doc/howto/urllib2.rst:422
|
||||
msgid ""
|
||||
"When you fetch a URL you use an opener (an instance of the perhaps "
|
||||
"confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have "
|
||||
|
@ -376,20 +376,20 @@ msgid ""
|
|||
"HTTP redirections or HTTP cookies."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:422
|
||||
#: ../Doc/howto/urllib2.rst:430
|
||||
msgid ""
|
||||
"You will want to create openers if you want to fetch URLs with specific "
|
||||
"handlers installed, for example to get an opener that handles cookies, or to "
|
||||
"get an opener that does not handle redirections."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:426
|
||||
#: ../Doc/howto/urllib2.rst:434
|
||||
msgid ""
|
||||
"To create an opener, instantiate an ``OpenerDirector``, and then call ``."
|
||||
"add_handler(some_handler_instance)`` repeatedly."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:429
|
||||
#: ../Doc/howto/urllib2.rst:437
|
||||
msgid ""
|
||||
"Alternatively, you can use ``build_opener``, which is a convenience function "
|
||||
"for creating opener objects with a single function call. ``build_opener`` "
|
||||
|
@ -397,31 +397,31 @@ msgid ""
|
|||
"or override the default handlers."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:434
|
||||
#: ../Doc/howto/urllib2.rst:442
|
||||
msgid ""
|
||||
"Other sorts of handlers you might want to can handle proxies, "
|
||||
"authentication, and other common but slightly specialised situations."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:437
|
||||
#: ../Doc/howto/urllib2.rst:445
|
||||
msgid ""
|
||||
"``install_opener`` can be used to make an ``opener`` object the (global) "
|
||||
"default opener. This means that calls to ``urlopen`` will use the opener you "
|
||||
"have installed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:441
|
||||
#: ../Doc/howto/urllib2.rst:449
|
||||
msgid ""
|
||||
"Opener objects have an ``open`` method, which can be called directly to "
|
||||
"fetch urls in the same way as the ``urlopen`` function: there's no need to "
|
||||
"call ``install_opener``, except as a convenience."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:447
|
||||
#: ../Doc/howto/urllib2.rst:455
|
||||
msgid "Basic Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:449
|
||||
#: ../Doc/howto/urllib2.rst:457
|
||||
msgid ""
|
||||
"To illustrate creating and installing a handler we will use the "
|
||||
"``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- "
|
||||
|
@ -430,7 +430,7 @@ msgid ""
|
|||
"authentication.shtml>`_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:455
|
||||
#: ../Doc/howto/urllib2.rst:463
|
||||
msgid ""
|
||||
"When authentication is required, the server sends a header (as well as the "
|
||||
"401 error code) requesting authentication. This specifies the "
|
||||
|
@ -438,7 +438,11 @@ msgid ""
|
|||
"Authenticate: SCHEME realm=\"REALM\"``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:465
|
||||
#: ../Doc/howto/urllib2.rst:468
|
||||
msgid "e.g."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:475
|
||||
msgid ""
|
||||
"The client should then retry the request with the appropriate name and "
|
||||
"password for the realm included as a header in the request. This is 'basic "
|
||||
|
@ -446,7 +450,7 @@ msgid ""
|
|||
"of ``HTTPBasicAuthHandler`` and an opener to use this handler."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:470
|
||||
#: ../Doc/howto/urllib2.rst:480
|
||||
msgid ""
|
||||
"The ``HTTPBasicAuthHandler`` uses an object called a password manager to "
|
||||
"handle the mapping of URLs and realms to passwords and usernames. If you "
|
||||
|
@ -459,13 +463,13 @@ msgid ""
|
|||
"by providing ``None`` as the realm argument to the ``add_password`` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:480
|
||||
#: ../Doc/howto/urllib2.rst:490
|
||||
msgid ""
|
||||
"The top-level URL is the first URL that requires authentication. URLs "
|
||||
"\"deeper\" than the URL you pass to .add_password() will also match. ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:505
|
||||
#: ../Doc/howto/urllib2.rst:515
|
||||
msgid ""
|
||||
"In the above example we only supplied our ``HTTPBasicAuthHandler`` to "
|
||||
"``build_opener``. By default openers have the handlers for normal situations "
|
||||
|
@ -475,7 +479,7 @@ msgid ""
|
|||
"``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:512
|
||||
#: ../Doc/howto/urllib2.rst:522
|
||||
msgid ""
|
||||
"``top_level_url`` is in fact *either* a full URL (including the 'http:' "
|
||||
"scheme component and the hostname and optionally the port number) e.g. ``"
|
||||
|
@ -486,11 +490,11 @@ msgid ""
|
|||
"example ``\"joe:password@example.com\"`` is not correct."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:522
|
||||
#: ../Doc/howto/urllib2.rst:532
|
||||
msgid "Proxies"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:524
|
||||
#: ../Doc/howto/urllib2.rst:534
|
||||
msgid ""
|
||||
"**urllib** will auto-detect your proxy settings and use those. This is "
|
||||
"through the ``ProxyHandler``, which is part of the normal handler chain when "
|
||||
|
@ -500,30 +504,30 @@ msgid ""
|
|||
"similar steps to setting up a `Basic Authentication`_ handler: ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:537
|
||||
#: ../Doc/howto/urllib2.rst:547
|
||||
msgid ""
|
||||
"Currently ``urllib.request`` *does not* support fetching of ``https`` "
|
||||
"locations through a proxy. However, this can be enabled by extending urllib."
|
||||
"request as shown in the recipe [#]_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:543
|
||||
#: ../Doc/howto/urllib2.rst:553
|
||||
msgid ""
|
||||
"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see "
|
||||
"the documentation on :func:`~urllib.request.getproxies`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:548
|
||||
#: ../Doc/howto/urllib2.rst:558
|
||||
msgid "Sockets and Layers"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:550
|
||||
#: ../Doc/howto/urllib2.rst:560
|
||||
msgid ""
|
||||
"The Python support for fetching resources from the web is layered. urllib "
|
||||
"uses the :mod:`http.client` library, which in turn uses the socket library."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:553
|
||||
#: ../Doc/howto/urllib2.rst:563
|
||||
msgid ""
|
||||
"As of Python 2.3 you can specify how long a socket should wait for a "
|
||||
"response before timing out. This can be useful in applications which have to "
|
||||
|
@ -533,38 +537,38 @@ msgid ""
|
|||
"sockets using ::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:576
|
||||
#: ../Doc/howto/urllib2.rst:586
|
||||
msgid "Footnotes"
|
||||
msgstr "Notes"
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:578
|
||||
#: ../Doc/howto/urllib2.rst:588
|
||||
msgid "This document was reviewed and revised by John Lee."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:580
|
||||
#: ../Doc/howto/urllib2.rst:590
|
||||
msgid "Google for example."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:581
|
||||
#: ../Doc/howto/urllib2.rst:591
|
||||
msgid ""
|
||||
"Browser sniffing is a very bad practice for website design - building sites "
|
||||
"using web standards is much more sensible. Unfortunately a lot of sites "
|
||||
"still send different versions to different browsers."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:584
|
||||
#: ../Doc/howto/urllib2.rst:594
|
||||
msgid ""
|
||||
"The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT "
|
||||
"5.1; SV1; .NET CLR 1.1.4322)'*"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:586
|
||||
#: ../Doc/howto/urllib2.rst:596
|
||||
msgid ""
|
||||
"For details of more HTTP request headers, see `Quick Reference to HTTP "
|
||||
"Headers`_."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:588
|
||||
#: ../Doc/howto/urllib2.rst:598
|
||||
msgid ""
|
||||
"In my case I have to use a proxy to access the internet at work. If you "
|
||||
"attempt to fetch *localhost* URLs through this proxy it blocks them. IE is "
|
||||
|
@ -572,7 +576,7 @@ msgid ""
|
|||
"with a localhost server, I have to prevent urllib from using the proxy."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/howto/urllib2.rst:593
|
||||
#: ../Doc/howto/urllib2.rst:603
|
||||
msgid ""
|
||||
"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe <https://"
|
||||
"code.activestate.com/recipes/456195/>`_."
|
||||
|
|
447
install/index.po
447
install/index.po
File diff suppressed because it is too large
Load Diff
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2017-12-01 08:52+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -21,6 +21,10 @@ msgstr ""
|
|||
msgid "Installing Python Modules"
|
||||
msgstr "L'installation de modules Python"
|
||||
|
||||
#: ../Doc/installing/index.rst:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: ../Doc/installing/index.rst:9
|
||||
msgid "distutils-sig@python.org"
|
||||
msgstr "distutils-sig@python.org"
|
||||
|
@ -202,7 +206,7 @@ msgid ""
|
|||
"dependencies from the Python Packaging Index::"
|
||||
msgstr ""
|
||||
"La commande suivante va installer la dernière version d'un module et ses "
|
||||
"dépendances depuis le *Python Package Index* ::"
|
||||
"dépendances depuis le *Python Package Index* ::"
|
||||
|
||||
#: ../Doc/installing/index.rst:92
|
||||
msgid ""
|
||||
|
@ -232,7 +236,7 @@ msgstr ""
|
|||
"Il est aussi possible de préciser une version minimum exacte directement "
|
||||
"depuis la ligne de commande. Utiliser des caractères de comparaison tel que "
|
||||
"``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le "
|
||||
"shell, le nom du paquet et la version doivent être mis entre guillemets::"
|
||||
"shell, le nom du paquet et la version doivent être mis entre guillemets ::"
|
||||
|
||||
#: ../Doc/installing/index.rst:107
|
||||
msgid ""
|
||||
|
@ -371,7 +375,7 @@ msgid ""
|
|||
"switch::"
|
||||
msgstr ""
|
||||
"Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option "
|
||||
"``-m`` ::"
|
||||
"``-m`` ::"
|
||||
|
||||
#: ../Doc/installing/index.rst:199
|
||||
msgid "Common installation issues"
|
||||
|
@ -407,13 +411,15 @@ msgstr ""
|
|||
|
||||
#: ../Doc/installing/index.rst:215
|
||||
msgid "Pip not installed"
|
||||
msgstr ""
|
||||
msgstr "Pip n'est pas installé"
|
||||
|
||||
#: ../Doc/installing/index.rst:217
|
||||
msgid ""
|
||||
"It is possible that ``pip`` does not get installed by default. One potential "
|
||||
"fix is::"
|
||||
msgstr ""
|
||||
"Il est possible que ``pip`` ne soit pas installé par défaut. Une solution "
|
||||
"est : ::"
|
||||
|
||||
#: ../Doc/installing/index.rst:221
|
||||
msgid ""
|
||||
|
@ -421,6 +427,8 @@ msgid ""
|
|||
"python.org/tutorials/installing-packages/#install-pip-setuptools-and-"
|
||||
"wheel>`__"
|
||||
msgstr ""
|
||||
"Voir aussi `installing pip. <https://packaging.python.org/tutorials/"
|
||||
"installing-packages/#install-pip-setuptools-and-wheel>`__"
|
||||
|
||||
#: ../Doc/installing/index.rst:226
|
||||
msgid "Installing binary extensions"
|
||||
|
@ -448,7 +456,7 @@ msgstr ""
|
|||
"publier des *wheels*, pour, au moins Windows et Mac OS X, via le *Python "
|
||||
"Package Index*, ce problème devrait diminuer au fil du temps, car les "
|
||||
"utilisateurs sont plus régulièrement en mesure d'installer des extensions "
|
||||
"pré-compilées plutôt que de devoir les compiler eux-mêmes."
|
||||
"précompilées plutôt que de devoir les compiler eux-mêmes."
|
||||
|
||||
#: ../Doc/installing/index.rst:238
|
||||
msgid ""
|
||||
|
|
113
library/2to3.po
113
library/2to3.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+0100\n"
|
||||
"PO-Revision-Date: 2017-05-27 13:59+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -53,7 +53,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/2to3.rst:28
|
||||
msgid "Here is a sample Python 2.x source file, :file:`example.py`::"
|
||||
msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py`::"
|
||||
msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py` ::"
|
||||
|
||||
#: ../Doc/library/2to3.rst:36
|
||||
msgid "It can be converted to Python 3.x code via 2to3 on the command line:"
|
||||
|
@ -191,7 +191,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/2to3.rst:147
|
||||
msgid "Fixers"
|
||||
msgstr " Correcteurs"
|
||||
msgstr "Correcteurs"
|
||||
|
||||
#: ../Doc/library/2to3.rst:149
|
||||
msgid ""
|
||||
|
@ -212,11 +212,11 @@ msgstr ""
|
|||
"Remplace les noms de méthodes obsolètes du module :mod:`unittest` par les "
|
||||
"bons."
|
||||
|
||||
#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:351
|
||||
#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:352
|
||||
msgid "From"
|
||||
msgstr "De"
|
||||
|
||||
#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:351
|
||||
#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:352
|
||||
msgid "To"
|
||||
msgstr "À"
|
||||
|
||||
|
@ -405,35 +405,36 @@ msgstr "Convertit :func:`intern` en :func:`sys.intern`."
|
|||
msgid ""
|
||||
"Fixes duplicate types in the second argument of :func:`isinstance`. For "
|
||||
"example, ``isinstance(x, (int, int))`` is converted to ``isinstance(x, "
|
||||
"(int))``."
|
||||
"int)`` and ``isinstance(x, (int, float, int))`` is converted to "
|
||||
"``isinstance(x, (int, float))``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:295
|
||||
#: ../Doc/library/2to3.rst:296
|
||||
msgid ""
|
||||
"Removes imports of :func:`itertools.ifilter`, :func:`itertools.izip`, and :"
|
||||
"func:`itertools.imap`. Imports of :func:`itertools.ifilterfalse` are also "
|
||||
"changed to :func:`itertools.filterfalse`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:301
|
||||
#: ../Doc/library/2to3.rst:302
|
||||
msgid ""
|
||||
"Changes usage of :func:`itertools.ifilter`, :func:`itertools.izip`, and :"
|
||||
"func:`itertools.imap` to their built-in equivalents. :func:`itertools."
|
||||
"ifilterfalse` is changed to :func:`itertools.filterfalse`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:307
|
||||
#: ../Doc/library/2to3.rst:308
|
||||
msgid "Renames :class:`long` to :class:`int`."
|
||||
msgstr "Renomme :class:`long` en :class:`int`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:311
|
||||
#: ../Doc/library/2to3.rst:312
|
||||
msgid ""
|
||||
"Wraps :func:`map` in a :class:`list` call. It also changes ``map(None, x)`` "
|
||||
"to ``list(x)``. Using ``from future_builtins import map`` disables this "
|
||||
"fixer."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:317
|
||||
#: ../Doc/library/2to3.rst:318
|
||||
msgid ""
|
||||
"Converts the old metaclass syntax (``__metaclass__ = Meta`` in the class "
|
||||
"body) to the new (``class X(metaclass=Meta)``)."
|
||||
|
@ -441,34 +442,34 @@ msgstr ""
|
|||
"Convertit l'ancienne syntaxe de métaclasse (``__metaclass__ = Meta`` dans le "
|
||||
"corps de la classe) à la nouvelle (``class X(metaclasse=Meta)``)."
|
||||
|
||||
#: ../Doc/library/2to3.rst:322
|
||||
#: ../Doc/library/2to3.rst:323
|
||||
msgid ""
|
||||
"Fixes old method attribute names. For example, ``meth.im_func`` is "
|
||||
"converted to ``meth.__func__``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:327
|
||||
#: ../Doc/library/2to3.rst:328
|
||||
msgid "Converts the old not-equal syntax, ``<>``, to ``!=``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:331
|
||||
#: ../Doc/library/2to3.rst:332
|
||||
msgid ""
|
||||
"Converts the use of iterator's :meth:`~iterator.next` methods to the :func:"
|
||||
"`next` function. It also renames :meth:`next` methods to :meth:`~iterator."
|
||||
"__next__`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:337
|
||||
#: ../Doc/library/2to3.rst:338
|
||||
msgid "Renames :meth:`__nonzero__` to :meth:`~object.__bool__`."
|
||||
msgstr "Renomme :meth:`__nonzero__` en :meth:`~object.__bool__`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:341
|
||||
#: ../Doc/library/2to3.rst:342
|
||||
msgid "Converts octal literals into the new syntax."
|
||||
msgstr ""
|
||||
"Convertit les nombre écrits littéralement en octal dans leur nouvelle "
|
||||
"Convertit les nombres écrits littéralement en octal dans leur nouvelle "
|
||||
"syntaxe."
|
||||
|
||||
#: ../Doc/library/2to3.rst:345
|
||||
#: ../Doc/library/2to3.rst:346
|
||||
msgid ""
|
||||
"Converts calls to various functions in the :mod:`operator` module to other, "
|
||||
"but equivalent, function calls. When needed, the appropriate ``import`` "
|
||||
|
@ -476,152 +477,152 @@ msgid ""
|
|||
"are made:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:353
|
||||
#: ../Doc/library/2to3.rst:354
|
||||
msgid "``operator.isCallable(obj)``"
|
||||
msgstr "``operator.isCallable(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:353
|
||||
#: ../Doc/library/2to3.rst:354
|
||||
msgid "``hasattr(obj, '__call__')``"
|
||||
msgstr "``hasattr(obj, '__call__')``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:354
|
||||
#: ../Doc/library/2to3.rst:355
|
||||
msgid "``operator.sequenceIncludes(obj)``"
|
||||
msgstr "``operator.sequenceIncludes(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:354
|
||||
#: ../Doc/library/2to3.rst:355
|
||||
msgid "``operator.contains(obj)``"
|
||||
msgstr "``operator.contains(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:355
|
||||
#: ../Doc/library/2to3.rst:356
|
||||
msgid "``operator.isSequenceType(obj)``"
|
||||
msgstr "``operator.isSequenceType(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:355
|
||||
#: ../Doc/library/2to3.rst:356
|
||||
msgid "``isinstance(obj, collections.Sequence)``"
|
||||
msgstr "``isinstance(obj, collections.Sequence)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:356
|
||||
#: ../Doc/library/2to3.rst:357
|
||||
msgid "``operator.isMappingType(obj)``"
|
||||
msgstr "``operator.isMappingType(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:356
|
||||
#: ../Doc/library/2to3.rst:357
|
||||
msgid "``isinstance(obj, collections.Mapping)``"
|
||||
msgstr "``isinstance(obj, collections.Mapping)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:357
|
||||
#: ../Doc/library/2to3.rst:358
|
||||
msgid "``operator.isNumberType(obj)``"
|
||||
msgstr "``operator.isNumberType(obj)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:357
|
||||
#: ../Doc/library/2to3.rst:358
|
||||
msgid "``isinstance(obj, numbers.Number)``"
|
||||
msgstr "``isinstance(obj, numbers.Number)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:358
|
||||
#: ../Doc/library/2to3.rst:359
|
||||
msgid "``operator.repeat(obj, n)``"
|
||||
msgstr "``operator.repeat(obj, n)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:358
|
||||
#: ../Doc/library/2to3.rst:359
|
||||
msgid "``operator.mul(obj, n)``"
|
||||
msgstr "``operator.mul(obj, n)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:359
|
||||
#: ../Doc/library/2to3.rst:360
|
||||
msgid "``operator.irepeat(obj, n)``"
|
||||
msgstr "``operator.irepeat(obj, n)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:359
|
||||
#: ../Doc/library/2to3.rst:360
|
||||
msgid "``operator.imul(obj, n)``"
|
||||
msgstr "``operator.imul(obj, n)``"
|
||||
|
||||
#: ../Doc/library/2to3.rst:364
|
||||
#: ../Doc/library/2to3.rst:365
|
||||
msgid ""
|
||||
"Add extra parenthesis where they are required in list comprehensions. For "
|
||||
"example, ``[x for x in 1, 2]`` becomes ``[x for x in (1, 2)]``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:369
|
||||
#: ../Doc/library/2to3.rst:370
|
||||
msgid "Converts the ``print`` statement to the :func:`print` function."
|
||||
msgstr "Convertit l'instruction ``print`` fonction :func:`print`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:373
|
||||
#: ../Doc/library/2to3.rst:374
|
||||
msgid ""
|
||||
"Converts ``raise E, V`` to ``raise E(V)``, and ``raise E, V, T`` to ``raise "
|
||||
"E(V).with_traceback(T)``. If ``E`` is a tuple, the translation will be "
|
||||
"incorrect because substituting tuples for exceptions has been removed in 3.0."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:379
|
||||
#: ../Doc/library/2to3.rst:380
|
||||
msgid "Converts :func:`raw_input` to :func:`input`."
|
||||
msgstr "Convertit :func:`raw_input` en :func:`input`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:383
|
||||
#: ../Doc/library/2to3.rst:384
|
||||
msgid "Handles the move of :func:`reduce` to :func:`functools.reduce`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:387
|
||||
#: ../Doc/library/2to3.rst:388
|
||||
msgid "Converts :func:`reload` to :func:`imp.reload`."
|
||||
msgstr "Convertit les appels à :func:`reload` en appels à :func:`imp.reload`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:391
|
||||
#: ../Doc/library/2to3.rst:392
|
||||
msgid "Changes :data:`sys.maxint` to :data:`sys.maxsize`."
|
||||
msgstr "Change :data:`sys.maxint` en :data:`sys.maxsize`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:395
|
||||
#: ../Doc/library/2to3.rst:396
|
||||
msgid "Replaces backtick repr with the :func:`repr` function."
|
||||
msgstr ""
|
||||
"Remplace les accents graves utilisés comme ``repr`` par des appels à :func:"
|
||||
"`repr`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:399
|
||||
#: ../Doc/library/2to3.rst:400
|
||||
msgid ""
|
||||
"Replaces use of the :class:`set` constructor with set literals. This fixer "
|
||||
"is optional."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:404
|
||||
#: ../Doc/library/2to3.rst:405
|
||||
msgid "Renames :exc:`StandardError` to :exc:`Exception`."
|
||||
msgstr "Renomme :exc:`StandardError` en :exc:`Exception`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:408
|
||||
#: ../Doc/library/2to3.rst:409
|
||||
msgid ""
|
||||
"Changes the deprecated :data:`sys.exc_value`, :data:`sys.exc_type`, :data:"
|
||||
"`sys.exc_traceback` to use :func:`sys.exc_info`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:413
|
||||
#: ../Doc/library/2to3.rst:414
|
||||
msgid "Fixes the API change in generator's :meth:`throw` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:417
|
||||
#: ../Doc/library/2to3.rst:418
|
||||
msgid ""
|
||||
"Removes implicit tuple parameter unpacking. This fixer inserts temporary "
|
||||
"variables."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:422
|
||||
#: ../Doc/library/2to3.rst:423
|
||||
msgid ""
|
||||
"Fixes code broken from the removal of some members in the :mod:`types` "
|
||||
"module."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:427
|
||||
#: ../Doc/library/2to3.rst:428
|
||||
msgid "Renames :class:`unicode` to :class:`str`."
|
||||
msgstr "Renomme :class:`unicode` en :class:`str`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:431
|
||||
#: ../Doc/library/2to3.rst:432
|
||||
msgid ""
|
||||
"Handles the rename of :mod:`urllib` and :mod:`urllib2` to the :mod:`urllib` "
|
||||
"package."
|
||||
msgstr ""
|
||||
"Gère le renommage des paquets :mod:`urllib` et :mod:`urllib2` en :mod:"
|
||||
"`urllib`"
|
||||
"`urllib`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:436
|
||||
#: ../Doc/library/2to3.rst:437
|
||||
msgid ""
|
||||
"Removes excess whitespace from comma separated items. This fixer is "
|
||||
"optional."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:441
|
||||
#: ../Doc/library/2to3.rst:442
|
||||
msgid ""
|
||||
"Renames :func:`xrange` to :func:`range` and wraps existing :func:`range` "
|
||||
"calls with :class:`list`."
|
||||
|
@ -629,25 +630,25 @@ msgstr ""
|
|||
"Renomme la fonction :func:`xrange` en :func:`range` et encapsule les appels "
|
||||
"à la fonction :func:`range` avec des appels à :class:`list`."
|
||||
|
||||
#: ../Doc/library/2to3.rst:446
|
||||
#: ../Doc/library/2to3.rst:447
|
||||
msgid "Changes ``for x in file.xreadlines()`` to ``for x in file``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:450
|
||||
#: ../Doc/library/2to3.rst:451
|
||||
msgid ""
|
||||
"Wraps :func:`zip` usage in a :class:`list` call. This is disabled when "
|
||||
"``from future_builtins import zip`` appears."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:455
|
||||
#: ../Doc/library/2to3.rst:456
|
||||
msgid ":mod:`lib2to3` - 2to3's library"
|
||||
msgstr ":mod:`lib2to3` - la bibliothèque de 2to3"
|
||||
|
||||
#: ../Doc/library/2to3.rst:464
|
||||
#: ../Doc/library/2to3.rst:465
|
||||
msgid "**Source code:** :source:`Lib/lib2to3/`"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/2to3.rst:470
|
||||
#: ../Doc/library/2to3.rst:471
|
||||
msgid ""
|
||||
"The :mod:`lib2to3` API should be considered unstable and may change "
|
||||
"drastically in the future."
|
||||
|
|
|
@ -9,8 +9,8 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2017-11-07 22:52+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/__main__.rst:3
|
||||
msgid ":mod:`__main__` --- Top-level script environment"
|
||||
msgstr ":mod:`__main__` --- Environnement premier du script"
|
||||
msgstr ":mod:`__main__` --- Point d'entrée des scripts"
|
||||
|
||||
#: ../Doc/library/__main__.rst:10
|
||||
msgid ""
|
||||
|
@ -27,6 +27,10 @@ msgid ""
|
|||
"module's __name__ is set equal to ``'__main__'`` when read from standard "
|
||||
"input, a script, or from an interactive prompt."
|
||||
msgstr ""
|
||||
"``'__main__'`` est le nom du *scope* dans lequel le code s'exécute en "
|
||||
"premier. Le nom d'un module (son *__name__*) vaut ``'__main__'`` lorsqu'il "
|
||||
"est lu de l'entrée standard, lorsque c'est un script, ou une invite "
|
||||
"interactive."
|
||||
|
||||
#: ../Doc/library/__main__.rst:14
|
||||
msgid ""
|
||||
|
@ -35,6 +39,10 @@ msgid ""
|
|||
"executing code in a module when it is run as a script or with ``python -m`` "
|
||||
"but not when it is imported::"
|
||||
msgstr ""
|
||||
"Un module peut découvrir s'il est exécuté dans le *scope* principal en "
|
||||
"vérifiant son ``__name__``, ce qui permet typiquement d'exécuter du code "
|
||||
"lorsque le module est exécuté avec ``python -m`` mais pas lorsqu'il est "
|
||||
"importé ::"
|
||||
|
||||
#: ../Doc/library/__main__.rst:23
|
||||
msgid ""
|
||||
|
@ -42,3 +50,5 @@ msgid ""
|
|||
"py`` module, the contents of which will be executed when the module is run "
|
||||
"with ``-m``."
|
||||
msgstr ""
|
||||
"Pour un paquet, le même effet peut être obtenu en utilisant un module "
|
||||
"``__main__.py``, son contenu sera exécuté si le paquet est lancé via ``-m``."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-09-24 21:34+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -21,6 +21,7 @@ msgstr ""
|
|||
msgid ""
|
||||
":mod:`_dummy_thread` --- Drop-in replacement for the :mod:`_thread` module"
|
||||
msgstr ""
|
||||
":mod:`_dummy_thread` --- Module de substitution pour le module :mod:`_thread`"
|
||||
|
||||
#: ../Doc/library/_dummy_thread.rst:7
|
||||
msgid "**Source code:** :source:`Lib/_dummy_thread.py`"
|
||||
|
@ -32,10 +33,13 @@ msgid ""
|
|||
"is meant to be imported when the :mod:`_thread` module is not provided on a "
|
||||
"platform."
|
||||
msgstr ""
|
||||
"Ce module fournit un réplicat de l'interface du module :mod:`_thread`. Son "
|
||||
"but est d'être importé lorsque le module :mod:`_thread` n'est pas fournit "
|
||||
"par la plateforme."
|
||||
|
||||
#: ../Doc/library/_dummy_thread.rst:15
|
||||
msgid "Suggested usage is::"
|
||||
msgstr "Utilisation suggérée : "
|
||||
msgstr "Utilisation suggérée ::"
|
||||
|
||||
#: ../Doc/library/_dummy_thread.rst:22
|
||||
msgid ""
|
||||
|
|
|
@ -7,19 +7,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: 2017-09-22 10:10+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.0.4\n"
|
||||
|
||||
#: ../Doc/library/_thread.rst:2
|
||||
msgid ":mod:`_thread` --- Low-level threading API"
|
||||
msgstr ":mod:`_thread` --- API de *threading* de bas niveau"
|
||||
msgstr ":mod:`_thread` --- API bas niveau de gestion de fils d'exécution"
|
||||
|
||||
#: ../Doc/library/_thread.rst:15
|
||||
msgid ""
|
||||
|
@ -46,7 +46,7 @@ msgstr "Elle définit les constantes et fonctions suivantes :"
|
|||
|
||||
#: ../Doc/library/_thread.rst:37
|
||||
msgid "Raised on thread-specific errors."
|
||||
msgstr "Levée lors d'erreur spécifique aux *threads*."
|
||||
msgstr "Levée lors d'erreur spécifique aux fils d'exécution."
|
||||
|
||||
#: ../Doc/library/_thread.rst:39
|
||||
msgid "This is now a synonym of the built-in :exc:`RuntimeError`."
|
||||
|
|
109
library/abc.po
109
library/abc.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-12 13:37+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+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"
|
||||
|
@ -159,8 +159,9 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:163
|
||||
msgid "The :mod:`abc` module also provides the following decorators:"
|
||||
msgstr ""
|
||||
#, fuzzy
|
||||
msgid "The :mod:`abc` module also provides the following decorator:"
|
||||
msgstr "Le module fournit les classes suivantes :"
|
||||
|
||||
#: ../Doc/library/abc.rst:167
|
||||
msgid "A decorator indicating abstract methods."
|
||||
|
@ -210,106 +211,98 @@ msgid ""
|
|||
"inheritance."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:241
|
||||
msgid ""
|
||||
"A subclass of the built-in :func:`classmethod`, indicating an abstract "
|
||||
"classmethod. Otherwise it is similar to :func:`abstractmethod`."
|
||||
#: ../Doc/library/abc.rst:239
|
||||
msgid "The :mod:`abc` module also supports the following legacy decorators:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:244
|
||||
msgid ""
|
||||
"This special case is deprecated, as the :func:`classmethod` decorator is now "
|
||||
"correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:255
|
||||
msgid ""
|
||||
"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, "
|
||||
"making this decorator redundant."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:262
|
||||
#: ../Doc/library/abc.rst:248
|
||||
msgid ""
|
||||
"A subclass of the built-in :func:`staticmethod`, indicating an abstract "
|
||||
"staticmethod. Otherwise it is similar to :func:`abstractmethod`."
|
||||
"A subclass of the built-in :func:`classmethod`, indicating an abstract "
|
||||
"classmethod. Otherwise it is similar to :func:`abstractmethod`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:251
|
||||
msgid ""
|
||||
"This special case is deprecated, as the :func:`classmethod` decorator is now "
|
||||
"correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:265
|
||||
msgid ""
|
||||
"This special case is deprecated, as the :func:`staticmethod` decorator is "
|
||||
"now correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:276
|
||||
msgid ""
|
||||
"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, "
|
||||
"making this decorator redundant."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:283
|
||||
#: ../Doc/library/abc.rst:269
|
||||
msgid ""
|
||||
"A subclass of the built-in :func:`property`, indicating an abstract property."
|
||||
"A subclass of the built-in :func:`staticmethod`, indicating an abstract "
|
||||
"staticmethod. Otherwise it is similar to :func:`abstractmethod`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:286
|
||||
#: ../Doc/library/abc.rst:272
|
||||
msgid ""
|
||||
"Using this function requires that the class's metaclass is :class:`ABCMeta` "
|
||||
"or is derived from it. A class that has a metaclass derived from :class:"
|
||||
"`ABCMeta` cannot be instantiated unless all of its abstract methods and "
|
||||
"properties are overridden. The abstract properties can be called using any "
|
||||
"of the normal 'super' call mechanisms."
|
||||
"This special case is deprecated, as the :func:`staticmethod` decorator is "
|
||||
"now correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:292
|
||||
msgid ""
|
||||
"This special case is deprecated, as the :func:`property` decorator is now "
|
||||
"correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:302
|
||||
msgid ""
|
||||
"The above example defines a read-only property; you can also define a read-"
|
||||
"write abstract property by appropriately marking one or more of the "
|
||||
"underlying methods as abstract::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:316
|
||||
msgid ""
|
||||
"If only some components are abstract, only those components need to be "
|
||||
"updated to create a concrete property in a subclass::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:325
|
||||
#: ../Doc/library/abc.rst:285
|
||||
msgid ""
|
||||
"It is now possible to use :class:`property`, :meth:`property.getter`, :meth:"
|
||||
"`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, "
|
||||
"making this decorator redundant."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:331
|
||||
#: ../Doc/library/abc.rst:290
|
||||
msgid ""
|
||||
"A subclass of the built-in :func:`property`, indicating an abstract property."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:293
|
||||
msgid ""
|
||||
"This special case is deprecated, as the :func:`property` decorator is now "
|
||||
"correctly identified as abstract when applied to an abstract method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:303
|
||||
msgid ""
|
||||
"The above example defines a read-only property; you can also define a read-"
|
||||
"write abstract property by appropriately marking one or more of the "
|
||||
"underlying methods as abstract::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:317
|
||||
msgid ""
|
||||
"If only some components are abstract, only those components need to be "
|
||||
"updated to create a concrete property in a subclass::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:326
|
||||
msgid "The :mod:`abc` module also provides the following functions:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:335
|
||||
#: ../Doc/library/abc.rst:330
|
||||
msgid "Returns the current abstract base class cache token."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:337
|
||||
#: ../Doc/library/abc.rst:332
|
||||
msgid ""
|
||||
"The token is an opaque object (that supports equality testing) identifying "
|
||||
"the current version of the abstract base class cache for virtual subclasses. "
|
||||
"The token changes with every call to :meth:`ABCMeta.register` on any ABC."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/abc.rst:345
|
||||
#: ../Doc/library/abc.rst:340
|
||||
msgid "Footnotes"
|
||||
msgstr "Notes"
|
||||
|
||||
#: ../Doc/library/abc.rst:346
|
||||
#: ../Doc/library/abc.rst:341
|
||||
msgid ""
|
||||
"C++ programmers should note that Python's virtual base class concept is not "
|
||||
"the same as C++'s."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "This module provides the following classes:"
|
||||
#~ msgstr "Le module fournit les classes suivantes :"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-09-24 20:06+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -29,3 +29,8 @@ msgid ""
|
|||
"interfaces, but they are available on most other systems as well. Here's an "
|
||||
"overview:"
|
||||
msgstr ""
|
||||
"Les modules documentés dans ce chapitre fournissent des interfaces vers des "
|
||||
"fonctionalités communes à la grande majorité des systèmes d'explotation, "
|
||||
"telles que les fichiers et l'horloge. Bien que ces interfaces soient "
|
||||
"classiquement calquées sur les interfaces Unix ou C, elles sont aussi "
|
||||
"disponnibles sur la pluspart des autres sytèmes. En voici un aperçu."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-09-24 20:09+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -28,3 +28,7 @@ msgid ""
|
|||
"format archives. See also :ref:`archiving-operations` provided by the :mod:"
|
||||
"`shutil` module."
|
||||
msgstr ""
|
||||
"Les modules documentés dans ce chapitre implémentent les algorithmes de "
|
||||
"compression zlib, gzip, bzip2 et lzma, ainsi que la création d'archives ZIP "
|
||||
"et tar. Voir aussi :ref:`archiving-operations` fourni par le module :mod:"
|
||||
"`shutil`."
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-21 09:15+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2017-10-13 22:28+0200\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:40+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -29,10 +29,6 @@ msgstr ""
|
|||
msgid "**Source code:** :source:`Lib/argparse.py`"
|
||||
msgstr "**Code source:** :source:`Lib/argparse.py`"
|
||||
|
||||
#: ../Doc/library/argparse.rst:0
|
||||
msgid "Tutorial"
|
||||
msgstr "Tutoriel"
|
||||
|
||||
#: ../Doc/library/argparse.rst:18
|
||||
msgid ""
|
||||
"This page contains the API reference information. For a more gentle "
|
||||
|
@ -40,8 +36,8 @@ msgid ""
|
|||
"`argparse tutorial <argparse-tutorial>`."
|
||||
msgstr ""
|
||||
"Cette page est la référence de l'API. Pour une introduction plus en douceur "
|
||||
"à l'analyse des arguments de la ligne de commande, regardez :ref:`argparse "
|
||||
"tutorial`."
|
||||
"à l'analyse des arguments de la ligne de commande, regardez :ref:`le "
|
||||
"tutoriel argparse <argparse-tutorial>`."
|
||||
|
||||
#: ../Doc/library/argparse.rst:22
|
||||
msgid ""
|
||||
|
@ -62,7 +58,7 @@ msgid ""
|
|||
"produces either the sum or the max::"
|
||||
msgstr ""
|
||||
"Le code suivant est un programme Python acceptant une liste de nombre "
|
||||
"entiers et en donnant soit la somme, soit le maximum::"
|
||||
"entiers et en donnant soit la somme, soit le maximum ::"
|
||||
|
||||
#: ../Doc/library/argparse.rst:47
|
||||
msgid ""
|
||||
|
@ -1235,7 +1231,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/argparse.rst:1502
|
||||
msgid "The Namespace object"
|
||||
msgstr "L'objet Namespace"
|
||||
msgstr "L'objet namespace"
|
||||
|
||||
#: ../Doc/library/argparse.rst:1506
|
||||
msgid ""
|
||||
|
@ -1628,7 +1624,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/argparse.rst:2005
|
||||
msgid "Handling positional arguments."
|
||||
msgstr "Gérer les arguments positionnels"
|
||||
msgstr "Gérer les arguments positionnels."
|
||||
|
||||
#: ../Doc/library/argparse.rst:2006
|
||||
msgid "Supporting sub-commands."
|
||||
|
@ -1707,3 +1703,6 @@ msgid ""
|
|||
"``parser.add_argument('--version', action='version', version='<the "
|
||||
"version>')``."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Tutorial"
|
||||
#~ msgstr "Tutoriel"
|
||||
|
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"PO-Revision-Date: 2017-08-10 00:59+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+0100\n"
|
||||
"PO-Revision-Date: 2018-01-21 23:14+0100\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
@ -30,6 +30,13 @@ msgid ""
|
|||
"creation time by using a :dfn:`type code`, which is a single character. The "
|
||||
"following type codes are defined:"
|
||||
msgstr ""
|
||||
"Ce module définit un type objet qui permet de représenter de façon compacte "
|
||||
"un tableau (*array*) de valeurs élémentaires : caractères, entier, "
|
||||
"flottants. Les tableaux sont des types séquence et se comportent de manière "
|
||||
"très similaire aux listes, sauf que les types d'objets qui y sont stockés "
|
||||
"sont limités. Le type est spécifié au moment de la création de l’objet en "
|
||||
"utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous "
|
||||
"pour la définition des types :"
|
||||
|
||||
#: ../Doc/library/array.rst:19
|
||||
msgid "Type code"
|
||||
|
@ -197,7 +204,7 @@ msgstr "double"
|
|||
|
||||
#: ../Doc/library/array.rst:48
|
||||
msgid "Notes:"
|
||||
msgstr "Notes : "
|
||||
msgstr "Notes :"
|
||||
|
||||
#: ../Doc/library/array.rst:51
|
||||
msgid ""
|
||||
|
@ -212,10 +219,6 @@ msgid ""
|
|||
"API."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/array.rst:59
|
||||
msgid "Deprecated since version 3.3, will be removed in version 4.0."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/array.rst:61
|
||||
msgid ""
|
||||
"The ``'q'`` and ``'Q'`` type codes are available only if the platform C "
|
||||
|
@ -274,10 +277,11 @@ msgstr ""
|
|||
#: ../Doc/library/array.rst:106
|
||||
msgid "The length in bytes of one array item in the internal representation."
|
||||
msgstr ""
|
||||
"la longueur en octets d'un élément du tableau dans la représentation interne."
|
||||
|
||||
#: ../Doc/library/array.rst:111
|
||||
msgid "Append a new item with value *x* to the end of the array."
|
||||
msgstr ""
|
||||
msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau."
|
||||
|
||||
#: ../Doc/library/array.rst:116
|
||||
msgid ""
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+0100\n"
|
||||
"PO-Revision-Date: 2018-02-15 00:41+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -126,7 +126,7 @@ msgstr "ou, plus compact : ::"
|
|||
|
||||
#: ../Doc/library/ast.rst:97
|
||||
msgid "Abstract Grammar"
|
||||
msgstr "Grammaire Abstraite"
|
||||
msgstr "Grammaire abstraite"
|
||||
|
||||
#: ../Doc/library/ast.rst:99
|
||||
msgid "The abstract grammar is currently defined as follows:"
|
||||
|
@ -148,7 +148,13 @@ msgid ""
|
|||
"filename, mode, ast.PyCF_ONLY_AST)``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:119
|
||||
#: ../Doc/library/ast.rst:117 ../Doc/library/ast.rst:135
|
||||
msgid ""
|
||||
"It is possible to crash the Python interpreter with a sufficiently large/"
|
||||
"complex string due to stack depth limitations in Python's AST compiler."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:124
|
||||
msgid ""
|
||||
"Safely evaluate an expression node or a string containing a Python literal "
|
||||
"or container display. The string or node provided may only consist of the "
|
||||
|
@ -156,7 +162,7 @@ msgid ""
|
|||
"dicts, sets, booleans, and ``None``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:124
|
||||
#: ../Doc/library/ast.rst:129
|
||||
msgid ""
|
||||
"This can be used for safely evaluating strings containing Python values from "
|
||||
"untrusted sources without the need to parse the values oneself. It is not "
|
||||
|
@ -164,11 +170,11 @@ msgid ""
|
|||
"operators or indexing."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:129
|
||||
#: ../Doc/library/ast.rst:139
|
||||
msgid "Now allows bytes and set literals."
|
||||
msgstr "Accepte maintenant les *bytes* et *sets* écrits littéralement."
|
||||
|
||||
#: ../Doc/library/ast.rst:135
|
||||
#: ../Doc/library/ast.rst:145
|
||||
msgid ""
|
||||
"Return the docstring of the given *node* (which must be a :class:"
|
||||
"`FunctionDef`, :class:`ClassDef` or :class:`Module` node), or ``None`` if it "
|
||||
|
@ -176,7 +182,7 @@ msgid ""
|
|||
"with :func:`inspect.cleandoc`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:143
|
||||
#: ../Doc/library/ast.rst:153
|
||||
msgid ""
|
||||
"When you compile a node tree with :func:`compile`, the compiler expects :"
|
||||
"attr:`lineno` and :attr:`col_offset` attributes for every node that supports "
|
||||
|
@ -185,81 +191,81 @@ msgid ""
|
|||
"the values of the parent node. It works recursively starting at *node*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:152
|
||||
#: ../Doc/library/ast.rst:162
|
||||
msgid ""
|
||||
"Increment the line number of each node in the tree starting at *node* by "
|
||||
"*n*. This is useful to \"move code\" to a different location in a file."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:158
|
||||
#: ../Doc/library/ast.rst:168
|
||||
msgid ""
|
||||
"Copy source location (:attr:`lineno` and :attr:`col_offset`) from *old_node* "
|
||||
"to *new_node* if possible, and return *new_node*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:164
|
||||
#: ../Doc/library/ast.rst:174
|
||||
msgid ""
|
||||
"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` "
|
||||
"that is present on *node*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:170
|
||||
#: ../Doc/library/ast.rst:180
|
||||
msgid ""
|
||||
"Yield all direct child nodes of *node*, that is, all fields that are nodes "
|
||||
"and all items of fields that are lists of nodes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:176
|
||||
#: ../Doc/library/ast.rst:186
|
||||
msgid ""
|
||||
"Recursively yield all descendant nodes in the tree starting at *node* "
|
||||
"(including *node* itself), in no specified order. This is useful if you "
|
||||
"only want to modify nodes in place and don't care about the context."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:183
|
||||
#: ../Doc/library/ast.rst:193
|
||||
msgid ""
|
||||
"A node visitor base class that walks the abstract syntax tree and calls a "
|
||||
"visitor function for every node found. This function may return a value "
|
||||
"which is forwarded by the :meth:`visit` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:187
|
||||
#: ../Doc/library/ast.rst:197
|
||||
msgid ""
|
||||
"This class is meant to be subclassed, with the subclass adding visitor "
|
||||
"methods."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:192
|
||||
#: ../Doc/library/ast.rst:202
|
||||
msgid ""
|
||||
"Visit a node. The default implementation calls the method called :samp:"
|
||||
"`self.visit_{classname}` where *classname* is the name of the node class, "
|
||||
"or :meth:`generic_visit` if that method doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:198
|
||||
#: ../Doc/library/ast.rst:208
|
||||
msgid "This visitor calls :meth:`visit` on all children of the node."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:200
|
||||
#: ../Doc/library/ast.rst:210
|
||||
msgid ""
|
||||
"Note that child nodes of nodes that have a custom visitor method won't be "
|
||||
"visited unless the visitor calls :meth:`generic_visit` or visits them itself."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:204
|
||||
#: ../Doc/library/ast.rst:214
|
||||
msgid ""
|
||||
"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes "
|
||||
"during traversal. For this a special visitor exists (:class:"
|
||||
"`NodeTransformer`) that allows modifications."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:211
|
||||
#: ../Doc/library/ast.rst:221
|
||||
msgid ""
|
||||
"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and "
|
||||
"allows modification of nodes."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:214
|
||||
#: ../Doc/library/ast.rst:224
|
||||
msgid ""
|
||||
"The :class:`NodeTransformer` will walk the AST and use the return value of "
|
||||
"the visitor methods to replace or remove the old node. If the return value "
|
||||
|
@ -268,31 +274,31 @@ msgid ""
|
|||
"may be the original node in which case no replacement takes place."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:220
|
||||
#: ../Doc/library/ast.rst:230
|
||||
msgid ""
|
||||
"Here is an example transformer that rewrites all occurrences of name lookups "
|
||||
"(``foo``) to ``data['foo']``::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:232
|
||||
#: ../Doc/library/ast.rst:242
|
||||
msgid ""
|
||||
"Keep in mind that if the node you're operating on has child nodes you must "
|
||||
"either transform the child nodes yourself or call the :meth:`generic_visit` "
|
||||
"method for the node first."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:236
|
||||
#: ../Doc/library/ast.rst:246
|
||||
msgid ""
|
||||
"For nodes that were part of a collection of statements (that applies to all "
|
||||
"statement nodes), the visitor may also return a list of nodes rather than "
|
||||
"just a single node."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:240
|
||||
#: ../Doc/library/ast.rst:250
|
||||
msgid "Usually you use the transformer like this::"
|
||||
msgstr "Utilisation typique du *transformer* ::"
|
||||
msgstr "Utilisation typique du *transformer* ::"
|
||||
|
||||
#: ../Doc/library/ast.rst:247
|
||||
#: ../Doc/library/ast.rst:257
|
||||
msgid ""
|
||||
"Return a formatted dump of the tree in *node*. This is mainly useful for "
|
||||
"debugging purposes. The returned string will show the names and the values "
|
||||
|
@ -302,7 +308,7 @@ msgid ""
|
|||
"*include_attributes* can be set to ``True``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/ast.rst:256
|
||||
#: ../Doc/library/ast.rst:266
|
||||
msgid ""
|
||||
"`Green Tree Snakes <https://greentreesnakes.readthedocs.org/>`_, an external "
|
||||
"documentation resource, has good details on working with Python ASTs."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-10 00:20+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -288,9 +288,9 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-dev.rst:212
|
||||
msgid ""
|
||||
"Python usually calls :func:`sys.displayhook` on unhandled exceptions. If :"
|
||||
"Python usually calls :func:`sys.excepthook` on unhandled exceptions. If :"
|
||||
"meth:`Future.set_exception` is called, but the exception is never consumed, :"
|
||||
"func:`sys.displayhook` is not called. Instead, :ref:`a log is emitted "
|
||||
"func:`sys.excepthook` is not called. Instead, :ref:`a log is emitted "
|
||||
"<asyncio-logger>` when the future is deleted by the garbage collector, with "
|
||||
"the traceback where the exception was raised."
|
||||
msgstr ""
|
||||
|
@ -301,7 +301,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-dev.rst:231
|
||||
msgid "Output::"
|
||||
msgstr "Sortie::"
|
||||
msgstr "Sortie ::"
|
||||
|
||||
#: ../Doc/library/asyncio-dev.rst:244
|
||||
msgid ""
|
||||
|
@ -363,7 +363,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-dev.rst:365
|
||||
msgid "Or without ``asyncio.ensure_future()``::"
|
||||
msgstr "Ou sans ``asyncio.ensure_future()`` ::"
|
||||
msgstr "Ou sans ``asyncio.ensure_future()`` ::"
|
||||
|
||||
#: ../Doc/library/asyncio-dev.rst:379
|
||||
msgid "Pending task destroyed"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -193,9 +193,9 @@ msgstr ""
|
|||
#: ../Doc/library/asyncio-eventloop.rst:143
|
||||
#: ../Doc/library/asyncio-eventloop.rst:185
|
||||
#: ../Doc/library/asyncio-eventloop.rst:199
|
||||
#: ../Doc/library/asyncio-eventloop.rst:516
|
||||
#: ../Doc/library/asyncio-eventloop.rst:528
|
||||
#: ../Doc/library/asyncio-eventloop.rst:682
|
||||
#: ../Doc/library/asyncio-eventloop.rst:519
|
||||
#: ../Doc/library/asyncio-eventloop.rst:531
|
||||
#: ../Doc/library/asyncio-eventloop.rst:685
|
||||
msgid ""
|
||||
":ref:`Use functools.partial to pass keywords to the callback <asyncio-pass-"
|
||||
"keywords>`."
|
||||
|
@ -203,7 +203,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:148
|
||||
msgid "Like :meth:`call_soon`, but thread safe."
|
||||
msgstr "Comme :meth:`call_soon` mais `thread safe`."
|
||||
msgstr "Comme :meth:`call_soon` mais *thread safe*."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:150
|
||||
msgid ""
|
||||
|
@ -623,14 +623,14 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:460
|
||||
#: ../Doc/library/asyncio-eventloop.rst:481
|
||||
#: ../Doc/library/asyncio-eventloop.rst:555
|
||||
#: ../Doc/library/asyncio-eventloop.rst:571
|
||||
#: ../Doc/library/asyncio-eventloop.rst:581
|
||||
#: ../Doc/library/asyncio-eventloop.rst:609
|
||||
#: ../Doc/library/asyncio-eventloop.rst:648
|
||||
#: ../Doc/library/asyncio-eventloop.rst:662
|
||||
#: ../Doc/library/asyncio-eventloop.rst:713
|
||||
#: ../Doc/library/asyncio-eventloop.rst:832
|
||||
#: ../Doc/library/asyncio-eventloop.rst:558
|
||||
#: ../Doc/library/asyncio-eventloop.rst:574
|
||||
#: ../Doc/library/asyncio-eventloop.rst:584
|
||||
#: ../Doc/library/asyncio-eventloop.rst:612
|
||||
#: ../Doc/library/asyncio-eventloop.rst:651
|
||||
#: ../Doc/library/asyncio-eventloop.rst:665
|
||||
#: ../Doc/library/asyncio-eventloop.rst:716
|
||||
#: ../Doc/library/asyncio-eventloop.rst:835
|
||||
msgid "This method is a :ref:`coroutine <coroutine>`."
|
||||
msgstr "Cette méthode est une :ref:`coroutine <coroutine>`."
|
||||
|
||||
|
@ -670,79 +670,79 @@ msgid ""
|
|||
"coroutine returns a ``(transport, protocol)`` pair."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:504
|
||||
#: ../Doc/library/asyncio-eventloop.rst:507
|
||||
msgid "Watch file descriptors"
|
||||
msgstr "Surveiller des descripteurs de fichiers"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:506
|
||||
#: ../Doc/library/asyncio-eventloop.rst:509
|
||||
msgid ""
|
||||
"On Windows with :class:`SelectorEventLoop`, only socket handles are "
|
||||
"supported (ex: pipe file descriptors are not supported)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:509
|
||||
#: ../Doc/library/asyncio-eventloop.rst:512
|
||||
msgid ""
|
||||
"On Windows with :class:`ProactorEventLoop`, these methods are not supported."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:513
|
||||
#: ../Doc/library/asyncio-eventloop.rst:516
|
||||
msgid ""
|
||||
"Start watching the file descriptor for read availability and then call the "
|
||||
"*callback* with specified arguments."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:521
|
||||
#: ../Doc/library/asyncio-eventloop.rst:524
|
||||
msgid "Stop watching the file descriptor for read availability."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:525
|
||||
#: ../Doc/library/asyncio-eventloop.rst:528
|
||||
msgid ""
|
||||
"Start watching the file descriptor for write availability and then call the "
|
||||
"*callback* with specified arguments."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:533
|
||||
#: ../Doc/library/asyncio-eventloop.rst:536
|
||||
msgid "Stop watching the file descriptor for write availability."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:535
|
||||
#: ../Doc/library/asyncio-eventloop.rst:538
|
||||
msgid ""
|
||||
"The :ref:`watch a file descriptor for read events <asyncio-watch-read-"
|
||||
"event>` example uses the low-level :meth:`AbstractEventLoop.add_reader` "
|
||||
"method to register the file descriptor of a socket."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:541
|
||||
#: ../Doc/library/asyncio-eventloop.rst:544
|
||||
msgid "Low-level socket operations"
|
||||
msgstr "Opérations bas niveau sur les *socket*"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:545
|
||||
#: ../Doc/library/asyncio-eventloop.rst:548
|
||||
msgid ""
|
||||
"Receive data from the socket. Modeled after blocking :meth:`socket.socket."
|
||||
"recv` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:548
|
||||
#: ../Doc/library/asyncio-eventloop.rst:551
|
||||
msgid ""
|
||||
"The return value is a bytes object representing the data received. The "
|
||||
"maximum amount of data to be received at once is specified by *nbytes*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:552
|
||||
#: ../Doc/library/asyncio-eventloop.rst:568
|
||||
#: ../Doc/library/asyncio-eventloop.rst:578
|
||||
#: ../Doc/library/asyncio-eventloop.rst:555
|
||||
#: ../Doc/library/asyncio-eventloop.rst:571
|
||||
#: ../Doc/library/asyncio-eventloop.rst:581
|
||||
msgid ""
|
||||
"With :class:`SelectorEventLoop` event loop, the socket *sock* must be non-"
|
||||
"blocking."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:559
|
||||
#: ../Doc/library/asyncio-eventloop.rst:562
|
||||
msgid ""
|
||||
"Send data to the socket. Modeled after blocking :meth:`socket.socket."
|
||||
"sendall` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:562
|
||||
#: ../Doc/library/asyncio-eventloop.rst:565
|
||||
msgid ""
|
||||
"The socket must be connected to a remote socket. This method continues to "
|
||||
"send data from *data* until either all data has been sent or an error "
|
||||
|
@ -751,13 +751,13 @@ msgid ""
|
|||
"processed by the receiving end of the connection."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:575
|
||||
#: ../Doc/library/asyncio-eventloop.rst:578
|
||||
msgid ""
|
||||
"Connect to a remote socket at *address*. Modeled after blocking :meth:"
|
||||
"`socket.socket.connect` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:583
|
||||
#: ../Doc/library/asyncio-eventloop.rst:586
|
||||
msgid ""
|
||||
"``address`` no longer needs to be resolved. ``sock_connect`` will try to "
|
||||
"check if the *address* is already resolved by calling :func:`socket."
|
||||
|
@ -765,18 +765,18 @@ msgid ""
|
|||
"resolve the *address*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:592
|
||||
#: ../Doc/library/asyncio-eventloop.rst:595
|
||||
msgid ""
|
||||
":meth:`AbstractEventLoop.create_connection` and :func:`asyncio."
|
||||
"open_connection() <open_connection>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:598
|
||||
#: ../Doc/library/asyncio-eventloop.rst:601
|
||||
msgid ""
|
||||
"Accept a connection. Modeled after blocking :meth:`socket.socket.accept`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:601
|
||||
#: ../Doc/library/asyncio-eventloop.rst:604
|
||||
msgid ""
|
||||
"The socket must be bound to an address and listening for connections. The "
|
||||
"return value is a pair ``(conn, address)`` where *conn* is a *new* socket "
|
||||
|
@ -784,45 +784,45 @@ msgid ""
|
|||
"the address bound to the socket on the other end of the connection."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:607
|
||||
#: ../Doc/library/asyncio-eventloop.rst:610
|
||||
msgid "The socket *sock* must be non-blocking."
|
||||
msgstr "La *socket* *sock* ne soit pas être bloquante."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:613
|
||||
#: ../Doc/library/asyncio-eventloop.rst:616
|
||||
msgid ":meth:`AbstractEventLoop.create_server` and :func:`start_server`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:617
|
||||
#: ../Doc/library/asyncio-eventloop.rst:620
|
||||
msgid "Resolve host name"
|
||||
msgstr "Résout le nom d'hôte"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:621
|
||||
#: ../Doc/library/asyncio-eventloop.rst:624
|
||||
msgid ""
|
||||
"This method is a :ref:`coroutine <coroutine>`, similar to :meth:`socket."
|
||||
"getaddrinfo` function but non-blocking."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:626
|
||||
#: ../Doc/library/asyncio-eventloop.rst:629
|
||||
msgid ""
|
||||
"This method is a :ref:`coroutine <coroutine>`, similar to :meth:`socket."
|
||||
"getnameinfo` function but non-blocking."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:631
|
||||
#: ../Doc/library/asyncio-eventloop.rst:634
|
||||
msgid "Connect pipes"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:633
|
||||
#: ../Doc/library/asyncio-eventloop.rst:636
|
||||
msgid ""
|
||||
"On Windows with :class:`SelectorEventLoop`, these methods are not supported. "
|
||||
"Use :class:`ProactorEventLoop` to support pipes on Windows."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:638
|
||||
#: ../Doc/library/asyncio-eventloop.rst:641
|
||||
msgid "Register read pipe in eventloop."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:640
|
||||
#: ../Doc/library/asyncio-eventloop.rst:643
|
||||
msgid ""
|
||||
"*protocol_factory* should instantiate object with :class:`Protocol` "
|
||||
"interface. *pipe* is a :term:`file-like object <file object>`. Return pair "
|
||||
|
@ -830,18 +830,18 @@ msgid ""
|
|||
"`ReadTransport` interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:645
|
||||
#: ../Doc/library/asyncio-eventloop.rst:659
|
||||
#: ../Doc/library/asyncio-eventloop.rst:648
|
||||
#: ../Doc/library/asyncio-eventloop.rst:662
|
||||
msgid ""
|
||||
"With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-"
|
||||
"blocking mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:652
|
||||
#: ../Doc/library/asyncio-eventloop.rst:655
|
||||
msgid "Register write pipe in eventloop."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:654
|
||||
#: ../Doc/library/asyncio-eventloop.rst:657
|
||||
msgid ""
|
||||
"*protocol_factory* should instantiate object with :class:`BaseProtocol` "
|
||||
"interface. *pipe* is :term:`file-like object <file object>`. Return pair "
|
||||
|
@ -849,70 +849,70 @@ msgid ""
|
|||
"`WriteTransport` interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:666
|
||||
#: ../Doc/library/asyncio-eventloop.rst:669
|
||||
msgid ""
|
||||
"The :meth:`AbstractEventLoop.subprocess_exec` and :meth:`AbstractEventLoop."
|
||||
"subprocess_shell` methods."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:671
|
||||
#: ../Doc/library/asyncio-eventloop.rst:674
|
||||
msgid "UNIX signals"
|
||||
msgstr "Signaux UNIX"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:673
|
||||
#: ../Doc/library/asyncio-eventloop.rst:676
|
||||
msgid "Availability: UNIX only."
|
||||
msgstr "Disponibilité : UNIX seulement."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:677
|
||||
#: ../Doc/library/asyncio-eventloop.rst:680
|
||||
msgid "Add a handler for a signal."
|
||||
msgstr "Ajouter un gestionnaire (*handler*) pour un signal."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:679
|
||||
#: ../Doc/library/asyncio-eventloop.rst:682
|
||||
msgid ""
|
||||
"Raise :exc:`ValueError` if the signal number is invalid or uncatchable. "
|
||||
"Raise :exc:`RuntimeError` if there is a problem setting up the handler."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:687
|
||||
#: ../Doc/library/asyncio-eventloop.rst:690
|
||||
msgid "Remove a handler for a signal."
|
||||
msgstr "Supprimer un *handler* pour un signal."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:689
|
||||
#: ../Doc/library/asyncio-eventloop.rst:692
|
||||
msgid "Return ``True`` if a signal handler was removed, ``False`` if not."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:693
|
||||
#: ../Doc/library/asyncio-eventloop.rst:696
|
||||
msgid "The :mod:`signal` module."
|
||||
msgstr "Le module :mod:`signal`."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:697
|
||||
#: ../Doc/library/asyncio-eventloop.rst:700
|
||||
msgid "Executor"
|
||||
msgstr "Exécuteur"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:699
|
||||
#: ../Doc/library/asyncio-eventloop.rst:702
|
||||
msgid ""
|
||||
"Call a function in an :class:`~concurrent.futures.Executor` (pool of threads "
|
||||
"or pool of processes). By default, an event loop uses a thread pool executor "
|
||||
"(:class:`~concurrent.futures.ThreadPoolExecutor`)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:705
|
||||
#: ../Doc/library/asyncio-eventloop.rst:708
|
||||
msgid "Arrange for a *func* to be called in the specified executor."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:707
|
||||
#: ../Doc/library/asyncio-eventloop.rst:710
|
||||
msgid ""
|
||||
"The *executor* argument should be an :class:`~concurrent.futures.Executor` "
|
||||
"instance. The default executor is used if *executor* is ``None``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:710
|
||||
#: ../Doc/library/asyncio-eventloop.rst:713
|
||||
msgid ""
|
||||
":ref:`Use functools.partial to pass keywords to the *func* <asyncio-pass-"
|
||||
"keywords>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:715
|
||||
#: ../Doc/library/asyncio-eventloop.rst:718
|
||||
msgid ""
|
||||
":meth:`BaseEventLoop.run_in_executor` no longer configures the "
|
||||
"``max_workers`` of the thread pool executor it creates, instead leaving it "
|
||||
|
@ -920,27 +920,27 @@ msgid ""
|
|||
"ThreadPoolExecutor`) to set the default."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:724
|
||||
#: ../Doc/library/asyncio-eventloop.rst:727
|
||||
msgid "Set the default executor used by :meth:`run_in_executor`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:728
|
||||
#: ../Doc/library/asyncio-eventloop.rst:731
|
||||
msgid "Error Handling API"
|
||||
msgstr "API de gestion d'erreur"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:730
|
||||
#: ../Doc/library/asyncio-eventloop.rst:733
|
||||
msgid "Allows customizing how exceptions are handled in the event loop."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:734
|
||||
#: ../Doc/library/asyncio-eventloop.rst:737
|
||||
msgid "Set *handler* as the new event loop exception handler."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:736
|
||||
#: ../Doc/library/asyncio-eventloop.rst:739
|
||||
msgid "If *handler* is ``None``, the default exception handler will be set."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:739
|
||||
#: ../Doc/library/asyncio-eventloop.rst:742
|
||||
msgid ""
|
||||
"If *handler* is a callable object, it should have a matching signature to "
|
||||
"``(loop, context)``, where ``loop`` will be a reference to the active event "
|
||||
|
@ -948,225 +948,225 @@ msgid ""
|
|||
"`call_exception_handler` documentation for details about context)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:747
|
||||
#: ../Doc/library/asyncio-eventloop.rst:750
|
||||
msgid "Return the exception handler, or ``None`` if the default one is in use."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:754
|
||||
#: ../Doc/library/asyncio-eventloop.rst:757
|
||||
msgid "Default exception handler."
|
||||
msgstr "Gestionnaire d'exception par défaut."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:756
|
||||
#: ../Doc/library/asyncio-eventloop.rst:759
|
||||
msgid ""
|
||||
"This is called when an exception occurs and no exception handler is set, and "
|
||||
"can be called by a custom exception handler that wants to defer to the "
|
||||
"default behavior."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:760
|
||||
#: ../Doc/library/asyncio-eventloop.rst:763
|
||||
msgid ""
|
||||
"*context* parameter has the same meaning as in :meth:"
|
||||
"`call_exception_handler`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:765
|
||||
#: ../Doc/library/asyncio-eventloop.rst:768
|
||||
msgid "Call the current event loop exception handler."
|
||||
msgstr ""
|
||||
"Appelle le gestionnaire d'exception de la boucle d'évènements actuelle."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:767
|
||||
#: ../Doc/library/asyncio-eventloop.rst:770
|
||||
msgid ""
|
||||
"*context* is a ``dict`` object containing the following keys (new keys may "
|
||||
"be introduced later):"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:770
|
||||
#: ../Doc/library/asyncio-eventloop.rst:773
|
||||
msgid "'message': Error message;"
|
||||
msgstr "``message`` : Message d'erreur ;"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:771
|
||||
#: ../Doc/library/asyncio-eventloop.rst:774
|
||||
msgid "'exception' (optional): Exception object;"
|
||||
msgstr "``exception`` (optionnel): Un objet exception ;"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:772
|
||||
#: ../Doc/library/asyncio-eventloop.rst:775
|
||||
msgid "'future' (optional): :class:`asyncio.Future` instance;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:773
|
||||
#: ../Doc/library/asyncio-eventloop.rst:776
|
||||
msgid "'handle' (optional): :class:`asyncio.Handle` instance;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:774
|
||||
#: ../Doc/library/asyncio-eventloop.rst:777
|
||||
msgid "'protocol' (optional): :ref:`Protocol <asyncio-protocol>` instance;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:775
|
||||
#: ../Doc/library/asyncio-eventloop.rst:778
|
||||
msgid "'transport' (optional): :ref:`Transport <asyncio-transport>` instance;"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:776
|
||||
#: ../Doc/library/asyncio-eventloop.rst:779
|
||||
msgid "'socket' (optional): :class:`socket.socket` instance."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:780
|
||||
#: ../Doc/library/asyncio-eventloop.rst:783
|
||||
msgid ""
|
||||
"Note: this method should not be overloaded in subclassed event loops. For "
|
||||
"any custom exception handling, use :meth:`set_exception_handler()` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:785
|
||||
#: ../Doc/library/asyncio-eventloop.rst:788
|
||||
msgid "Debug mode"
|
||||
msgstr "Mode débug"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:789
|
||||
#: ../Doc/library/asyncio-eventloop.rst:792
|
||||
msgid "Get the debug mode (:class:`bool`) of the event loop."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:791
|
||||
#: ../Doc/library/asyncio-eventloop.rst:794
|
||||
msgid ""
|
||||
"The default value is ``True`` if the environment variable :envvar:"
|
||||
"`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:799
|
||||
#: ../Doc/library/asyncio-eventloop.rst:802
|
||||
msgid "Set the debug mode of the event loop."
|
||||
msgstr "Active le mode débug pour la boucle d'évènements."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:805
|
||||
#: ../Doc/library/asyncio-eventloop.rst:808
|
||||
msgid "The :ref:`debug mode of asyncio <asyncio-debug-mode>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:808
|
||||
#: ../Doc/library/asyncio-eventloop.rst:811
|
||||
msgid "Server"
|
||||
msgstr "Serveur"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:812
|
||||
#: ../Doc/library/asyncio-eventloop.rst:815
|
||||
msgid "Server listening on sockets."
|
||||
msgstr "Serveur écoutant sur des *sockets*."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:814
|
||||
#: ../Doc/library/asyncio-eventloop.rst:817
|
||||
msgid ""
|
||||
"Object created by the :meth:`AbstractEventLoop.create_server` method and "
|
||||
"the :func:`start_server` function. Don't instantiate the class directly."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:819
|
||||
#: ../Doc/library/asyncio-eventloop.rst:822
|
||||
msgid ""
|
||||
"Stop serving: close listening sockets and set the :attr:`sockets` attribute "
|
||||
"to ``None``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:822
|
||||
#: ../Doc/library/asyncio-eventloop.rst:825
|
||||
msgid ""
|
||||
"The sockets that represent existing incoming client connections are left "
|
||||
"open."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:825
|
||||
#: ../Doc/library/asyncio-eventloop.rst:828
|
||||
msgid ""
|
||||
"The server is closed asynchronously, use the :meth:`wait_closed` coroutine "
|
||||
"to wait until the server is closed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:830
|
||||
#: ../Doc/library/asyncio-eventloop.rst:833
|
||||
msgid "Wait until the :meth:`close` method completes."
|
||||
msgstr "Attends que la méthode :meth:`close` se termine."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:836
|
||||
#: ../Doc/library/asyncio-eventloop.rst:839
|
||||
msgid ""
|
||||
"List of :class:`socket.socket` objects the server is listening to, or "
|
||||
"``None`` if the server is closed."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:841
|
||||
#: ../Doc/library/asyncio-eventloop.rst:844
|
||||
msgid "Handle"
|
||||
msgstr "Handle"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:845
|
||||
#: ../Doc/library/asyncio-eventloop.rst:848
|
||||
msgid ""
|
||||
"A callback wrapper object returned by :func:`AbstractEventLoop.call_soon`, :"
|
||||
"func:`AbstractEventLoop.call_soon_threadsafe`, :func:`AbstractEventLoop."
|
||||
"call_later`, and :func:`AbstractEventLoop.call_at`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:851
|
||||
#: ../Doc/library/asyncio-eventloop.rst:854
|
||||
msgid ""
|
||||
"Cancel the call. If the callback is already canceled or executed, this "
|
||||
"method has no effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:856
|
||||
#: ../Doc/library/asyncio-eventloop.rst:859
|
||||
msgid "Event loop examples"
|
||||
msgstr "Exemples de boucles d'évènements"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:861
|
||||
#: ../Doc/library/asyncio-eventloop.rst:864
|
||||
msgid "Hello World with call_soon()"
|
||||
msgstr "\"Hello World\" avec ``call_soon()``"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:863
|
||||
#: ../Doc/library/asyncio-eventloop.rst:866
|
||||
msgid ""
|
||||
"Example using the :meth:`AbstractEventLoop.call_soon` method to schedule a "
|
||||
"callback. The callback displays ``\"Hello World\"`` and then stops the event "
|
||||
"loop::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:884
|
||||
#: ../Doc/library/asyncio-eventloop.rst:887
|
||||
msgid ""
|
||||
"The :ref:`Hello World coroutine <asyncio-hello-world-coroutine>` example "
|
||||
"uses a :ref:`coroutine <coroutine>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:891
|
||||
#: ../Doc/library/asyncio-eventloop.rst:894
|
||||
msgid "Display the current date with call_later()"
|
||||
msgstr "Afficher la date actuelle avec ``call_later()``"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:893
|
||||
#: ../Doc/library/asyncio-eventloop.rst:896
|
||||
msgid ""
|
||||
"Example of callback displaying the current date every second. The callback "
|
||||
"uses the :meth:`AbstractEventLoop.call_later` method to reschedule itself "
|
||||
"during 5 seconds, and then stops the event loop::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:919
|
||||
#: ../Doc/library/asyncio-eventloop.rst:922
|
||||
msgid ""
|
||||
"The :ref:`coroutine displaying the current date <asyncio-date-coroutine>` "
|
||||
"example uses a :ref:`coroutine <coroutine>`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:927
|
||||
#: ../Doc/library/asyncio-eventloop.rst:930
|
||||
msgid "Watch a file descriptor for read events"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:929
|
||||
#: ../Doc/library/asyncio-eventloop.rst:932
|
||||
msgid ""
|
||||
"Wait until a file descriptor received some data using the :meth:"
|
||||
"`AbstractEventLoop.add_reader` method and then close the event loop::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:966
|
||||
#: ../Doc/library/asyncio-eventloop.rst:969
|
||||
msgid ""
|
||||
"The :ref:`register an open socket to wait for data using a protocol <asyncio-"
|
||||
"register-socket>` example uses a low-level protocol created by the :meth:"
|
||||
"`AbstractEventLoop.create_connection` method."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:970
|
||||
#: ../Doc/library/asyncio-eventloop.rst:973
|
||||
msgid ""
|
||||
"The :ref:`register an open socket to wait for data using streams <asyncio-"
|
||||
"register-socket-streams>` example uses high-level streams created by the :"
|
||||
"func:`open_connection` function in a coroutine."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:976
|
||||
#: ../Doc/library/asyncio-eventloop.rst:979
|
||||
msgid "Set signal handlers for SIGINT and SIGTERM"
|
||||
msgstr "Définit les gestionnaires de signaux pour *SIGINT* et *SIGTERM*"
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:978
|
||||
#: ../Doc/library/asyncio-eventloop.rst:981
|
||||
msgid ""
|
||||
"Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using "
|
||||
"the :meth:`AbstractEventLoop.add_signal_handler` method::"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloop.rst:1002
|
||||
#: ../Doc/library/asyncio-eventloop.rst:1005
|
||||
msgid "This example only works on UNIX."
|
||||
msgstr "Cet exemple fonctionne seulement sur UNIX."
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -228,71 +228,89 @@ msgstr ""
|
|||
#: ../Doc/library/asyncio-eventloops.rst:150
|
||||
msgid ""
|
||||
"For most users of :mod:`asyncio`, policies never have to be dealt with "
|
||||
"explicitly, since the default global policy is sufficient."
|
||||
"explicitly, since the default global policy is sufficient (see below)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:153
|
||||
msgid ""
|
||||
"The default policy defines context as the current thread, and manages an "
|
||||
"event loop per thread that interacts with :mod:`asyncio`. The module-level "
|
||||
"functions :func:`get_event_loop` and :func:`set_event_loop` provide "
|
||||
"convenient access to event loops managed by the default policy."
|
||||
"The module-level functions :func:`get_event_loop` and :func:`set_event_loop` "
|
||||
"provide convenient access to event loops managed by the default policy."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:160
|
||||
#: ../Doc/library/asyncio-eventloops.rst:159
|
||||
msgid "Event loop policy interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:162
|
||||
#: ../Doc/library/asyncio-eventloops.rst:161
|
||||
msgid "An event loop policy must implement the following interface:"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:166
|
||||
#: ../Doc/library/asyncio-eventloops.rst:165
|
||||
msgid "Event loop policy."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:170
|
||||
#: ../Doc/library/asyncio-eventloops.rst:169
|
||||
msgid "Get the event loop for the current context."
|
||||
msgstr "Récupére la boucle d'évènements pour le contexte actuel."
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:172
|
||||
#: ../Doc/library/asyncio-eventloops.rst:171
|
||||
msgid ""
|
||||
"Returns an event loop object implementing the :class:`AbstractEventLoop` "
|
||||
"interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:175
|
||||
#: ../Doc/library/asyncio-eventloops.rst:174
|
||||
msgid ""
|
||||
"Raises an exception in case no event loop has been set for the current "
|
||||
"context and the current policy does not specify to create one. It must never "
|
||||
"return ``None``."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:181
|
||||
#: ../Doc/library/asyncio-eventloops.rst:180
|
||||
msgid "Set the event loop for the current context to *loop*."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:185
|
||||
#: ../Doc/library/asyncio-eventloops.rst:184
|
||||
msgid ""
|
||||
"Create and return a new event loop object according to this policy's rules."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:188
|
||||
#: ../Doc/library/asyncio-eventloops.rst:187
|
||||
msgid ""
|
||||
"If there's need to set this loop as the event loop for the current context, :"
|
||||
"meth:`set_event_loop` must be called explicitly."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:193
|
||||
#: ../Doc/library/asyncio-eventloops.rst:191
|
||||
msgid ""
|
||||
"The default policy defines context as the current thread, and manages an "
|
||||
"event loop per thread that interacts with :mod:`asyncio`. If the current "
|
||||
"thread doesn't already have an event loop associated with it, the default "
|
||||
"policy's :meth:`~AbstractEventLoopPolicy.get_event_loop` method creates one "
|
||||
"when called from the main thread, but raises :exc:`RuntimeError` otherwise."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:199
|
||||
msgid "Access to the global loop policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:197
|
||||
#: ../Doc/library/asyncio-eventloops.rst:203
|
||||
msgid "Get the current event loop policy."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:201
|
||||
#: ../Doc/library/asyncio-eventloops.rst:207
|
||||
msgid ""
|
||||
"Set the current event loop policy. If *policy* is ``None``, the default "
|
||||
"policy is restored."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:212
|
||||
msgid "Customizing the event loop policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-eventloops.rst:214
|
||||
msgid ""
|
||||
"To implement a new event loop policy, it is recommended you subclass the "
|
||||
"concrete default event loop policy :class:`DefaultEventLoopPolicy` and "
|
||||
"override the methods for which you want to change behavior, for example::"
|
||||
msgstr ""
|
||||
|
|
|
@ -398,7 +398,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-stream.rst:416
|
||||
msgid "or with HTTPS::"
|
||||
msgstr "ou avec HTTPS ::"
|
||||
msgstr "ou avec HTTPS ::"
|
||||
|
||||
#: ../Doc/library/asyncio-stream.rst:423
|
||||
msgid "Register an open socket to wait for data using streams"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-11-28 13:56+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -320,6 +320,8 @@ msgid ""
|
|||
"The data read is buffered in memory, so do not use this method if the data "
|
||||
"size is large or unlimited."
|
||||
msgstr ""
|
||||
"Les données lues sont mises en cache en mémoire, donc n'utilisez pas cette "
|
||||
"méthode si la taille des données est importante voire illimitée."
|
||||
|
||||
#: ../Doc/library/asyncio-subprocess.rst:241
|
||||
msgid ""
|
||||
|
@ -401,7 +403,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-subprocess.rst:308
|
||||
msgid "Subprocess and threads"
|
||||
msgstr "Processus fils et threads"
|
||||
msgstr "Processus fils et fils d'exécution"
|
||||
|
||||
#: ../Doc/library/asyncio-subprocess.rst:310
|
||||
msgid ""
|
||||
|
@ -411,7 +413,8 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-subprocess.rst:313
|
||||
msgid "An event loop must run in the main thread"
|
||||
msgstr "Une boucle d'évènements doit être exécutée sur le thread principal"
|
||||
msgstr ""
|
||||
"Une boucle d'évènements doit être exécutée sur le fil d'exécution principal"
|
||||
|
||||
#: ../Doc/library/asyncio-subprocess.rst:314
|
||||
msgid ""
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-01 13:21+0200\n"
|
||||
"POT-Creation-Date: 2017-12-01 07:43+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"
|
||||
|
@ -256,7 +256,7 @@ msgstr ""
|
|||
#: ../Doc/library/asyncio-task.rst:218
|
||||
msgid ""
|
||||
"Callbacks registered with :meth:`add_done_callback` are always called via "
|
||||
"the event loop's :meth:`~AbstractEventLoop.call_soon_threadsafe`."
|
||||
"the event loop's :meth:`~AbstractEventLoop.call_soon`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/asyncio-task.rst:221
|
||||
|
@ -553,7 +553,7 @@ msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle : ::"
|
|||
|
||||
#: ../Doc/library/asyncio-task.rst:482
|
||||
msgid "Output::"
|
||||
msgstr "Sortie::"
|
||||
msgstr "Sortie ::"
|
||||
|
||||
#: ../Doc/library/asyncio-task.rst:494
|
||||
msgid ""
|
||||
|
@ -761,7 +761,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/asyncio-task.rst:680
|
||||
msgid "Constant"
|
||||
msgstr ""
|
||||
msgstr "Constante"
|
||||
|
||||
#: ../Doc/library/asyncio-task.rst:680
|
||||
msgid "Description"
|
||||
|
|
|
@ -107,7 +107,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/atexit.rst:101
|
||||
msgid "Usage as a :term:`decorator`::"
|
||||
msgstr "Utilisation en temps que :term:`decorator` ::"
|
||||
msgstr "Utilisation en temps que :term:`decorator` ::"
|
||||
|
||||
#: ../Doc/library/atexit.rst:109
|
||||
msgid "This only works with functions that can be called without arguments."
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
|
||||
"POT-Creation-Date: 2018-03-23 09:03+0100\n"
|
||||
"PO-Revision-Date: 2017-08-10 00:59+0200\n"
|
||||
"Last-Translator: Julien Palard <julien@palard.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -272,20 +272,11 @@ msgid ""
|
|||
"necessary."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:222
|
||||
msgid ""
|
||||
"Both Base85 and Ascii85 have an expansion factor of 5 to 4 (5 Base85 or "
|
||||
"Ascii85 characters can encode 4 binary bytes), while the better-known Base64 "
|
||||
"has an expansion factor of 6 to 4. They are therefore more efficient when "
|
||||
"space expensive. They differ by details such as the character map used for "
|
||||
"encoding."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:229
|
||||
#: ../Doc/library/base64.rst:221
|
||||
msgid "The legacy interface:"
|
||||
msgstr "L'interface historique :"
|
||||
|
||||
#: ../Doc/library/base64.rst:233
|
||||
#: ../Doc/library/base64.rst:225
|
||||
msgid ""
|
||||
"Decode the contents of the binary *input* file and write the resulting "
|
||||
"binary data to the *output* file. *input* and *output* must be :term:`file "
|
||||
|
@ -293,17 +284,17 @@ msgid ""
|
|||
"returns an empty bytes object."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:241
|
||||
#: ../Doc/library/base64.rst:233
|
||||
msgid ""
|
||||
"Decode the :term:`bytes-like object` *s*, which must contain one or more "
|
||||
"lines of base64 encoded data, and return the decoded :class:`bytes`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:248
|
||||
#: ../Doc/library/base64.rst:240
|
||||
msgid "Deprecated alias of :func:`decodebytes`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:255
|
||||
#: ../Doc/library/base64.rst:247
|
||||
msgid ""
|
||||
"Encode the contents of the binary *input* file and write the resulting "
|
||||
"base64 encoded data to the *output* file. *input* and *output* must be :term:"
|
||||
|
@ -313,7 +304,7 @@ msgid ""
|
|||
"the output always ends with a newline, as per :rfc:`2045` (MIME)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:265
|
||||
#: ../Doc/library/base64.rst:257
|
||||
msgid ""
|
||||
"Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary "
|
||||
"data, and return :class:`bytes` containing the base64-encoded data, with "
|
||||
|
@ -321,33 +312,33 @@ msgid ""
|
|||
"that there is a trailing newline, as per :rfc:`2045` (MIME)."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:274
|
||||
#: ../Doc/library/base64.rst:266
|
||||
msgid "Deprecated alias of :func:`encodebytes`."
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:279
|
||||
#: ../Doc/library/base64.rst:271
|
||||
msgid "An example usage of the module:"
|
||||
msgstr "Un exemple d'utilisation du module :"
|
||||
|
||||
#: ../Doc/library/base64.rst:293
|
||||
#: ../Doc/library/base64.rst:285
|
||||
msgid "Module :mod:`binascii`"
|
||||
msgstr "Module :mod:`binascii`"
|
||||
|
||||
#: ../Doc/library/base64.rst:293
|
||||
#: ../Doc/library/base64.rst:285
|
||||
msgid ""
|
||||
"Support module containing ASCII-to-binary and binary-to-ASCII conversions."
|
||||
msgstr ""
|
||||
"Module secondaire contenant les conversions ASCII-à-binaire et binaire-à-"
|
||||
"ASCII."
|
||||
|
||||
#: ../Doc/library/base64.rst:296
|
||||
#: ../Doc/library/base64.rst:288
|
||||
msgid ""
|
||||
":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: "
|
||||
"Mechanisms for Specifying and Describing the Format of Internet Message "
|
||||
"Bodies"
|
||||
msgstr ""
|
||||
|
||||
#: ../Doc/library/base64.rst:296
|
||||
#: ../Doc/library/base64.rst:288
|
||||
msgid ""
|
||||
"Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition "
|
||||
"of the base64 encoding."
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-11-07 23:13+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/binary.rst:5
|
||||
msgid "Binary Data Services"
|
||||
msgstr ""
|
||||
msgstr "Services autour des Données Binaires"
|
||||
|
||||
#: ../Doc/library/binary.rst:7
|
||||
msgid ""
|
||||
|
@ -28,6 +28,10 @@ msgid ""
|
|||
"specifically in relation to file formats and network protocols, are "
|
||||
"described in the relevant sections."
|
||||
msgstr ""
|
||||
"Les modules décrits dans ce chapitre fournissent des services élémentaires "
|
||||
"pour manipuler des données binaires. Les autres manipulations sur les "
|
||||
"données binaires, particulièrement celles en relation avec les formats de "
|
||||
"fichier et les protocoles réseaux sont décrits dans leurs propres chapitres."
|
||||
|
||||
#: ../Doc/library/binary.rst:12
|
||||
msgid ""
|
||||
|
@ -35,9 +39,14 @@ msgid ""
|
|||
"ASCII-compatible binary formats (for example, :mod:`re`) or all binary data "
|
||||
"(for example, :mod:`difflib`)."
|
||||
msgstr ""
|
||||
"Certaines bibliothèques décrites dans :ref:`textservices` fonctionnent aussi "
|
||||
"avec soit des formats binaires compatibles ASCII (comme le module :mod:`re`) "
|
||||
"soit toutes les données binaires (comme le module :mod:`difflib`)."
|
||||
|
||||
#: ../Doc/library/binary.rst:16
|
||||
msgid ""
|
||||
"In addition, see the documentation for Python's built-in binary data types "
|
||||
"in :ref:`binaryseq`."
|
||||
msgstr ""
|
||||
"En complément, consultez la documentation des types natifs binaires dans :"
|
||||
"ref:`binaryseq`."
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue