Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 42a37f5

Browse files
authored
Merge pull request #7 from python/3.7
Update fork
2 parents 98af3ef + 67ca369 commit 42a37f5

13 files changed

+442
-175
lines changed

README.rst

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -54,60 +54,70 @@ Prerequisites:
5454
if you don't already have one).
5555

5656

57-
Let's start:
57+
Getting Started:
5858

5959
You'll need to fork the `python-docs-fr
60-
<https://github.com/python/python-docs-fr>`_ clicking its ``Fork``
60+
<https://github.com/python/python-docs-fr>`_ source repository by clicking its ``Fork``
6161
button. This creates a copy of the whole project on your github
6262
account: a place where you have the rights to do modifications.
6363

6464
Step by step:
6565

6666
.. code-block:: bash
6767
68-
# Git clone your github fork using ssh (replace JulienPalard):
69-
git clone [email protected]:JulienPalard/python-docs-fr.git
68+
# Clone your github fork with `git` using ssh or https:
69+
git clone [email protected]:YOUR_GITHUB_USERNAME/python-docs-fr.git
70+
git clone https://github.com:YOUR_GITHUB_USERNAME/python-docs-fr.git
7071
71-
# Go to the cloned directory:
72+
# Go into the cloned directory:
7273
cd python-docs-fr/
7374
7475
# Add the upstream (the public repository) using HTTPS (won't ask for password):
76+
# This is so git knows what/where the upstream is.
7577
git remote add upstream https://github.com/python/python-docs-fr.git
7678
77-
All the translations must be made on the latest release.
78-
We never translate on an oldest version, by example, the latest python release
79-
is python 3.7, we don't want to translate directly on the python 3.5 release.
80-
If needed translations would be backported on the oldest versions by the
81-
`documentation team <https://www.python.org/dev/peps/pep-8015/#documentation-team>`.
79+
Next, you need to find a file to work on.
80+
You can use `potodo <https://github.com/seluj78/potodo>`, a tool made to find ``po`` to do.
81+
Install it using pip (``pip install potodo``) in a ``python3.7`` environement.
82+
Then run the command ``potodo`` in your cloned fork.
83+
From the list returned by the command, you can choose any file that is not reserved.
8284

83-
First, you need to find a file to work on. You can use `potodo <https://github.com/seluj78/potodo>`.
84-
Install it (``pip install potodo`` in a venv) and then run the command
85-
`potodo` in your cloned fork.
86-
From the list it spits out, you can choose any file that is not
87-
reserved. We recommend not starting with a file from ``c-api`` as it is very technical.
85+
**We recommend not starting with a file from ``c-api`` as it is very technical.**
8886

89-
Once you've choosen a file, please open an issue telling you're
90-
working on it, to block someone from working on it.
87+
Once you've choosen a file to work one, please open an `issue on github <https://github.com/python/python-docs-fr>` in the format of `I'm working on FOLDER/FILE.po`. This is done to update ``potodo`` as it checks the github API for reserved ``.po`` files in issues and pull requests.
9188

92-
Now you're ready to start a work session, each time you'll start a new task, start here:
89+
Now you're ready to start a work session. Each time you'll start a new file, start here:
9390

9491
.. code-block:: bash
9592
9693
# To work, we'll need a branch, based on an up-to-date (freshly fetched)
97-
# upstream/3.7 branch, let's say we'll work on glossary so we name
98-
# the branch "glossary":
94+
# upstream/3.7 branch. We will name our branch "library-sys" but you shall name yours
95+
# whatever you want. Usually you'll name a branch based on the file you're working on.
96+
# For example, If you're working on "library/venv.po" you can name your branch "library-venv"
97+
98+
# Update your local version to the latest
9999
git fetch upstream
100-
git checkout -b glossary upstream/3.7
100+
# Create a new branch named "library-sys" based on "upstream/3.7"
101+
git checkout -b library-sys upstream/3.7
101102
102103
# You can now work on the file, typically using poedit,
103-
poedit directory/file.po
104+
# Of course, replace "library/sys.po" by the file you've chose earlier
105+
poedit library/sys.po
106+
107+
# When you are done translating, you can run pospell (pip install pospell).
108+
# This tool was made to check if you don't have any french mistakes.
109+
# You can run the following command: pospell -p dict -l fr_FR **/*.po to check all files
110+
# or replace **/*.po by your specific file (recommended).
111+
112+
# You can then run powrap (pip install powrap) which will rewrap
113+
# You modified file to the correct line length of `80`.
114+
# Run this command: `powrap **/*.po` or replace `**/*.po` with your modified file.
104115
105-
# When everything is clear (syntax errors from Sphinx, html rendering,
106-
# semantics, typography),
116+
# When everything powrap and pospell passes without errors,
107117
# you can commit your work with a nice explicit message:
108-
git commit -a -m "Working on glossary."
118+
git commit -a -m "Working on library/sys.po."
109119
110-
# Then push your modifications to your github clone,
120+
# Then push your modifications to your github fork,
111121
# as they are ephemeral branches, let's not configure git to track them all,
112122
# "origin HEAD" is a "special" syntax to say "Push on origin,
113123
# on a branch with the same name as the local one",
@@ -145,6 +155,13 @@ Before commiting, you should use `grammalecte
145155
<https://grammalecte.net/>`_ to check for your translations.
146156

