Skip to content

Commit b21e562

Browse files
committed
howto/socket.po: 3ème partie et fin (+ corrections)
1 parent c6361fa commit b21e562

2 files changed

Lines changed: 128 additions & 39 deletions

File tree

‎Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ JOBS := auto
4343
.PHONY: all
4444
all: setup
4545
mkdir -p $(WORKTREE)/locales/$(LANGUAGE)/LC_MESSAGES/
46-
cp --parents *.po */*.po $(WORKTREE)/locales/$(LANGUAGE)/LC_MESSAGES/
46+
gcp --parents *.po */*.po $(WORKTREE)/locales/$(LANGUAGE)/LC_MESSAGES/
4747
$(MAKE) -C $(WORKTREE)/Doc/ VENVDIR=$(WORKTREE)/Doc/venv/ PYTHON=$(PYTHON) \
4848
SPHINXOPTS='-qW -j$(JOBS) \
4949
-D locale_dirs=../locales \

‎howto/sockets.po‎

Lines changed: 127 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ msgstr ""
66
"Project-Id-Version: Python 3\n"
77
"Report-Msgid-Bugs-To: \n"
88
"POT-Creation-Date: 2018-06-10 11:27+0200\n"
9-
"PO-Revision-Date: 2020-05-04 22:08+0200\n"
9+
"PO-Revision-Date: 2020-05-08 15:38+0200\n"
1010
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
1111
"Language: fr\n"
1212
"MIME-Version: 1.0\n"
@@ -144,9 +144,9 @@ msgid ""
144144
msgstr ""
145145
"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être "
146146
"utilisé pour envoyer une requête demandant le texte de la page. Le même "
147-
"connecteur lira la réponse, puis sera détruit. C'est exact, détruit. Les "
148-
"connecteurs clients ne sont normalement utilisés que pour un seul échange "
149-
"(ou un petit ensemble d'échanges séquentiels)."
147+
"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au "
148+
"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul "
149+
"échange (ou un petit ensemble d'échanges séquentiels)."
150150

151151
#: ../Doc/howto/sockets.rst:70
152152
msgid ""
@@ -201,7 +201,7 @@ msgid ""
201201
"mainloop of the web server::"
202202
msgstr ""
203203
"Maintenant que nous avons un connecteur « serveur », en écoute sur le port "
204-
"80, nous pouvons entrer dans la boucle principale du serveur web: :"
204+
"80, nous pouvons entrer dans la boucle principale du serveur web ::"
205205

206206
#: ../Doc/howto/sockets.rst:106
207207
msgid ""
@@ -219,7 +219,7 @@ msgid ""
219219
"allocated port which will be recycled when the conversation ends."
220220
msgstr ""
221221
"Il y a en fait trois façons générales de faire fonctionner cette boucle : "
222-
"envoyer un fil d'exécution pour gérer les ``clientsocket``\\s, créer un "
222+
"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un "
223223
"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette "
224224
"application pour utiliser des connecteurs non bloquants, et multiplexer "
225225
"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif "
@@ -316,7 +316,7 @@ msgid ""
316316
"again until your message has been completely dealt with."
317317
msgstr ""
318318
"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et "
319-
"``recv`` fonctionnent sur les mémoires tampons du réseau. ils ne traitent "
319+
"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent "
320320
"pas nécessairement tous les octets que vous leur passez (ou que vous "
321321
"attendez d'eux), car leur principal objectif est de gérer les tampons "
322322
"réseau. En général, leur exécution se termine lorsque les tampons réseau "
@@ -363,7 +363,7 @@ msgstr ""
363363
"Mais si vous prévoyez de réutiliser votre connecteur pour d'autres "
364364
"transferts, vous devez réaliser qu'\\ *il n'y a pas* d':abbr:`EOT (End of "
365365
"Transfer)` *sur un connecteur*. Je répète : si un appel à ``send`` ou "
366-
"``recv`` se termine après avoir manipulé 0 octets, la connexion a été "
366+
"``recv`` se termine après avoir traité 0 octets, la connexion a été "
367367
"interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre "
368368
"sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y "
369369
"a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un "
@@ -442,13 +442,27 @@ msgid ""
442442
"not always manage to get rid of everything in one pass. And despite having "
443443
"read this, you will eventually get bit by it!"
444444
msgstr ""
445+
"Préfixer le message avec sa longueur (disons, comme 5 caractères numériques) "
446+
"devient plus complexe, parce que (croyez-le ou non), vous pouvez ne pas "
447+
"recevoir les 5 caractères en un seul ``recv``. Pour une utilisation "
448+
"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge "
449+
"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez "
450+
"deux boucles ``recv`` — la première pour déterminer la longueur, la seconde "
451+
"pour obtenir la partie « données » du message. Sordide. C’est aussi à ce "
452+
"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas "
453+
"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet "
454+
"avertissement, vous finirez par vous faire avoir par cette subtilité !"
445455

