diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 1575f9a97..f3361bfd1 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -106,9 +106,23 @@ ou `powrap library/sys.po` (un fichier en particulier) : Traduction ~~~~~~~~~~ -Vous pouvez commencer à présent commencer à traduire le fichier en respectant les `Conventions`_ du projet. +Vous pouvez commencer à 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. -La commande suivante lance les vérifications nécessaires : +.. code-block:: bash + + make spell + +Vous pouvez aussi réindenter les fichiers avec : + +.. code-block:: bash + + make wrap + +Et pour faire les deux à la fois, lancez : .. code-block:: bash @@ -136,8 +150,10 @@ recommencer les étapes de cette section autant de fois que nécessaire. *pull request* ~~~~~~~~~~~~~~ -C'est le moment de `git add` et `git commit`. -`git add` place nos modifications dans l'index de Git en +Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les +`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local. + +``git add`` place nos modifications dans l'index de Git en attendant d'être propagées dans le dépôt local. .. code-block:: bash @@ -145,17 +161,16 @@ attendant d'être propagées dans le dépôt local. git add library/sys.po -Puis on propage les modifications dans le dépôt local avec un commit. +``git commit`` permet de les propager : .. code-block:: bash git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :) - -Poussez ensuite vos modifications sur votre fork Github. -Le -u n'est utile qu'une fois pour que votre client git se souvienne que cette -branche est liée à votre fork Github (et donc que vos futurs `git pull` et -`git push` sachent quoi tirer). +Poussez ensuite vos modifications sur votre *fork* Github avec ``git push``. +Le ``-u`` n'est utile qu'une fois pour que votre client git se souvienne que cette +branche est liée à votre *fork* Github (et donc que vos futurs ``git pull`` et +``git push`` sachent quoi tirer). .. code-block:: bash @@ -166,13 +181,14 @@ Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/p et un joli bouton « Compare & pull request » devrait apparaître au bout de quelques secondes vous indiquant que vous pouvez demander une pull request. -Mettez dans le commentaire de la pull request le texte suivant : +Mettez dans le commentaire de la *pull request* le texte suivant : « Closes #XXXX » où XXXX est le numéro du ticket GitHub créé pour réserver le fichier traduit. +Cela permet à Github de lier la *pull request* au ticket de réservation. À partir de là, quelqu'un passera en revue vos modifications, et vous fera des suggestions et corrections. Pour les prendre en compte, retournez sur votre branche -contenant du fichier concerné (au cas où vous auriez commencé quelque chose d'autre -sur une autre branche) : +contenant le fichier concerné (au cas où vous auriez commencé quelque chose d'autre +sur une autre branche) : .. code-block:: bash @@ -196,7 +212,7 @@ de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues. Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une -branche de version (``3.7``, ``3.8``, etc.), seulement récupéré les +branche de version (3.7, 3.8, etc.), seulement récupéré les modifications à partir d'elles. Toutes les traductions sont faites sur la dernière version. @@ -210,20 +226,20 @@ les plus anciennes par l'`équipe de documentation Que traduire ? -------------- -Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers ``po`` +Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers *po* à traduire. Une fois installé, utilisez la commande ``make todo`` dans votre clone local. Vous pouvez choisir n'importe quel fichier non réservé dans la liste renvoyée par la commande **à l'exception** des fichiers de : -- ``c-api/`` car c'est une partie très technique ; -- ``whatsnew/`` car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ; -- ``distutils/`` et ``install/`` car ces pages seront bientôt obsolètes. +- *c-api/* car c'est une partie très technique ; +- *whatsnew/* car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ; +- *distutils/* et *install/* car ces pages seront bientôt obsolètes. Vous pouvez commencer par des tâches faciles comme réviser les entrées *fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide -de `make fuzzy`). Une entrée *fuzzy* correspond à une entrée déjà traduite +de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite mais dont la source en anglais a été remodifiée depuis (correction orthographique, changement d'un terme, ajout ou suppression d'une phrase…). Elles sont généralement plus « faciles » à traduire. @@ -235,8 +251,61 @@ idée, et passer ensuite à la traduction de celles qui ne le sont pas encore. Conventions ----------- +Certaines conventions ont été édictées pour homogénéiser la traduction. +Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et +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, il 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 +~~~~~~~~~~ + Prototypes et exemples -~~~~~~~~~~~~~~~~~~~~~~ +++++++++++++++++++++++ Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser @@ -267,7 +336,7 @@ mais pas en ... Liens hypertextes -~~~~~~~~~~~~~~~~~ ++++++++++++++++++ Il faut transformer les liens hypertextes qui redirigent vers une page dont il existe une version française (c'est notamment très souvent le cas pour les @@ -278,7 +347,7 @@ doit devenir ```Jeu de la vie `_``. Balises -~~~~~~~ ++++++++ Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``. Vous devez cependant traduire les balises ``:term:...``, qui font référence à @@ -289,50 +358,6 @@ La syntaxe est ``:term:nom_français``. Par exemple, traduisez Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque terme que vous pouvez rencontrer. -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, il 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. Glossaire ~~~~~~~~~ @@ -423,6 +448,36 @@ underscore tiret bas, *underscore* whitespace caractère d'espacement ========================== =============================================== +Ressources de traduction +------------------------ + +- les canaux IRC sur freenode : + + - `#python-docs-fr `_ — communauté python autour de la documentation française, + - `#python-fr `_ — communauté python francophone, + - `#python-doc `_ — communauté python autour de la documentation anglophone ; +- les listes de diffusion relatives à la documentation (courriel) : + + - `de l'AFPy `_, + - `de cpython `_ ; +- des glossaires et dictionnaires : + + - le `glossaire de la documentation Python `_, car il est déjà traduit, + - les `glossaires et dictionnaires de traduc.org `_, en particulier le `grand dictionnaire terminologique `_ 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 + `_ donne + beaucoup de conseils pour éviter une traduction trop mot à mot ; +- `Petites leçons de typographie `_, + résumé succint de typographie, utile pour apprendre le bon usage des + majuscules, des espaces, etc. + +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. +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 ». + + Caractères spéciaux et typographie ---------------------------------- @@ -531,8 +586,8 @@ En français, nous mettons une espace insécable devant nos deux-points, comme : Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE` -Le cas des doubles-espaces -~~~~~~~~~~~~~~~~~~~~~~~~~~ +Les doubles-espaces +~~~~~~~~~~~~~~~~~~~ La documentation originale comporte beaucoup de doubles-espaces. Cela se fait en anglais, mais pas en français. De toute manière, @@ -606,38 +661,8 @@ Powrap | `Lien vers le dépôt `__ -Ressources de traduction ------------------------- - -- les canaux IRC sur freenode : - - - `#python-docs-fr `_ — communauté python autour de la documentation française, - - `#python-fr `_ — communauté python francophone, - - `#python-doc `_ — communauté python autour de la documentation anglophone ; -- les listes de diffusion relatives à la documentation (courriel) : - - - `de l'AFPy `_, - - `de cpython `_ ; -- des glossaires et dictionnaires : - - - le `glossaire de la documentation Python `_, car il est déjà traduit, - - les `glossaires et dictionnaires de traduc.org `_, en particulier le `grand dictionnaire terminologique `_ 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 - `_ donne - beaucoup de conseils pour éviter une traduction trop mot à mot ; -- `Petites leçons de typographie `_, - résumé succint de typographie, utile pour apprendre le bon usage des - majuscules, des espaces, etc. - -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. -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 ». - - Simplification des diffs git ----------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Les diffs git sont souvent encombrés de changements inutiles de numéros de ligne, comme : @@ -698,31 +723,6 @@ Fusion des fichiers *pot* de CPython make merge -Trouver les chaînes de caractères *fuzzy* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make fuzzy - - -*build* local -~~~~~~~~~~~~~ - -.. code-block:: bash - - make - - -Serveur de documentation en local -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make serve - - - Synchronisation de la traduction avec Transifex ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/README.rst b/README.rst index 138caae29..25110c152 100644 --- a/README.rst +++ b/README.rst @@ -10,33 +10,10 @@ Traduction française de la documentation Python .. |progression| image:: https://img.shields.io/badge/dynamic/json.svg?label=fr&query=%24.fr&url=http%3A%2F%2Fgce.zhsj.me%2Fpython/newest :width: 45% - -Accord de contribution à la documentation ------------------------------------------ - -NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python -est maintenue grâce à un réseau mondial de bénévoles. En publiant ce projet -sur Transifex, Github, et d'autres endroits publics, et vous invitant -à participer, la PSF vous enjoint à accepter cet accord qui stipule que vous -acceptez de fournir vos améliorations à la documentation de Python ou à la -traduction de la documentation de Python pour le bénéfice de la PSF sous licence -CC0 (disponible à l'adresse -https://creativecommons.org/publicdomain/zero/1.0/legalcode). En retour, vous -pouvez demander à ce que votre contribution à la documentation soit -publiquement reconnue, et si votre traduction est acceptée par la -PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant -une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que -rien dans le présent *accord de contribution* à la documentation n'oblige la PSF -à incorporer votre contribution textuelle, votre participation à la communauté -Python est bienvenue et appréciée. - -En soumettant votre travail à la PSF pour inclusion dans la documentation, -vous signifiez votre acceptation de cet accord. - - Contribuer à la traduction -------------------------- + Comment contribuer ~~~~~~~~~~~~~~~~~~ @@ -60,14 +37,34 @@ N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode `liste de diffusion `_ des traductions de l'AFPy. +Accord de contribution à la documentation +----------------------------------------- + +NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python +est maintenue grâce à un réseau mondial de bénévoles. En publiant ce projet +sur Transifex, Github, et d'autres endroits publics, et vous invitant +à participer, la PSF vous enjoint à accepter cet accord qui stipule que vous +acceptez de fournir vos améliorations à la documentation de Python ou à la +traduction de la documentation de Python pour le bénéfice de la PSF sous licence +CC0 (disponible à l'adresse +https://creativecommons.org/publicdomain/zero/1.0/legalcode). En retour, vous +pouvez demander à ce que votre contribution à la documentation soit +publiquement reconnue, et si votre traduction est acceptée par la +PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant +une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que +rien dans le présent *accord de contribution* à la documentation n'oblige la PSF +à incorporer votre contribution textuelle, votre participation à la communauté +Python est bienvenue et appréciée. + +En soumettant votre travail à la PSF pour inclusion dans la documentation, +vous signifiez votre acceptation de cet accord. + + Historique du projet -------------------- -Ce projet a été lancé `vers 2000 -`_ puis -repris `vers 2012 `_ par -l'`AFPy `_. En 2017 ce projet est devenu la -traduction officielle de la documentation Python en français grâce à -la `PEP 545 `_. `Jules Lasne -`_ à publié fin 2019 une `vidéo de -l'histoire du dépôt `_. +- vers 2000 : `lancement du projet `_ ; +- vers 2012 : `reprise `_ par l'`AFPy `_ ; +- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 `_. + +Une `vidéo `_ de `Jules Lasne `_ montre l'évolution du dépôt. diff --git a/dict b/dict index 7141733ce..673e679a6 100644 --- a/dict +++ b/dict @@ -40,6 +40,7 @@ décodables déduplication délimitants désenregistre +désenregistrer déserialisables déserialisation déserialisations diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index aaaecc48d..2f035cb00 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -6,23 +6,26 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-04 11:44+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-06-01 11:56+0200\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Antoine Wecxsteen\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/library/multiprocessing.shared_memory.rst:2 msgid "" ":mod:`multiprocessing.shared_memory` --- Provides shared memory for direct " "access across processes" msgstr "" +":mod:`multiprocessing.shared_memory` — Mémoire partagée en accès direct " +"depuis plusieurs processus" #: ../Doc/library/multiprocessing.shared_memory.rst:7 msgid "**Source code:** :source:`Lib/multiprocessing/shared_memory.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/multiprocessing/shared_memory.py`" #: ../Doc/library/multiprocessing.shared_memory.rst:18 msgid "" @@ -34,6 +37,14 @@ msgid "" "`SharedMemoryManager`, is also provided in the ``multiprocessing.managers`` " "module." msgstr "" +"Ce module fournit une classe, :class:`SharedMemory`, pour l'allocation et la " +"gestion de mémoire partagée entre un ou plusieurs processus sur une machine " +"à plusieurs cœurs ou à multiprocesseurs (architecture *symmetric " +"multiprocessor* ou SMP). Pour faciliter la gestion du cycle de vie de la " +"mémoire partagée, tout particulièrement entre plusieurs processus, le module " +"``multiprocessing.managers`` fournit aussi la classe :class:" +"`~multiprocessing.managers.SharedMemoryManager`, sous-classe de :class:" +"`BaseManager`." #: ../Doc/library/multiprocessing.shared_memory.rst:26 msgid "" @@ -49,6 +60,17 @@ msgid "" "via disk or socket or other communications requiring the serialization/" "deserialization and copying of data." msgstr "" +"Dans ce module, il faut entendre « mémoire partagée » au sens de « blocs de " +"mémoire partagée à la mode System V » (même si l'implémentation peut " +"différer), et non au sens de « mémoire distribuée » . Ce type de mémoire " +"partagée permet à plusieurs processus d'écrire dans une zone commune (ou " +"« partagée ») de la mémoire vive. Normalement, les processus n'ont accès " +"qu'à leur propre espace mémoire ; la mémoire partagée permet justement le " +"partage de données entre des processus, ce qui leur évite d'avoir à " +"s'envoyer ces données par message. Échanger des données par mémoire partagée " +"peut amener des gains de performance substantiels par rapport aux échanges " +"via le disque dur, des connecteurs ou d'autres canaux qui nécessitent de " +"sérialiser et de désérialiser les données." #: ../Doc/library/multiprocessing.shared_memory.rst:41 msgid "" @@ -58,6 +80,11 @@ msgid "" "different process can attach to that same shared memory block using that " "same name." msgstr "" +"Crée un nouveau bloc de mémoire partagée ou enregistre un bloc déjà " +"existant. Un nom unique doit être donné à chaque bloc de mémoire partagée ; " +"ainsi, un processus peut créer un nouveau bloc de mémoire partagée avec un " +"nom fixé et un autre processus peut enregistrer le même bloc, à partir de " +"son nom." #: ../Doc/library/multiprocessing.shared_memory.rst:47 msgid "" @@ -68,6 +95,12 @@ msgid "" "block is no longer needed by any process, the :meth:`unlink()` method should " "be called to ensure proper cleanup." msgstr "" +"Puisque qu'il permet de partager des données entre processus, un bloc de " +"mémoire partagée peut survivre au processus qui l'a créé. Lorsqu'un " +"processus n'a plus besoin d'un bloc — qui peut toujours être en cours " +"d'utilisation par un autre — il doit appeler la méthode :meth:`close()`. " +"Quand tous les processus ont fini d'utiliser ce bloc, il faut appeler la " +"méthode :meth:`unlink()` pour le libérer." #: ../Doc/library/multiprocessing.shared_memory.rst:54 msgid "" @@ -75,12 +108,17 @@ msgid "" "string. When creating a new shared memory block, if ``None`` (the default) " "is supplied for the name, a novel name will be generated." msgstr "" +"*name* est le nom (une chaîne de caractères) unique de la mémoire partagée à " +"allouer. Lors de la création d'un nouveau bloc mémoire, si ``None`` (valeur " +"par défaut) est passé comme nom, un nouveau nom est généré." #: ../Doc/library/multiprocessing.shared_memory.rst:58 msgid "" "*create* controls whether a new shared memory block is created (``True``) or " "an existing shared memory block is attached (``False``)." msgstr "" +"*create* indique si un nouveau bloc doit être alloué (``True``) ou si on " +"enregistre un bloc déjà existant (``False``)." #: ../Doc/library/multiprocessing.shared_memory.rst:61 msgid "" @@ -90,6 +128,11 @@ msgid "" "memory block may be larger or equal to the size requested. When attaching " "to an existing shared memory block, the ``size`` parameter is ignored." msgstr "" +"*size* définit le nombre d'octets à allouer. Comme certaines plates-formes " +"choisissent d'allouer les blocs mémoire en fonction de la taille de la page " +"mémoire de la plate-forme, la taille réellement allouée peut être supérieure " +"à la taille demandée. Lors de l'enregistrement d'un bloc déjà existant, le " +"paramètre ``size`` est ignoré." #: ../Doc/library/multiprocessing.shared_memory.rst:69 msgid "" @@ -98,6 +141,10 @@ msgid "" "instance is no longer needed. Note that calling ``close()`` does not cause " "the shared memory block itself to be destroyed." msgstr "" +"Empêche les accès ultérieurs à la mémoire partagée depuis cette instance ; " +"toutes les instances doivent appeler ``close()`` pour s'assurer que les " +"ressources sont bien libérées. Notez qu'appeler ``close()`` ne libère pas la " +"mémoire elle-même." #: ../Doc/library/multiprocessing.shared_memory.rst:77 msgid "" @@ -111,24 +158,35 @@ msgid "" "relinquishing its hold on a shared memory block may call ``unlink()`` and :" "meth:`close()` in either order." msgstr "" +"Initie la libération de la mémoire partagée sous-jacente. Pour être sûr que " +"les ressources sont libérées correctement, ``unlink()`` doit être appelée " +"une (et une seule) fois par tous les processus qui ont utilisé le bloc " +"partagé. Après avoir initié la destruction d'un bloc mémoire, le bloc peut " +"ne pas être détruit immédiatement ; ce comportement dépend de la plate-" +"forme. Accéder aux données d'un bloc de mémoire partagée après l'appel à " +"``unlink()`` peut provoquer une erreur mémoire. Notez que le dernier " +"processus à désenregistrer le bloc mémoire de mémoire partagée peut appeler " +"``unlink()`` et :meth:`close()` dans n'importe quel ordre." #: ../Doc/library/multiprocessing.shared_memory.rst:90 msgid "A memoryview of contents of the shared memory block." -msgstr "" +msgstr "Une *memoryview* du contenu du bloc de mémoire partagée." #: ../Doc/library/multiprocessing.shared_memory.rst:94 msgid "Read-only access to the unique name of the shared memory block." -msgstr "" +msgstr "Nom unique du bloc de mémoire partagée (lecture seule)." #: ../Doc/library/multiprocessing.shared_memory.rst:98 msgid "Read-only access to size in bytes of the shared memory block." -msgstr "" +msgstr "Taille en octets du bloc de mémoire partagée (lecture seule)." #: ../Doc/library/multiprocessing.shared_memory.rst:101 msgid "" "The following example demonstrates low-level use of :class:`SharedMemory` " "instances::" msgstr "" +"L'exemple qui suit montre un exemple d'utilisation bas niveau d'instances " +"de :class:`SharedMemory` :" #: ../Doc/library/multiprocessing.shared_memory.rst:127 msgid "" @@ -136,12 +194,17 @@ msgid "" "`SharedMemory` class with `NumPy arrays `_, " "accessing the same ``numpy.ndarray`` from two distinct Python shells:" msgstr "" +"Le code qui suit est un exemple d'utilisation réel de la classe :class:" +"`SharedMemory` avec des `tableaux NumPy `_ qui " +"accèdent au même ``numpy.ndarray`` depuis deux invites Python différentes :" #: ../Doc/library/multiprocessing.shared_memory.rst:181 msgid "" "A subclass of :class:`~multiprocessing.managers.BaseManager` which can be " "used for the management of shared memory blocks across processes." msgstr "" +"Une sous-classe de :class:`~multiprocessing.managers.BaseManager` pour gérer " +"des blocs de mémoire partagée entre processus." #: ../Doc/library/multiprocessing.shared_memory.rst:184 msgid "" @@ -156,6 +219,16 @@ msgid "" "instances through a ``SharedMemoryManager``, we avoid the need to manually " "track and trigger the freeing of shared memory resources." msgstr "" +"Un appel à :meth:`~multiprocessing.managers.BaseManager.start` depuis une " +"instance :class:`SharedMemoryManager` lance un nouveau processus dont le " +"seul but est de gérer le cycle de vie des blocs mémoires qu'il a créés. La " +"méthode :meth:`~multiprocessing.managers.BaseManager.shutdown()` de " +"l'instance déclenche la libération de tous les blocs mémoires gérés par ce " +"processus. Elle appelle :meth:`SharedMemory.unlink()` sur tous les objets :" +"class:`SharedMemory` gérés par ce processus et l'arrête ensuite. Créer des " +"instances de ``SharedMemory`` par l'intermédiaire d'un " +"``SharedMemoryManager`` évite d'avoir à gérer et à libérer manuellement les " +"ressources mémoire partagées." #: ../Doc/library/multiprocessing.shared_memory.rst:196 msgid "" @@ -163,6 +236,9 @@ msgid "" "instances and for creating a list-like object (:class:`ShareableList`) " "backed by shared memory." msgstr "" +"Cette classe fournit des méthodes pour créer et renvoyer des instances de :" +"class:`SharedMemory` et pour créer des objets compatibles liste (:class:" +"`ShareableList`) basés sur la mémoire partagée." #: ../Doc/library/multiprocessing.shared_memory.rst:200 msgid "" @@ -171,24 +247,34 @@ msgid "" "may be used to connect to an existing ``SharedMemoryManager`` service from " "other processes." msgstr "" +"Référez-vous à :class:`multiprocessing.managers.BaseManager` pour la " +"description des arguments optionnels hérités *address* et *authkey*, et " +"comment ceux-ci doivent être utilisés pour enregistrer un service de " +"``SharedMemoryManager`` depuis un autre processus." #: ../Doc/library/multiprocessing.shared_memory.rst:207 msgid "" "Create and return a new :class:`SharedMemory` object with the specified " "``size`` in bytes." msgstr "" +"Crée et renvoie un nouvel objet :class:`SharedMemory` de taille ``size`` " +"octets." #: ../Doc/library/multiprocessing.shared_memory.rst:212 msgid "" "Create and return a new :class:`ShareableList` object, initialized by the " "values from the input ``sequence``." msgstr "" +"Crée et renvoie un nouvel objet :class:`ShareableList`, initialisé à partir " +"des valeurs de la ``sequence`` en entrée." #: ../Doc/library/multiprocessing.shared_memory.rst:216 msgid "" "The following example demonstrates the basic mechanisms of a :class:" "`SharedMemoryManager`:" msgstr "" +"L'exemple qui suit illustre les mécanismes de base de :class:" +"`SharedMemoryManager` :" #: ../Doc/library/multiprocessing.shared_memory.rst:234 msgid "" @@ -197,6 +283,10 @@ msgid "" "to ensure that all shared memory blocks are released after they are no " "longer needed:" msgstr "" +"L'exemple suivant montre comment utiliser un objet :class:" +"`SharedMemoryManager` avec l'instruction :keyword:`with` pour être sûr que " +"tous les blocs mémoire sont libérés quand ils ne sont plus nécessaires. " +"C'est souvent plus pratique que l'exemple précédent :" #: ../Doc/library/multiprocessing.shared_memory.rst:253 msgid "" @@ -204,6 +294,10 @@ msgid "" "the shared memory blocks created using that manager are all released when " "the :keyword:`with` statement's code block finishes execution." msgstr "" +"Lors de l'utilisation d'un :class:`SharedMemoryManager` dans une " +"instruction :keyword:`with`, les blocs de mémoire partagés créés par ce " +"gestionnaire sont tous libérés quand les instructions à l'intérieur du bloc :" +"keyword:`with` ont été exécutées." #: ../Doc/library/multiprocessing.shared_memory.rst:260 msgid "" @@ -216,6 +310,14 @@ msgid "" "support the dynamic creation of new :class:`ShareableList` instances via " "slicing." msgstr "" +"Construit un objet muable compatible liste dont toutes les valeurs sont " +"stockées dans un bloc de mémoire partagée. Ceci réduit le type les valeurs " +"pouvant être stockées aux types natifs ``int``, ``float``, ``bool``, ``str`` " +"(de moins de 10 Mo chacune), ``bytes`` (de moins de 10 Mo chacun) et " +"``None``. Une autre différence majeure avec une ``list`` native réside dans " +"le fait qu'il est impossible de changer la taille (c-à-d. pas d'ajout en fin " +"de liste, ni d'insertion etc.) et qu'il n'est pas possible de créer de " +"nouvelles instances de :class:`ShareableList` par tranchage." #: ../Doc/library/multiprocessing.shared_memory.rst:269 msgid "" @@ -223,6 +325,9 @@ msgid "" "to ``None`` to instead attach to an already existing ``ShareableList`` by " "its unique shared memory name." msgstr "" +"*sequence* sert à créer une nouvelle ``ShareableList`` avec des valeurs. " +"Mettez-le à ``None`` pour enregistrer une ``ShareableList`` déjà existante, " +"en renseignant son nom unique." #: ../Doc/library/multiprocessing.shared_memory.rst:273 msgid "" @@ -231,32 +336,43 @@ msgid "" "``ShareableList``, specify its shared memory block's unique name while " "leaving ``sequence`` set to ``None``." msgstr "" +"*name* est le nom unique de la mémoire partagée demandée, telle que décrit " +"dans la définition de :class:`SharedMemory`. Pour enregistrer une " +"``ShareableList`` déjà existante, renseignez le nom unique du bloc de " +"mémoire partagée et laissez ``sequence`` à ``None``." #: ../Doc/library/multiprocessing.shared_memory.rst:280 msgid "Returns the number of occurrences of ``value``." -msgstr "" +msgstr "Renvoie le nombre d’occurrences de ``value``." #: ../Doc/library/multiprocessing.shared_memory.rst:284 msgid "" "Returns first index position of ``value``. Raises :exc:`ValueError` if " "``value`` is not present." msgstr "" +"Renvoie l'indice de la première occurrence de ``value``. Lève une :exc:" +"`ValueError` si ``value`` n'est pas présent." #: ../Doc/library/multiprocessing.shared_memory.rst:289 msgid "" "Read-only attribute containing the :mod:`struct` packing format used by all " "currently stored values." msgstr "" +"Attribut en lecture seule contenant le format d’agrégation :mod:`struct` " +"utilisé par les valeurs déjà stockées." #: ../Doc/library/multiprocessing.shared_memory.rst:294 msgid "The :class:`SharedMemory` instance where the values are stored." msgstr "" +"L'instance de :class:`SharedMemory` dans laquelle les valeurs sont stockées." #: ../Doc/library/multiprocessing.shared_memory.rst:297 msgid "" "The following example demonstrates basic use of a :class:`ShareableList` " "instance:" msgstr "" +"L'exemple qui suit illustre un cas d'usage de base d'une instance de :class:" +"`ShareableList` :" #: ../Doc/library/multiprocessing.shared_memory.rst:330 msgid "" @@ -264,3 +380,6 @@ msgid "" "same :class:`ShareableList` by supplying the name of the shared memory block " "behind it:" msgstr "" +"L'exemple ci-dessous montre comment un, deux, ou un grand nombre de " +"processus peuvent accéder à une :class:`ShareableList` commune à partir du " +"nom du bloc mémoire partagé sous-jacent :"