147157

158+
All the translations must be made on the latest release.
159+
We never translate on an oldest version. For example, if the latest python release
160+
is Python 3.7, we don't want to translate directly on the python 3.5 release.
161+
If needed translations would be backported on the oldest versions by the
162+
`documentation team <https://www.python.org/dev/peps/pep-8015/#documentation-team>`.
163+
164+
148165
What to translate
149166
~~~~~~~~~~~~~~~~~
150167

c-api/iterator.po

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ msgstr ""
66
"Project-Id-Version: Python 3.6\n"
77
"Report-Msgid-Bugs-To: \n"
88
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
9-
"PO-Revision-Date: 2017-12-13 08:47+0100\n"
10-
"Last-Translator: Julien Palard <julien@palard.fr>\n"
9+
"PO-Revision-Date: 2019-03-26 17:16+0100\n"
10+
"Last-Translator: ANTOINE FOURES <[email protected].fr>\n"
1111
"Language-Team: FRENCH <[email protected]>\n"
1212
"Language: fr\n"
1313
"MIME-Version: 1.0\n"
@@ -26,39 +26,47 @@ msgid ""
2626
"sentinel value, calling the callable for each item in the sequence, and "
2727
"ending the iteration when the sentinel value is returned."
2828
msgstr ""
29-
"Python fournit deux itérateurs génériques. Le premier est un itérateur de "
30-
"séquence, il fonctionne avec n'importe quelle séquence gérant la méthode :"
31-
"meth:`__getitem__`. Le second fonctionne avec un objet appelable et une "
32-
"valeur sentinelle, il appelle l'appelable pour obtenir chaque élément de la "
33-
"séquence, et l'itération se termine lorsque la sentinelle est reçue."
29+
"Python fournit deux itérateurs d'usage générique. Le premier est un "
30+
"itérateur de séquence, il fonctionne avec n'importe quelle séquence "
31+
"implémentant la méthode :meth:`__getitem__`. Le second fonctionne avec un "
32+
"objet appelable et une valeur sentinelle, l'appelable permet d'obtenir "
33+
"chaque élément de la séquence, et l'itération se termine lorsque la "
34+
"sentinelle est atteinte."
3435

3536
#: ../Doc/c-api/iterator.rst:17
3637
msgid ""
3738
"Type object for iterator objects returned by :c:func:`PySeqIter_New` and the "
3839
"one-argument form of the :func:`iter` built-in function for built-in "
3940
"sequence types."
4041
msgstr ""
42+
"Type des itérateurs renvoyés par les fonctions :c:func:`PySeqIter_New` et la "
43+
"forme à un argument de la fonction native :func:`iter` pour les séquences "
44+
"natives."
4145