446456
#: ../Doc/howto/sockets.rst:246
447457
msgid ""
448458
"In the interests of space, building your character, (and preserving my "
449459
"competitive position), these enhancements are left as an exercise for the "
450460
"reader. Lets move on to cleaning up."
451461
msgstr ""
462+
"Dans l’intérêt de l’univers, pour forger votre caractère (et afin de garder "
463+
"l’avantage concurrentiel que j’ai sur vous), ces améliorations ne seront pas "
464+
"abordées et sont laissées comme un exercice que vous pouvez faire. Passons "
465+
"maintenant au nettoyage."
452466

453467
#: ../Doc/howto/sockets.rst:252
454468
msgid "Binary Data"
@@ -466,6 +480,18 @@ msgid ""
466480
"order is host order, these do nothing, but where the machine is byte-"
467481
"reversed, these swap the bytes around appropriately."
468482
msgstr ""
483+
"Il est parfaitement possible d’envoyer des données binaires sur un "
484+
"connecteur. Le gros problème est que toutes les machines n’utilisent pas les "
485+
"mêmes formats pour les données binaires. Par exemple, une puce Motorola "
486+
"représentera un entier de 16 bits avec la valeur 1 comme les deux octets "
487+
"hexadécimaux 00 01. Intel et DEC, cependant, utilisent l’ordre d’octets "
488+
"inverse — ce même 1 est 01 00. Les bibliothèques de connecteurs ont des "
489+
"appels pour convertir des entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, "
490+
"htons`` où ``n`` signifie *réseau* et ``h`` signifie *hôte*, ``s`` signifie "
491+
"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du "
492+
"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine "
493+
"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière "
494+
"appropriée."
469495

470496
#: ../Doc/howto/sockets.rst:264
471497
msgid ""
@@ -475,6 +501,12 @@ msgid ""
475501
"The string \"0\" would be two bytes, while binary is four. Of course, this "
476502
"doesn't fit well with fixed-length messages. Decisions, decisions."
477503
msgstr ""
504+
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des "
505+
"données binaires est souvent plus compacte que la représentation binaire. "
506+
"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur "
507+
"0, ou peut-être 1. La « 0 » serait de deux octets, alors que le binaire est "
508+
"de quatre. Bien sûr, cela ne fonctionne pas très bien avec les messages de "
509+
"longueur fixe. Ah, les décisions, les décisions..."
478510

479511
#: ../Doc/howto/sockets.rst:272
480512
msgid "Disconnecting"
@@ -491,6 +523,15 @@ msgid ""
491523
"same as ``shutdown(); close()``. So in most situations, an explicit "
492524
"``shutdown`` is not needed."
493525
msgstr ""
526+
"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur "
527+
"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un "
528+
"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui "
529+
"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand "
530+
"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des "
531+
"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que "
532+
"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement "
533+
"un ``close`` est le même que ``shutdown() ; close()``. Ainsi, dans la "
534+
"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire."
494535

495536
#: ../Doc/howto/sockets.rst:282
496537
msgid ""
@@ -501,6 +542,13 @@ msgid ""
501542
"complete request. The server sends a reply. If the ``send`` completes "
502543
"successfully then, indeed, the client was still receiving."
503544
msgstr ""
545+
"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange "
546+
"de type HTTP. Le client envoie une requête et effectue ensuite un "
547+
"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, "
548+
"mais peut encore recevoir » Le serveur peut détecter *EOF* par une réception "
549+
"de 0 octet. Il peut supposer qu’il a la requête complète. Le serveur envoie "
550+
"une réponse. Si l’\\ ``send`` se termine avec succès, alors, en effet, le "
551+
"client était encore en train de recevoir."
504552

505553
#: ../Doc/howto/sockets.rst:289
506554
msgid ""
@@ -511,10 +559,17 @@ msgid ""
511559
"indefinitely, thinking you're just being slow. *Please* ``close`` your "
512560
"sockets when you're done."
513561
msgstr ""
562+
"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un "
563+
"connecteur est collecté par le ramasse-miette, il effectue automatiquement "
564+
"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très "
565+
"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît "
566+
"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester "
567+
"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos "
568+
"connecteurs quand vous avez terminé *s’il vous plait*."
514569

515570
#: ../Doc/howto/sockets.rst:297
516571
msgid "When Sockets Die"
517-
msgstr ""
572+
msgstr "Quand les connecteurs meurent"
518573

