2021-05-26 16:42:24 +00:00
Guide de contribution à la documentation via GitHub
===================================================
2020-05-22 20:02:24 +00:00
Instructions
------------
2019-12-05 15:11:04 +00:00
Prérequis
2020-05-22 20:02:24 +00:00
~~~~~~~~~
2019-12-05 15:11:04 +00:00
2021-01-27 20:11:22 +00:00
- un client `` git `` `Linux <https://git-scm.com/> `_ , `MacOS <https://git-scm.com/> `_ ou `Windows <https://gitforwindows.org/> `_ ;
2020-05-16 15:38:07 +00:00
- un éditeur de fichier `` .po `` (comme `Poedit <https://poedit.net/> `_ ).
2019-12-05 15:11:04 +00:00
2020-05-22 20:02:24 +00:00
Équipez-vous aussi de quelques outils pour vous aider dans
votre traduction (voir `Outils utiles pour la traduction`_ ).
2021-01-27 20:11:22 +00:00
*fork* personnel sur Github
~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
Pour commencer vous aurez besoin de *forker* le dépôt des sources `python-docs-fr
<https://github.com/python/python-docs-fr> `_ en cliquant sur son bouton
2020-05-22 20:02:24 +00:00
`` Fork `` . Ceci crée une copie du projet sur votre compte Github, c'est un endroit
2019-12-05 15:11:04 +00:00
où vous avez le droit de faire des modifications.
Étape par étape :
.. code-block :: bash
2020-05-16 15:38:07 +00:00
# Clonez votre fork Github avec `git` en utilisant ssh
2020-02-20 13:16:41 +00:00
git clone git@github.com:VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git
2019-12-05 15:11:04 +00:00
2020-12-02 20:11:48 +00:00
# ou bien avec HTTPS
2019-12-05 15:11:04 +00:00
git clone https://github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git
2020-05-16 15:38:07 +00:00
# Allez dans le répertoire cloné
2019-12-05 15:11:04 +00:00
cd python-docs-fr/
2020-05-16 15:38:07 +00:00
# Ajoutez le dépôt officiel (nommé upstream),
# ceci permet à *git* de savoir quoi et où est *upstream*
2019-12-05 15:11:04 +00:00
git remote add upstream https://github.com/python/python-docs-fr.git
2020-05-22 20:02:24 +00:00
2021-01-27 20:11:22 +00:00
*fork* personnel sur une autre forge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si vous n'avez pas de compte Github, il est possible *fork* ce dépôt sur une autre forge.
Vous devez dans un premier temps initier un dépôt vide sur la forge où vous voulez héberger le
dépôt.
.. code-block :: bash
# Clonez en HTTPS le dépôt
git clone https://github.com/python/python-docs-fr
# Allez dans le répertoire cloné
cd python-docs-fr/
# Renommez *origin* en *upstream* pour avoir une référence vers le dépôt officiel
# Il permettra de récupérer les nouveaux commits
git remote rename origin upstream
# Rajoutez le *remote* de votre forge (en HTTPS ou SSH)
git remote add origin <url>
# Envoyez le dépôt sur votre forge et définir par défaut
git push -u origin
2020-05-22 20:02:24 +00:00
Réservation d'un fichier
~~~~~~~~~~~~~~~~~~~~~~~~
2020-12-31 09:37:50 +00:00
*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
2019-12-05 15:11:04 +00:00
Ensuite, vous devez trouver un fichier sur lequel travailler
2020-05-22 20:02:24 +00:00
(pour vous aiguiller, lisez la section `Que traduire ?`_ ). Nous vous conseillons
de choisir, si possible, un fichier traitant d'un sujet que vous maitrisez, cela
vous aidera grandement à produire une traduction de bonne qualité.
2019-12-05 15:11:04 +00:00
2020-06-29 16:08:31 +00:00
Si c'est votre première contribution, commencez par une toute petite
2020-12-31 09:37:50 +00:00
traduction, de quelques paragraphes maximum, pour vous familiariser. Il n'est
2020-06-29 16:08:31 +00:00
pas nécessaire de terminer un fichier lorsqu'on le commence, vous
pouvez donc prendre n'importe quel fichier, mais ne traduire que
quelques paragraphes.
2021-01-27 20:11:22 +00:00
Une fois que vous avez choisi un fichier sur lequel travailler vous pouvez nous
le signaler par différents moyens :
* Soit en ouvrant un `ticket sur Github <https://github.com/python/python-docs-fr/issues> `_
en indiquant dans le titre `` Je travaille sur DOSSIER/FICHIER.po ``
(par exemple « Je travaille sur library/sys.po »).
2019-12-05 15:11:04 +00:00
Ceci permet à `potodo`_ de détecter via l'API Github les fichiers `` .po `` réservés
dans les tickets et les *pull requests* .
2021-01-27 20:11:22 +00:00
* Soit en créant un sujet sur le
`discuss de l'AFPy <https://discuss.afpy.org/> `_ dans la section Traduction
en indiquant sur quoi vous travaillez et l'URL de votre dépôt.
2021-05-28 09:18:47 +00:00
* Soit sur IRC en venant sur le canal
`irc://irc.libera.chat/#python-docs-fr <https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#python-docs-fr> `_
pour nous le signaler.
2021-01-27 20:11:22 +00:00
Vous êtes maintenant prêt. Chaque fois que vous commencerez un nouveau fichier,
suivez cette procédure :
Pour travailler, nous avons besoin d'une branche, basée sur une version à jour
(fraîchement récupérée) de la branche « upstream/3.9 ». On met donc à jour notre
version locale.
2020-05-02 21:52:27 +00:00
2019-12-05 15:11:04 +00:00
.. code-block :: bash
git fetch upstream
2020-05-02 21:52:27 +00:00
2020-12-31 09:37:50 +00:00
On crée ensuite la branche, en la basant sur « upstream/3.9 », fraîchement récupérée.
Il est pratique de nommer cette branche en fonction du
2020-05-02 21:52:27 +00:00
fichier sur lequel on travaille. Par exemple, si vous travaillez sur
« library/sys.po », vous pouvez nommer votre branche « library-sys ».
.. code-block :: bash
2021-02-03 16:11:02 +00:00
git checkout -b library-sys upstream/3.9
2019-12-05 15:11:04 +00:00
2020-05-02 21:52:27 +00:00
2020-05-16 15:38:07 +00:00
Vous pouvez maintenant travailler sur le fichier.
Si vous utilisez Poedit, n'oubliez pas de configurer votre nom et votre adresse de courriel
(Édition → Préférences → Général).
Vérifiez aussi qu'il est configuré pour passer à la ligne à 79 caractères
(Édition → Préférences → Avancé → Passer à la ligne à 79).
2020-05-02 21:52:27 +00:00
Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment.
.. code-block :: bash
poedit library/sys.po
2020-05-22 20:02:24 +00:00
2020-05-16 15:38:07 +00:00
Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ».
2020-05-02 21:52:27 +00:00
2020-06-01 20:52:48 +00:00
Traduction
~~~~~~~~~~
Vous pouvez dès à présent commencer à traduire le fichier en respectant les `conventions`_ du projet.
Pour vous aider à ne pas faire de fautes d'orthographe, vous pouvez vérifier que tous les mots utilisés sont
bien dans le dictionnaire (ça ne vérifie pas la grammaire, pour cela utilisez `padpo (beta)`_ ). En cas
de doute, un `glossaire`_ répertorie déjà les traductions retenues pour certains termes techniques ou faux amis
en anglais.
2020-05-02 21:52:27 +00:00
.. code-block :: bash
2020-06-01 20:52:48 +00:00
make spell
2019-12-05 15:11:04 +00:00
2020-08-11 07:41:45 +00:00
2020-06-01 20:52:48 +00:00
Vous pouvez aussi réindenter les fichiers avec :
2020-05-22 20:02:24 +00:00
2020-06-01 20:52:48 +00:00
.. code-block :: bash
2020-05-22 20:02:24 +00:00
2020-06-01 20:52:48 +00:00
make wrap
2020-05-22 20:02:24 +00:00
2020-08-11 07:41:45 +00:00
2020-06-01 20:52:48 +00:00
Et pour faire les deux à la fois, lancez :
2020-05-02 21:52:27 +00:00
.. code-block :: bash
2019-12-05 15:11:04 +00:00
make verifs
2020-08-11 07:41:45 +00:00
2020-05-22 20:02:24 +00:00
Une fois la traduction finie, il faut compiler la documentation, c'est-à-dire générer les fichiers HTML
affichés par le site, pour les relire. Si la commande précédente s'est exécutée sans erreur, la
compilation ne devrait pas échouer.
.. code-block :: bash
make
2020-08-11 07:41:45 +00:00
2020-05-22 20:02:24 +00:00
Vérifiez alors le rendu de la traduction « en vrai ». Lancez un serveur de
documentation local :
.. code-block :: bash
make serve
2020-08-11 07:41:45 +00:00
2020-05-22 20:02:24 +00:00
La documentation est publiée l'adresse `<http://localhost:8000/library/sys.html>`_
(ou tout autre port indiqué par la sortie de la commande précédente). Vous pouvez
recommencer les étapes de cette section autant de fois que nécessaire.
2020-06-01 20:52:48 +00:00
Poedit donne beaucoup d'avertissements, par exemple pour vous informer que
« la traduction devrait commencer par une majuscule » car c'est le cas pour
la source. Ces avertissements ne sont pas tous fondés. En cas de doute,
*affichez et relisez la page HTML produite* avec `` make serve `` .
2020-05-22 20:02:24 +00:00
*pull request*
~~~~~~~~~~~~~~
2020-05-02 21:52:27 +00:00
2020-06-01 20:52:48 +00:00
Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les
`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local.
`` git add `` place nos modifications dans l'index de Git en
2020-05-02 21:52:27 +00:00
attendant d'être propagées dans le dépôt local.
.. code-block :: bash
2019-12-05 15:11:04 +00:00
git add library/sys.po
2020-05-02 21:52:27 +00:00
2020-06-01 20:52:48 +00:00
`` git commit `` permet de les propager :
2020-05-02 21:52:27 +00:00
.. code-block :: bash
2020-08-11 07:41:45 +00:00
git commit --message "Traduction de library/sys.po" # Ou un autre message plus inspiré :)
2019-12-05 15:11:04 +00:00
2020-08-11 08:09:38 +00:00
2021-01-27 20:11:22 +00:00
Poussez ensuite vos modifications sur votre *fork* avec `` git push `` .
2020-06-01 20:52:48 +00:00
Le `` -u `` n'est utile qu'une fois pour que votre client git se souvienne que cette
2021-01-27 20:11:22 +00:00
branche est liée à votre *fork* (et donc que vos futurs `` git pull `` et
2020-06-01 20:52:48 +00:00
`` git push `` sachent quoi tirer).
2020-05-02 21:52:27 +00:00
.. code-block :: bash
2020-08-11 07:41:45 +00:00
git push --set-upstream origin
2021-01-27 20:11:22 +00:00
Sur Github
++++++++++
2020-08-11 08:09:38 +00:00
2020-12-02 20:11:48 +00:00
La commande précédente vous affiche un lien pour ouvrir une *pull request* sur
2020-05-02 21:52:27 +00:00
Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/pulls
et un joli bouton « Compare & pull request » devrait apparaître au bout de
2020-12-02 20:11:48 +00:00
quelques secondes vous indiquant que vous pouvez demander une *pull request* .
2020-05-02 21:52:27 +00:00
2020-06-01 20:52:48 +00:00
Mettez dans le commentaire de la *pull request* le texte suivant :
2020-05-16 15:38:07 +00:00
« Closes #XXXX » où XXXX est le numéro du ticket GitHub créé pour réserver le fichier traduit.
2020-06-01 20:52:48 +00:00
Cela permet à Github de lier la *pull request* au ticket de réservation.
2020-05-02 21:52:27 +00:00
2021-05-24 15:03:14 +00:00
Il peut arriver que vous ayez besoin de reprendre votre PR sur votre
ordinateur après avoir fait des modifications en ligne sur GitHub,
par exemple lorsque GitHub vous offre la possibilité de faire un commit
automatique contenant les suggestions proposées pendant la revue.
Cela fonctionne bien, mais le résultat n'est pas toujours accepté par
`` powrap `` . Si cela arrive, vous pouvez récupérer le commit fait par
GitHub puis relancer `` powrap `` :
.. code-block :: bash
git pull
powrap <fichier.po>
git add <fichier.po>
git commit -m "Formatage après commit automatique"
git push
2021-01-27 20:11:22 +00:00
Sur une autre forge
+++++++++++++++++++
Quand vous avez poussé vos modifications, il y a plusieurs possibilités.
Soit vous signalez via le `discuss de l'AFPy <https://discuss.afpy.org/> `_ ou sur IRC que
vous avez traduit une section. Nous viendrons récupérer les modifications pour les intégrer
sur Github.
Soit en créant un *`bundle <https://git-scm.com/book/fr/v2/Utilitaires-Git-Empaquetage-bundling>`_* Git,
pour cela, il faut créer un fichier contenant les différentes modifications effectuées.
.. code-block :: bash
git bundle create <name>.bundle <commit_id1>..<commit_id2>
Puis nous partager ce *bundle* sur le `discuss de l'AFPy <https://discuss.afpy.org/> `_ pour pouvoir l'intégrer.
2020-05-02 21:52:27 +00:00
À partir de là, quelqu'un passera en revue vos modifications, et vous fera des
2020-05-16 15:38:07 +00:00
suggestions et corrections. Pour les prendre en compte, retournez sur votre branche
2020-06-01 20:52:48 +00:00
contenant le fichier concerné (au cas où vous auriez commencé quelque chose d'autre
sur une autre branche) :
2020-05-02 21:52:27 +00:00
.. code-block :: bash
2019-12-05 15:11:04 +00:00
2020-05-22 20:02:24 +00:00
git checkout library-sys
2020-01-02 14:34:53 +00:00
git pull # pour rapatrier les modifications que vous auriez acceptées
2019-12-05 15:11:04 +00:00
# sur l'interface web.
# Réglez les problèmes, puis commitez à nouveau :
2020-08-11 07:41:45 +00:00
git commit --all --message "prise en compte des remarques"
2019-12-05 15:11:04 +00:00
git push
2020-05-02 21:52:27 +00:00
2019-12-05 15:11:04 +00:00
Vous avez peut-être remarqué que cela ressemble à un triangle, avec un
segment manquant :
2020-01-02 14:34:53 +00:00
- vous récupérez depuis *upstream* (le dépôt commun public sur Github) ;
- vous poussez sur *origin* (votre clone sur Github).
2019-12-05 15:11:04 +00:00
C'est le travail de quelqu'un d'autre d'ajouter le dernier segment,
de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le
rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues.
Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une
2020-06-01 20:52:48 +00:00
branche de version (3.8, 3.9, etc.), seulement récupéré les
2019-12-05 15:11:04 +00:00
modifications à partir d'elles.
Toutes les traductions sont faites sur la dernière version.
Nous ne traduisons jamais sur une version plus ancienne. Par exemple,
2020-06-05 07:32:47 +00:00
si la dernière version de python est Python 3.9, nous ne voulons pas
traduire directement sur la version Python 3.5.
2019-12-05 15:11:04 +00:00
Si nécessaire, les traductions seraient rétroportées sur les versions
les plus anciennes par l'`équipe de documentation
<https://www.python.org/dev/peps/pep-8015/#documentation-team> `_.
2021-01-27 20:11:22 +00:00
2019-12-05 15:11:04 +00:00
Que traduire ?
2020-05-22 20:02:24 +00:00
--------------
2019-12-05 15:11:04 +00:00
2020-06-01 20:52:48 +00:00
Vous pouvez utiliser `potodo`_ , un outil fait pour trouver des fichiers *po*
2020-05-22 20:02:24 +00:00
à traduire. Une fois installé, utilisez la commande `` make todo `` dans votre clone
2019-12-11 11:56:00 +00:00
local.
2019-12-05 15:11:04 +00:00
2019-12-11 11:56:00 +00:00
Vous pouvez choisir n'importe quel fichier non réservé dans la liste
2020-05-16 15:38:07 +00:00
renvoyée par la commande **à l'exception** des fichiers de :
2020-06-01 20:52:48 +00:00
- *c-api/* car c'est une partie très technique ;
- *whatsnew/* car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ;
- *distutils/* et *install/* car ces pages seront bientôt obsolètes.
2019-12-05 15:11:04 +00:00
Vous pouvez commencer par des tâches faciles comme réviser les entrées
2020-05-22 20:02:24 +00:00
*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide
2020-06-01 20:52:48 +00:00
de `` make fuzzy `` ). Une entrée *fuzzy* correspond à une entrée déjà traduite
2020-05-22 20:02:24 +00:00
mais dont la source en anglais a été remodifiée depuis (correction orthographique,
changement d'un terme, ajout ou suppression d'une phrase…). Elles sont
généralement plus « faciles » à traduire.
2019-12-05 15:11:04 +00:00
Vous pouvez également relire des entrées déjà traduites pour vous faire une
2020-05-16 15:38:07 +00:00
idée, et passer ensuite à la traduction de celles qui ne le sont pas encore.
2019-12-05 15:11:04 +00:00
2020-05-22 20:02:24 +00:00
Conventions
-----------
2019-12-05 15:11:04 +00:00
2020-06-01 20:52:48 +00:00
Certaines conventions ont été édictées pour homogénéiser la traduction.
Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et
les traductions déjà définies dans le `glossaire`_ .
Style
~~~~~
Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle
en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et
agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même
conseillé — d'intervertir des propositions ou de réarranger des phrases de la
documentation anglaise, si le rythme l'exige. Il faut aussi chercher des
équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre
garde aux anglicismes.
Utilisation du futur
++++++++++++++++++++
Dans la description du comportement de Python (au sens large, c'est-à-dire
l'interpréteur lui-même mais aussi toutes les bibliothèques), la version
originale utilise souvent le futur : « if you do this, it will produce
that… ». En français, l'utilisation du présent convient tout à fait et le
présent est souvent plus facile à lire : « si vous faites ceci, il se
produit cela… ». On ne conserve le futur que si la seconde proposition
se situe réellement dans le futur (par exemple, on peut penser qu'un
processus de compilation n'est pas immédiat) ou pour des raisons de
concordance des temps.
Utilisation du conditionnel
+++++++++++++++++++++++++++
La version originale est très polie envers le lecteur ; elle lui intime
rarement des obligations, préférant employer « you should ». Cependant, en
français, il est d'usage d'être plus direct pour être correctement compris :
« vous devez ». *Vous devriez* est en effet généralement compris comme quelque
chose dont l'on peut de temps en temps se passer, alors que c'est très
rarement le cas pour les « you should » de cette documentation.
De la même manière, « can » est souvent mieux traduit sans introduire de notion
de possibilité, en particulier quand la phrase est à la voix passive ; la
phrase « these objects can be accessed by… » se traduit mieux par « on accède à
ces objets en… ».
Utilisation du masculin
+++++++++++++++++++++++
Dans un souci de lisibilité et en accord avec la préconisation de
l'Académie française, nous utilisons le masculin pour indiquer un
genre neutre. Par exemple : l'utilisateur ou le lecteur.
Règles rst
~~~~~~~~~~
2020-05-22 20:02:24 +00:00
Prototypes et exemples
2020-06-01 20:52:48 +00:00
++++++++++++++++++++++
2020-05-22 20:02:24 +00:00
Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms
de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser
tels quel, entourés d'astérisques dans les blocs de texte.
Si la documentation contient des exemples, vous *pouvez* traduire les noms
utilisés, en prenant garde d'être cohérent. Vous pouvez ainsi traduire :
.. code-block :: python
def sample_function():
result = thread.join(timeout=...)
...
2019-12-05 15:11:04 +00:00
2020-08-11 07:41:45 +00:00
2020-05-22 20:02:24 +00:00
en
2019-12-05 15:11:04 +00:00
2020-05-22 20:02:24 +00:00
.. code-block :: python
def fonction_exemple():
resultat = thread.join(timeout=...)
...
2020-08-11 07:41:45 +00:00
2020-06-05 07:32:47 +00:00
mais pas en
2020-05-22 20:02:24 +00:00
.. code-block :: python
def fonction_exemple():
resultat = fildexécution.attendre(délai=...)
...
2020-08-11 07:41:45 +00:00
2020-05-22 20:02:24 +00:00
Liens hypertextes
2020-06-01 20:52:48 +00:00
+++++++++++++++++
2020-05-22 20:02:24 +00:00
Il faut transformer les liens hypertextes qui redirigent vers une page dont il
existe une version française (c'est notamment très souvent le cas pour les
articles de Wikipédia). Modifiez le lien *et* sa description dans ce cas.
Si aucune traduction de la cible n'existe, ne traduisez pas la description.
Par exemple, `` ` Conway's Game of Life <https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life> ` _ ``
doit devenir `` ` Jeu de la vie <https://fr.wikipedia.org/wiki/Jeu_de_la_vie> ` _ `` .
Balises
2020-06-01 20:52:48 +00:00
+++++++
2020-05-22 20:02:24 +00:00
Ne traduisez pas le contenu des balises comme `` :ref:... `` ou `` :class:... `` .
Vous devez cependant traduire les balises `` :term:... `` , qui font référence à
2020-06-01 20:52:48 +00:00
un concept ou une primitive défini dans le `glossaire Python <https://docs.python.org/fr/3/glossary.html> `_ .
2020-05-22 20:02:24 +00:00
La syntaxe est `` :term:nom_français<nom_anglais> `` . Par exemple, traduisez
2020-12-02 20:11:48 +00:00
`` :term: ` dictionary ` `` en `` :term: ` dictionnaire <dictionary> ` `` .
2020-05-22 20:02:24 +00:00
Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque
terme que vous pouvez rencontrer.
2020-01-02 14:34:53 +00:00
Glossaire
~~~~~~~~~
2020-06-05 07:32:47 +00:00
Afin d'assurer la cohérence de la traduction, voici quelques
2020-05-22 20:02:24 +00:00
termes fréquents déjà traduits. Une liste blanche de noms propres, comme « Guido »,
« C99 » ou de certains anglicismes comme « sérialisable » ou « implémentation»,
2020-12-02 20:11:48 +00:00
est stockée dans le fichier *dict* à la racine du projet. Vous pouvez
2020-05-22 20:02:24 +00:00
y ajouter une entrée si cela est nécessaire.
Si vous devez *absolument* utiliser un mot anglais, mettez-le en italique
(entouré par des astérisques).
2020-01-02 14:34:53 +00:00
Pour trouver facilement comment un terme est déjà traduit dans la
documentation, vous pouvez utiliser `pogrep`_ .
========================== ===============================================
2020-05-22 20:02:24 +00:00
Terme Traduction
2020-01-02 14:34:53 +00:00
========================== ===============================================
-like -compatible
abstract data type type abstrait
argument argument (à ne pas confondre avec *paramètre* )
backslash antislash, *backslash*
backtrace trace d'appels, trace de pile
2020-05-16 15:38:07 +00:00
backport rétroporter
2020-01-02 14:34:53 +00:00
bound lier
2020-05-07 07:55:42 +00:00
bug bogue
2020-05-01 20:18:53 +00:00
built-in natif
2020-03-26 22:31:50 +00:00
bytecode code intermédiaire
2020-01-02 14:34:53 +00:00
callback fonction de rappel
call stack pile d'appels
2020-05-06 20:56:56 +00:00
caught (exception) interceptée
2020-01-02 14:34:53 +00:00
debugging débogage
deep copy copie récursive (préféré), ou copie profonde
double quote guillemet
deprecated obsolète
e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. »,
lui-même issu du latin *exempli gratia* ).
2020-05-01 20:18:53 +00:00
On sépare les deux mots par une espace
2020-01-02 14:34:53 +00:00
insécable pour éviter les retours à la ligne
malheureux.
et al. et autres, `à accorder
<https://fr.wikipedia.org/wiki/Et_al.>`_
suivant le contexte
export exportation
expression expression
2020-05-22 17:47:39 +00:00
framework cadriciel
2020-08-25 10:15:49 +00:00
frozen package or set paquet ou ensemble figé
2020-01-02 14:34:53 +00:00
garbage collector ramasse-miettes
getter accesseur
2020-05-01 20:18:53 +00:00
i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e. »,
2020-01-02 14:34:53 +00:00
lui-même issu du latin *id est* )
identifier identifiant
immutable immuable
import importation
2020-05-22 20:02:24 +00:00
index indice (en particulier quand on parle de chaînes
de caractères)
2020-01-02 14:34:53 +00:00
installer installateur
interpreter interpréteur
2020-10-15 08:42:42 +00:00
keyword mot clé
keyword argument argument nommé
2020-01-02 14:34:53 +00:00
library bibliothèque
list comprehension liste en compréhension (liste en intension est
valide, mais nous ne l'utilisons pas)
little-endian, big-endian `petit-boutiste, gros-boutiste
<https://fr.wikipedia.org/wiki/Endianness>`_
mixin type type de mélange
mutable muable
namespace espace de nommage
(sauf pour le XML où c'est espace de noms)
parameter paramètre
2021-04-29 12:06:06 +00:00
parse, parser analyser, analyseur syntaxique
2020-01-02 14:34:53 +00:00
pickle (v.) sérialiser
prompt invite
raise lever
regular expression expression rationnelle, expression régulière
return renvoie, donne (on évite « retourne » qui
pourrait porter à confusion)
2021-02-02 13:14:40 +00:00
roughly approximativement, à peu près (on ne traduit pas
« roughly equivalent » par « sensiblement équivalent »)
2020-01-02 14:34:53 +00:00
setter mutateur
simple quote guillemet simple
socket connecteur ou interface de connexion
2021-02-02 13:14:40 +00:00
specify définir, préciser (plutôt que « spécifier »)
2020-01-02 14:34:53 +00:00
statement instruction
subprocess sous-processus
2020-05-22 20:02:24 +00:00
support prendre en charge, implémenter (« supporter »
n'a pas le même sens en français)
2020-01-02 14:34:53 +00:00
thread fil d'exécution
traceback trace d'appels, trace de pile
2020-12-02 22:45:10 +00:00
tuple *n* -uplet (avec *n* en italique), on peut
traduire *2-tuple* par « paire » ou « couple »,
*3-tuple* par « triplet », *4-tuple* par
« quadruplet » etc.
2021-02-02 13:14:40 +00:00
typically normalement, habituellement, comme d'habitude
(plutôt que « typiquement »)
2021-01-27 20:11:22 +00:00
underscore tiret bas, *underscore* , sous-tiret
2020-01-02 14:34:53 +00:00
whitespace caractère d'espacement
========================== ===============================================
2020-06-01 20:52:48 +00:00
Ressources de traduction
------------------------
2021-05-28 09:18:47 +00:00
- les canaux IRC sur irc.libera.chat :
2020-06-01 20:52:48 +00:00
2021-05-28 09:18:47 +00:00
- `#python-docs-fr <https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#python-docs-fr> `_ — communauté python autour de la documentation française,
- `#python-fr <https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#python-fr> `_ — communauté python francophone,
- `#python-doc <https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#python-doc> `_ — communauté python autour de la documentation anglophone ;
2020-06-01 20:52:48 +00:00
- les listes de diffusion relatives à la documentation (courriel) :
- `de l'AFPy <http://lists.afpy.org/mailman/listinfo/traductions> `_ ,
2020-12-02 20:11:48 +00:00
- `de CPython <https://mail.python.org/mailman/listinfo/doc-sig> `_ ;
2020-06-01 20:52:48 +00:00
- des glossaires et dictionnaires :
- le `glossaire de la documentation Python <https://docs.python.org/fr/3/glossary.html> `_ , car il est déjà traduit,
- les `glossaires et dictionnaires de traduc.org <https://traduc.org/Glossaires_et_dictionnaires> `_ , en particulier le `grand dictionnaire terminologique <http://gdt.oqlf.gouv.qc.ca/> `_ de l'Office québécois de la langue française,
- Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ;
- le `guide stylistique pour le français de localisation des produits Sun
<https://web.archive.org/web/20160821182818/http://frenchmozilla.org/FTP/TEMP/guide_stylistique_December05.pdf>`_ donne
beaucoup de conseils pour éviter une traduction trop mot à mot ;
- `Petites leçons de typographie <https://jacques-andre.fr/faqtypo/lessons.pdf> `_ ,
2020-08-04 09:41:46 +00:00
résumé succinct de typographie, utile pour apprendre le bon usage des
2020-06-01 20:52:48 +00:00
majuscules, des espaces, etc.
2020-12-02 20:11:48 +00:00
L'utilisation de traducteurs automatiques comme `DeepL <https://www.deepl.com/> `_ ou semi-automatiques comme
`reverso <https://context.reverso.net/traduction/anglais-francais/> `_ est proscrite.
2020-06-01 20:52:48 +00:00
Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette
page et génèrent une documentation au style très « lourd ».
2020-05-22 20:02:24 +00:00
Caractères spéciaux et typographie
----------------------------------
2019-12-05 15:11:04 +00:00
2020-05-02 14:22:38 +00:00
La touche de composition
~~~~~~~~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
Cette `touche <https://fr.wikipedia.org/wiki/Touche_de_composition> `_ ,
2020-08-04 09:41:46 +00:00
absente par défaut des claviers, permet de saisir des
2019-12-05 15:11:04 +00:00
caractères spéciaux en combinant les caractères déjà présents sur le
clavier. C'est à l'utilisateur de définir la touche de composition.
Avec une touche de composition, vous pouvez utiliser les
compositions suivantes :
2020-05-02 14:22:38 +00:00
- :kbd: `Compose < <` donne `` « ``
- :kbd: `Compose > >` donne `` » ``
2019-12-05 15:11:04 +00:00
- :kbd: `Compose SPACE SPACE` donne une espace insécable
- :kbd: `Compose . . .` donne `` … ``
2020-05-16 15:38:07 +00:00
Comme vous l'avez noté, presque toutes les compositions sont intuitives,
vous pouvez donc en essayer d'autres et elles devraient tout
2019-12-05 15:11:04 +00:00
simplement fonctionner :
- :kbd: `Compose C =` donne `` € ``
- :kbd: `Compose 1 2` donne `` ½ ``
- :kbd: `Compose ' E` donne `` É ``
2020-05-16 15:38:07 +00:00
- etc.
2019-12-05 15:11:04 +00:00
Comment définir la touche de composition ?
2020-01-02 14:34:53 +00:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
Cela dépend de votre système d'exploitation et de votre clavier.
2020-12-02 20:11:48 +00:00
⇒ Sous Linux, Unix et \*BSD (tel OpenBSD), vous pouvez la configurer à l'aide de
l'outil graphique de configuration de votre clavier ou avec
2019-12-05 15:11:04 +00:00
`` dpkg-reconfigure keyboard-configuration ``
(pour `Ubuntu <https://help.ubuntu.com/community/ComposeKey> `_ ou Debian
et distributions assimilées).
2020-12-02 20:11:48 +00:00
À tout le moins, vous pouvez configurer votre fichier *~/.Xmodmap* pour
2019-12-05 15:11:04 +00:00
ajouter l'équivalent de :
.. code-block :: shell
# key Compose
keycode 115 = Multi_key
Utilisez `` xev `` pour connaitre la bonne correspondance de la touche que vous
voulez assigner !
2020-12-02 20:11:48 +00:00
Ensuite, dans votre fichier *~/.xsession* , ajoutez :
2019-12-05 15:11:04 +00:00
.. code-block :: shell
# Gestion des touches clavier
xmodmap $HOME/.Xmodmap
2020-08-11 07:41:45 +00:00
2020-12-02 20:11:48 +00:00
⇒ Sous X, avec un bureau graphique, tel que Gnome, ou Xfce, il faut aller
2020-05-16 15:38:07 +00:00
modifier dans les « Paramètres » → « Clavier » → « Disposition » →
2020-05-02 14:22:38 +00:00
« Touche composée ». Pour finir, redémarrez votre session.
2019-12-05 15:11:04 +00:00
2020-12-02 20:11:48 +00:00
⇒ Sous Windows, vous
2019-12-05 15:11:04 +00:00
pouvez utiliser `wincompose <https://github.com/SamHocevar/wincompose> `_ .
2020-01-02 14:34:53 +00:00
Le cas de « --- », « -- », « ... »
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
2020-05-16 15:38:07 +00:00
La version anglaise utilise les
2019-12-05 15:11:04 +00:00
`smartquotes <http://docutils.sourceforge.net/docs/user/smartquotes.html> `_ ,
2020-05-16 15:38:07 +00:00
qui fonctionnent en anglais, mais causent des problèmes dans d'autres langues.
Nous les avons donc désactivées (voir #303) dans la version française.
2019-12-05 15:11:04 +00:00
Les *smartquotes* sont normalement responsables de la transformation de
`` -- `` en *en-dash* (`` — `` ), de `` --- `` en *em-dash* (`` — `` ), et de
`` ... `` en *ellipses* `` … `` .
2020-12-02 20:11:48 +00:00
⇒ Si vous voyez :
2019-12-05 15:11:04 +00:00
| « -- » ou « --- » : faites :kbd: `Compose - - -`
| « ... » : faites :kbd: `Compose . . .`
2020-01-02 14:34:53 +00:00
Le cas de « "…" »
~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
Les guillemets français `` « `` et `` » `` ne sont pas identiques aux
guillemets anglais `` " `` . Cependant, Python utilise les guillemets
anglais comme délimiteurs de chaîne de caractères. Il convient donc de
traduire les guillemets mais pas les délimiteurs de chaîne.
2020-12-02 20:11:48 +00:00
⇒ Si vous voyez :
2019-12-05 15:11:04 +00:00
| « "…" » : faites :kbd: `Compose < <` ou :kbd: `Compose > >`
Le cas de « :: »
~~~~~~~~~~~~~~~~
| Du point de vue du langage *reStructuredText* (ou *rst* ) utilisé dans la
documentation nous voyons soit « bla bla:: », soit « bla bla. :: ».
| `` :: `` collé à la fin d'un mot signifie « affiche `` : `` et introduit un bloc de code »,
mais un `` :: `` après une espace signifie « introduit juste un bloc de code ».
En français, nous mettons une espace insécable devant nos deux-points, comme :
« Et voilà : ».
2020-12-02 20:11:48 +00:00
⇒ Traduisez `` mot deux-points deux-points `` par
2019-12-05 15:11:04 +00:00
`` mot espace-insécable deux-points deux-points `` .
2020-05-16 15:38:07 +00:00
Pour saisir une espace insécable faites :kbd: `Compose SPACE SPACE`
2019-12-05 15:11:04 +00:00
2020-06-01 20:52:48 +00:00
Les doubles-espaces
~~~~~~~~~~~~~~~~~~~
2020-02-05 09:05:28 +00:00
2020-05-01 20:18:53 +00:00
La documentation originale comporte beaucoup de doubles-espaces.
2020-04-22 13:30:59 +00:00
Cela se fait en anglais, mais pas en français. De toute manière,
ils passent ensuite à une moulinette et le rendu des espaces est délégué
au HTML et au PDF, qui n'en tiennent pas compte.
2020-05-01 20:18:53 +00:00
Nous avons décidé de ne rien changer pour les doubles-espaces
2020-04-22 13:30:59 +00:00
coté traduction : nous ne les retirons pas et ce n'est pas grave
2020-02-05 09:05:28 +00:00
si des traducteurs en retirent par accident.
2020-05-02 14:22:38 +00:00
Les énumérations
~~~~~~~~~~~~~~~~
Chaque paragraphe d'une énumération introduite par un deux-point
doit se terminer par un point-virgule (bien entendu précédé d'une
espace insécable) quelle que soit sa ponctuation interne. Seul le dernier
paragraphe de l'énumération s'achève par un point ou, si la phrase
continue après l'énumération, une virgule. Si l'un des paragraphes est
lui-même une énumération, chacun des sous-paragraphes se termine par
une virgule et le dernier par un point-virgule.
Par exemple :
- le premier paragraphe de l'énumération ;
- le deuxième paragraphe, lui-aussi une énumération :
2020-06-05 07:32:47 +00:00
2020-05-02 14:22:38 +00:00
- premier sous-paragraphe,
- second sous-paragraphe ;
- le dernier paragraphe.
2020-05-16 15:38:07 +00:00
Malheureusement Poedit n'aime pas les différences de ponctuation finales
2020-05-02 14:22:38 +00:00
entre un paragraphe et sa traduction ; il faut passer outre ses avertissements.
Vous pouvez aussi rajouter un commentaire dans le fichier *.po* pour avertir
les traducteurs suivants et éviter qu'ils ne « corrigent » par erreur ces
avertissements.
2020-02-05 09:05:28 +00:00
2019-12-05 15:11:04 +00:00
Outils utiles pour la traduction
--------------------------------
Potodo
~~~~~~
| Permet de d'identifier les parties de la documention qu'il reste à traduire.
| Installez-le à l'aide de *pip* (`` pip install potodo `` ) dans un environnement
`` python3.6 `` ou plus.
2020-05-01 20:18:53 +00:00
| `Lien vers le dépôt <https://github.com/seluj78/potodo> `__
2019-12-05 15:11:04 +00:00
Pogrep
~~~~~~
| Permet de rechercher dans la documentation des termes. Utile si on a un doute
sur comment traduire un terme ou chercher la traduction d'un terme dans
d'autres fichiers.
2020-05-16 15:38:07 +00:00
| Installez-le à l'aide de *pip* (`` pip install pogrep `` ).
2020-05-01 20:18:53 +00:00
| `Lien vers le dépôt <https://github.com/JulienPalard/pogrep> `__
2019-12-05 15:11:04 +00:00
Padpo (beta)
2020-05-16 15:38:07 +00:00
~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
| Analyseur de code qui vérifie la grammaire et l'orthographe et la syntaxe
du fichier .po.
| Installez-le à l'aide de *pip* (`` pip install padpo `` ) dans un environnement
`` python3.7 `` ou plus.
2020-05-01 20:18:53 +00:00
| `Lien vers le dépôt <https://github.com/vpoulailleau/padpo> `__
2019-12-05 15:11:04 +00:00
Powrap
~~~~~~
| Formateur de fichier .po.
2020-05-16 15:38:07 +00:00
| Installez-le à l'aide de *pip* (`` pip install powrap `` ).
2020-05-01 20:18:53 +00:00
| `Lien vers le dépôt <https://github.com/JulienPalard/powrap> `__
2019-12-05 15:11:04 +00:00
2020-05-22 20:02:24 +00:00
2020-12-31 09:37:50 +00:00
Affichage des modifications par Git
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-12-05 15:11:04 +00:00
2020-12-31 09:37:50 +00:00
Le résultat de `` git diff `` est souvent encombré de changements inutiles de numéros
2019-12-05 15:11:04 +00:00
de ligne, comme :
.. code-block :: diff
2020-12-31 09:37:50 +00:00
-#: ../Doc/library/sys.rst:406
+#: ../Doc/library/sys.rst:408
2019-12-05 15:11:04 +00:00
2020-08-11 07:41:45 +00:00
2020-12-31 09:37:50 +00:00
Pour dire à Git que ce ne sont pas des informations utiles, vous pouvez faire
2019-12-05 15:11:04 +00:00
ce qui suit après vous être assuré que `` ~/.local/bin/ `` se trouve dans votre
`` PATH `` .
.. code-block :: bash
cat <<EOF > ~/.local/bin/podiff
#!/bin/sh
grep -v '^#:' "\$1"
EOF
chmod a+x ~/.local/bin/podiff
git config diff.podiff.textconv podiff
2020-05-22 20:02:24 +00:00
Pas d'inquiétude, cela ne change la façon dont Git affiche les changements que sur
2020-05-16 15:38:07 +00:00
les fichiers de la traduction, sans incidence sur les autres.