4246
#: ../Doc/c-api/iterator.rst:24
4347
msgid "Return true if the type of *op* is :c:data:`PySeqIter_Type`."
44-
msgstr ""
48+
msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`."
4549

4650
#: ../Doc/c-api/iterator.rst:29
4751
msgid ""
4852
"Return an iterator that works with a general sequence object, *seq*. The "
4953
"iteration ends when the sequence raises :exc:`IndexError` for the "
5054
"subscripting operation."
5155
msgstr ""
56+
"Renvoie un itérateur sur la séquence *seq*. L'itération prend fin lorsque la "
57+
"séquence lève :exc:`IndexError` lors d'une tentative d'accès."
5258

5359
#: ../Doc/c-api/iterator.rst:36
5460
msgid ""
5561
"Type object for iterator objects returned by :c:func:`PyCallIter_New` and "
5662
"the two-argument form of the :func:`iter` built-in function."
5763
msgstr ""
64+
"Type de l'itérateur renvoyé par les fonctions :c:func:`PyCallIter_New` et :"
65+
"func:`iter` à deux arguments."
5866

5967
#: ../Doc/c-api/iterator.rst:42
6068
msgid "Return true if the type of *op* is :c:data:`PyCallIter_Type`."
61-
msgstr ""
69+
msgstr "Renvoie vrai si *op* est de type :c:data:`PyCallIter_Type`."
6270

6371
#: ../Doc/c-api/iterator.rst:47
6472
msgid ""
@@ -67,3 +75,7 @@ msgid ""
6775
"should return the next item in the iteration. When *callable* returns a "
6876
"value equal to *sentinel*, the iteration will be terminated."
6977
msgstr ""
78+
"Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut être "
79+
"n'importe quel objet Python appelable sans aucun paramètre ; chaque appel "
80+
"doit renvoyer l'élément suivant de l'itération. Lorsque *callable* renvoie "
81+
"une valeur égale à *sentinel*, l'itération prend fin."

c-api/objbuffer.po

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ msgstr ""
1313
"MIME-Version: 1.0\n"
1414
"Content-Type: text/plain; charset=UTF-8\n"
1515
"Content-Transfer-Encoding: 8bit\n"
16-
"X-Generator: Poedit 2.0.6\n"
16+
"X-Generator: Poedit 2.2.1\n"
1717

1818
#: ../Doc/c-api/objbuffer.rst:4
1919
msgid "Old Buffer Protocol"

faq/design.po

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ msgstr ""
66
"Project-Id-Version: Python 3.6\n"
77
"Report-Msgid-Bugs-To: \n"
88
"POT-Creation-Date: 2018-11-29 16:06+0100\n"
9-
"PO-Revision-Date: 2018-12-14 15:10+0100\n"
9+
"PO-Revision-Date: 2019-03-21 21:04+0100\n"
1010
"Last-Translator: Jules Lasne <[email protected]>\n"
1111
"Language-Team: FRENCH <[email protected]>\n"
1212
"Language: fr\n"
1313
"MIME-Version: 1.0\n"
1414
"Content-Type: text/plain; charset=UTF-8\n"
1515
"Content-Transfer-Encoding: 8bit\n"
16-
"X-Generator: Poedit 2.2\n"
16+
"X-Generator: Poedit 2.2.1\n"
1717

1818
#: ../Doc/faq/design.rst:3
1919
msgid "Design and History FAQ"
@@ -1114,6 +1114,11 @@ msgid ""
11141114
"not. If you fail to meet these restrictions dictionaries and other hash "
11151115
"based structures will misbehave."
11161116
msgstr ""
1117+
"De plus, il faut toujours que, si ``o1 == o2`` (par exemple ``o1.__eq__(o2) "
1118+
"vaut True``) alors ``hash(o1) == hash(o2)`` (par exemple, ``o1.__hash__() == "
1119+
"o2.__hash__()``), que l’objet se trouve dans un dictionnaire ou pas. Si vous "
1120+
"ne remplissez pas ces conditions, les dictionnaires et autres structures "
1121+
"basées sur le hachage se comporteront mal."
11171122

11181123
#: ../Doc/faq/design.rst:583
11191124
msgid ""
@@ -1122,6 +1127,11 @@ msgid ""
11221127
"you are prepared to think hard about the requirements and the consequences "
11231128
"of not meeting them correctly. Consider yourself warned."
11241129
msgstr ""
1130+
"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un "
1131+
"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les "
1132+
"anomalies. Ne faites pas cela à moins que vous n’ayez pensé aux potentielles "
1133+
"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été "
1134+
"prévenus."
11251135

11261136
#: ../Doc/faq/design.rst:590
11271137
msgid "Why doesn't list.sort() return the sorted list?"
@@ -1168,6 +1178,10 @@ msgid ""
11681178
"module. Many feel that compile-time enforcement of interface specifications "
11691179
"helps in the construction of large programs."
11701180
msgstr ""
1181+
"Une spécification d'interface pour un module fourni par des langages tels "
1182+
"que C++ et Java décrit les prototypes pour les méthodes et les fonctions du "
1183+
"module. Beaucoup estiment que la vérification au moment de la compilation "
1184+
"des spécifications d'interface aide à la construction de grands programmes."
11711185

11721186
#: ../Doc/faq/design.rst:615
11731187
msgid ""
@@ -1178,13 +1192,24 @@ msgid ""
11781192
"`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:"
11791193
"`~collections.abc.MutableMapping`."
11801194
msgstr ""
1195+
"Python 2.6 ajoute un module :mod:`abc` qui vous permet de définir des "
1196+
"classes de base abstraites (ABCs). Vous pouvez ensuite utiliser :func:"
1197+
"`isinstance` et :func:`issubclass` pour vérifier si une instance ou une "
1198+
"classe implémente une ABC particulière. Le module :mod:`collections.abc` "
1199+
"définit un ensemble d'ABCs utiles telles que :class:`~collections.abc."
1200+
"Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc."
1201+
"MutableMapping`."
11811202