519574
#: ../Doc/howto/sockets.rst:299
520575
msgid ""
@@ -530,10 +585,23 @@ msgid ""
530585
"automatic recycling of resources. In other words, if you do manage to kill "
531586
"the thread, your whole process is likely to be screwed up."
532587
msgstr ""
588+
"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui "
589+
"se passe lors que l'autre côté s'écroule violemment (sans faire de fermeture "
590+
"via ``close``). Votre connecteur risque d’attendre infiniment. TCP est un "
591+
"protocole fiable, et il attendra très, très longtemps avant d'abandonner une "
592+
"connexion. Si vous utilisez des fils d’exécution, le fil entier est "
593+
"pratiquement mort. Il n'y a pas grand-chose que vous puissiez faire à ce "
594+
"sujet. Du moment que vous ne faites pas quelque chose de stupide, comme "
595+
"tenir un verrou verrouillé pendant une lecture bloquante, le fil ne consomme "
596+
"pas vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les "
597+
"fils sont plus efficients que les processus, c'est en partie parce qu'ils "
598+
"évitent les frais généraux liés au recyclage automatique des ressources. En "
599+
"d'autres termes, si vous parvenez à tuer le fil, tout votre processus risque "
600+
"d'être foutu."
533601

534602
#: ../Doc/howto/sockets.rst:313
535603
msgid "Non-blocking Sockets"
536-
msgstr ""
604+
msgstr "Connecteurs non bloquants"
537605

538606
#: ../Doc/howto/sockets.rst:315
539607
msgid ""
@@ -543,9 +611,9 @@ msgid ""
543611
"will be almost inside-out."
544612
msgstr ""
545613
"Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez "
546-
"savoir sur la mécanique de l'utilisation des connecteurs. Vous utiliserez "
547-
"toujours les mêmes appels, de la même façon. C'est juste que, si vous le "
548-
"faites bien, votre application sera presque dans la poche."
614+
"savoir sur la mécanique de l’utilisation des connecteurs. Vous utiliserez "
615+
"toujours les mêmes appels, de la même façon. Il n’y que ça. Si vous le "
616+
"faites bien, c’est presque dans la poche."
549617

550618
#: ../Doc/howto/sockets.rst:320
551619
msgid ""
@@ -556,12 +624,12 @@ msgid ""
556624
"the exact same idea. You do this after creating the socket, but before using "
557625
"it. (Actually, if you're nuts, you can switch back and forth.)"
558626
msgstr ""
559-
"En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-"
560-
"bloquant. En C, c'est plus complexe (pour commencer, vous devez choisir "
561-
"entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à "
627+
"En Python, vous utilisez ``socket.setblocking(0)`` pour rendre non-bloquant. "
628+
"En C, c’est plus complexe (pour commencer, vous devez choisir entre la "
629+
"version BSD ``O_NONBLOCK`` et la version Posix presque impossible à "
562630
"distinguer ``O_NDELAY``, qui est complètement différente de "
563-
"``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après "
564-
"avoir créé le connecteur mais avant de l'utiliser (en fait, si vous êtes "
631+
"``TCP_NODELAY``), mais c’est exactement la même idée. Vous le faites après "
632+
"avoir créé le connecteur mais avant de l’utiliser (en fait, si vous êtes "
565633
"fou, vous pouvez alterner)."
566634

567635
#: ../Doc/howto/sockets.rst:327
@@ -573,10 +641,17 @@ msgid ""
573641
"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions "
574642
"and do it right."
575643
msgstr ""
644+
"La différence mécanique majeure est que `send``, ``recv``, ``connect`` et "
645+
"``accept`` peuvent rendre la main sans avoir rien fait. Vous avez (bien sûr) "
646+
"un certain nombre de choix. Vous pouvez vérifier le code de retour et les "
647+
"codes d'erreur et, en général, devenir fou. Si vous ne me croyez pas, "
648+
"essayez un jour. Votre application va grossir, boguer et vampiriser le "
649+
"processeur. Alors, évitons les solutions vouées à l’échec dès le départ et "
650+
"faisons les choses correctement."
576651

577652
#: ../Doc/howto/sockets.rst:334
578653
msgid "Use ``select``."
579-
msgstr "Utiliser ``select``."
654+
msgstr "Utilisation de ``select``."
580655

581656
#: ../Doc/howto/sockets.rst:336
582657
msgid ""
@@ -586,7 +661,7 @@ msgid ""
586661
msgstr ""
587662
"En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, "
588663
"mais c'est assez proche de la version C ; aussi, si vous comprenez "
589-
"``select`` en Python, vous aurez peu de problèmes avec lui en C ::"
664+
"``select`` en Python, vous aurez peu de problèmes en C ::"
590665

591666
#: ../Doc/howto/sockets.rst:347
592667
msgid ""
@@ -598,13 +673,26 @@ msgid ""
598673
"generally a sensible thing to do - give it a nice long timeout (say a "
599674
"minute) unless you have good reason to do otherwise."
600675
msgstr ""
676+
"Vous passez à ``select`` trois listes : la première contient touts les "
677+
"connecteurs que vous voudriez lire ; la seconde tous les connecteurs sur "
678+
"lesquels vous voudriez écrire, et la dernière (normalement laissée vide) "
679+
"ceux sur lesquels que vous voudriez vérifier s’il y a des erreurs. Prenez "
680+
"note qu'un connecteur peut figurer dans plus d'une liste. L'appel à "
681+
"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. "
682+
"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai "
683+
"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de "
684+
"ne pas le faire."
601685

602686
#: ../Doc/howto/sockets.rst:355
603687
msgid ""
604688
"In return, you will get three lists. They contain the sockets that are "
605689
"actually readable, writable and in error. Each of these lists is a subset "
606690
"(possibly empty) of the corresponding list you passed in."
607691
msgstr ""
692+
"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui "
693+
"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes "
694+
"est un sous-ensemble (éventuellement vide) de la liste correspondante que "
695+
"vous avez transmise."
608696

609697
#: ../Doc/howto/sockets.rst:359
610698
msgid ""
@@ -615,14 +703,14 @@ msgid ""
615703
"nothing. (Actually, any reasonably healthy socket will return as writable - "
616704
"it just means outbound network buffer space is available.)"
617705
msgstr ""
618-
"Si un connecteur se trouve dans la liste des sorties que vous pouvez lire, "
706+
"Si un connecteur se trouve dans la liste renvoyées des connecteurs lisibles, "
619707
"vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur "
620-
"retournera *quelque chose*. Même chose pour la liste des sorties sur "
621-
"lesquelles vous pouvez écrire. Vous pourrez envoyer *quelque chose*. Peut-"
622-
"être pas tout ce que vous voudrez, mais *quelque chose* est mieux que rien. "
623-
"(En fait, n'importe quel connecteur raisonnablement sain retournera en "
624-
"écriture — cela signifie simplement que l'espace tampon réseau sortant est "
625-
"disponible)."
708+
"renverra *quelque chose*. Même chose pour la liste renvoyées des connecteurs "
709+
"inscriptibles. Vous pourrez envoyer *quelque chose*. Peut-être pas tout ce "
710+
"que vous voudrez, mais *quelque chose* est mieux que rien (en fait, "
711+
"n'importe quel connecteur raisonnablement sain sera présent dans la liste "
712+
"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon "
713+
"réseau sortant est disponible)."
626714

627715
#: ../Doc/howto/sockets.rst:366
628716
msgid ""
@@ -632,13 +720,14 @@ msgid ""
632720
"it in the potential_writers list. If it shows up in the writable list, you "
633721
"have a decent chance that it has connected."
634722
msgstr ""
635-
"Si vous avez un connecteur « serveur », mettez-le dans la liste des lecteurs "
636-
"potentiels. Si il apparaît dans la liste des sorties que vous pouvez lire, "
637-
"votre ``accept`` fonctionnera (presque certainement). Si vous avez créé un "
638-
"nouveau connecteur pour ``connect`` à quelqu'un d'autre, mettez-le dans la "
639-
"liste des éditeurs potentiels. Si il apparaît dans la liste des sorties sur "
640-
"lesquelles vous pouvez écrire, vous avez une bonne chance qu'il se soit "
641-
"connecté."
723+
"Si vous avez un connecteur « serveur », mettez-le dans la liste des "
724+
"connecteurs potentiellement lisibles ``potential_readers``. S’il apparaît "
725+
"dans la liste renvoyée des connecteurs que vous pouvez lire, votre "
726+
"``accept`` fonctionnera (presque certainement). Si vous avez créé un nouveau "
727+
"connecteur pour se connecter via ``connect`` à quelqu'un d'autre, mettez-le "
728+
"dans la liste des connecteurs potentiellement inscriptibles. S’il apparaît "
729+
"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous "
730+
"avez une bonne chance qu'il se soit connecté."
642731

643732
#: ../Doc/howto/sockets.rst:372
644733
msgid ""
@@ -649,10 +738,10 @@ msgid ""
649738
"something else."
650739
msgstr ""
651740
"En fait, ``select`` peut être pratique même avec des connecteurs bloquants. "
652-
"C'est une façon de déterminer si vous allez bloquer — le connecteur "
653-
"redevient lisible lorsqu'il y a quelque chose dans les tampons. Cependant, "
654-
"cela n'aide pas encore à déterminer si l'autre extrémité a terminé, ou si "
655-
"elle est simplement occupée par autre chose."
741+
"C'est une façon de déterminer si vous allez bloquer — le connecteur est "
742+
"renvoyé comme lisible lorsqu'il y a quelque chose dans les mémoires tampons. "
743+
"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a "
744+
"terminé, ou si elle est simplement occupée par autre chose."
656745

657746
#: ../Doc/howto/sockets.rst:377
658747
msgid ""

0 commit comments

Comments
 (0)