11821203
#: ../Doc/faq/design.rst:622
11831204
msgid ""
11841205
"For Python, many of the advantages of interface specifications can be "
11851206
"obtained by an appropriate test discipline for components. There is also a "
11861207
"tool, PyChecker, which can be used to find problems due to subclassing."
11871208
msgstr ""
1209+
"Pour Python, la plupart des avantages des spécifications d'interface peuvent "
1210+
"être obtenus par une discipline de test appropriée pour les composants. Il "
1211+
"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des "
1212+
"problèmes d'héritage."
11881213

11891214
#: ../Doc/faq/design.rst:626
11901215
msgid ""
@@ -1197,6 +1222,15 @@ msgid ""
11971222
"be used to construct exhaustive test suites that exercise every line of code "
11981223
"in a module."
11991224
msgstr ""
1225+
"Une bonne suite de tests pour un module peut à la fois fournir un test de "
1226+
"non régression et servir de spécification d'interface de module ainsi qu'un "
1227+
"ensemble d'exemples. De nombreux modules Python peuvent être exécutés en "
1228+
"tant que script pour fournir un simple « auto-test ». Même les modules qui "
1229+
"utilisent des interfaces externes complexes peuvent souvent être testés "
1230+
"isolément à l'aide d'émulations triviales embryonnaires de l'interface "
1231+
"externe. Les modules :mod:`doctest` et :mod:`UnitTest` ou des frameworks de "
1232+
"test tiers peuvent être utilisés pour construire des suites de tests "
1233+
"exhaustives qui éprouvent chaque ligne de code dans un module."
12001234

12011235
#: ../Doc/faq/design.rst:634
12021236
msgid ""
@@ -1208,6 +1242,15 @@ msgid ""
12081242
"test that your :meth:`append` implementation will actually do this "
12091243
"correctly, but it's trivial to check this property in a test suite."
12101244
msgstr ""
1245+
"Une discipline de test appropriée peut aider à construire des applications "
1246+
"complexes de grande taille en Python aussi bien que le feraient des "
1247+
"spécifications d'interface. En fait, c'est peut être même mieux parce qu'une "
1248+
"spécification d'interface ne peut pas tester certaines propriétés d'un "
1249+
"programme. Par exemple, la méthode :meth:`Append` est censée ajouter de "
1250+
"nouveaux éléments à la fin d'une liste « sur place » ; une spécification "
1251+
"d'interface ne peut pas tester que votre implémentation de :meth:`append` va "
1252+
"réellement le faire correctement, mais il est trivial de vérifier cette "
1253+
"propriété dans une suite de tests."
12111254

12121255
#: ../Doc/faq/design.rst:642
12131256
msgid ""
@@ -1217,6 +1260,12 @@ msgid ""
12171260
"before you write any of the actual code. Of course Python allows you to be "
12181261
"sloppy and not write test cases at all."
12191262
msgstr ""
1263+
"L'écriture des suites de tests est très utile, et vous voudrez peut-être "
1264+
"concevoir votre code de manière à le rendre facilement testable. Une "
1265+
"technique de plus en plus populaire, le développement dirigé par les tests, "
1266+
"requiert d'écrire d'abord des éléments de la suite de tests, avant d'écrire "
1267+
"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas "
1268+
"écrire de test du tout."
12201269

12211270
#: ../Doc/faq/design.rst:650
12221271
msgid "Why is there no goto?"

0 commit comments

Comments
 (0)