From 475c32644bfa7c2c3023775f71f3b8a0fb67194e Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> Date: Wed, 30 Sep 2020 16:41:16 +0200 Subject: [PATCH] Reprise de howto/curses (#1406) --- howto/curses.po | 484 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 355 insertions(+), 129 deletions(-) diff --git a/howto/curses.po b/howto/curses.po index 3aed4bdf..4de1d34e 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-08-24 09:01+0200\n" -"PO-Revision-Date: 2019-10-31 17:43+0100\n" +"PO-Revision-Date: 2020-09-04 23:34+0200\n" "Last-Translator: Khaïs COLIN \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -49,7 +49,7 @@ msgstr "" #: howto/curses.rst:18 msgid "What is curses?" -msgstr "Qu'est-ce que *curses* ?" +msgstr "Qu'est-ce que *curses* ?" #: howto/curses.rst:20 msgid "" @@ -61,14 +61,14 @@ msgid "" "areas. Different terminals use widely differing codes, and often have their " "own minor quirks." msgstr "" -"La bibliothèque *curses* fournit une fonction de dessin d'écran et de " -"traitement de clavier indépendante du terminal pour les terminaux textuels ; " -"ces terminaux comprennent les VT100, la console Linux et le terminal simulé " -"fourni par divers programmes. Les terminaux d'affichage prennent en charge " -"divers codes de commande pour effectuer des opérations courantes telles que " -"déplacer le curseur, faire défiler l'écran et effacer des zones. Différents " -"terminaux utilisent des codes très différents, et ont souvent leurs propres " -"bizarreries mineures." +"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " +"gestion du clavier indépendante du terminal pour les terminaux textuels ; " +"ces terminaux comprennent les *VT100*, la console Linux et le terminal " +"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " +"charge divers codes de commande pour effectuer des opérations courantes " +"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " +"Différents terminaux utilisent des codes très différents et ont souvent " +"leurs propres bizarreries mineures." #: howto/curses.rst:28 msgid "" @@ -79,14 +79,15 @@ msgid "" "an X server. Another is tools such as OS installers and kernel " "configurators that may have to run before any graphical support is available." msgstr "" -"Dans un monde d'affichages graphiques, on pourrait se demander \"pourquoi " -"s'embêter\" ? Il est vrai que les terminaux d'affichage à cellules de " -"caractères sont une technologie obsolète, mais il existe des niches dans " -"lesquelles la possibilité de faire des choses de fantaisie avec eux est " -"encore précieuse. Une niche est sur les Unixes de petite taille ou " -"embarqués qui n'utilisent pas de serveur X. Il y a aussi les outils tels " -"que les installateurs d'OS et les configurateurs de noyau qui doivent être " -"exécutés avant qu'un support graphique ne soit disponible." +"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " +"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " +"caractère sont une technologie obsolète, mais il existe des niches pour " +"lesquelles la possibilité de faire des choses fantaisistes est encore " +"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " +"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " +"les outils tels que les installateurs d'OS et les outils de configuration du " +"noyau qui doivent être exécutés avant qu'un support graphique ne soit " +"disponible." #: howto/curses.rst:36 msgid "" @@ -100,17 +101,16 @@ msgid "" "features, consider a user interface library such as `Urwid `_." msgstr "" -"La bibliothèque *curses* fournit des fonctionnalités assez basiques, " -"fournissant au programmeur une abstraction d'un affichage contenant " -"plusieurs fenêtres de texte qui ne se chevauchent pas. Le contenu d'une " -"fenêtre peut être modifié de différentes manières --- en ajoutant du texte, " -"en l'effaçant, en changeant son apparence --- et la bibliothèque de " -"malédictions trouvera quels codes de contrôle doivent être envoyés au " -"terminal pour produire le bon résultat. *curses* ne fournit pas beaucoup de " -"concepts d'interface utilisateur tels que boutons, cases à cocher ou " -"dialogues ; si vous avez besoin de telles fonctionnalités, pensez à une " -"bibliothèque d'interface utilisateur comme `Urwid `_." +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." #: howto/curses.rst:46 msgid "" @@ -124,16 +124,16 @@ msgid "" "older versions of curses carried by some proprietary Unixes may not support " "everything, though." msgstr "" -"La librairie *curses* a été écrite à l'origine pour BSD Unix ; les dernières " -"versions System V d'Unix d'AT&T ont ajouté de nombreuses améliorations et de " -"nouvelles fonctions. BSD *curses* n'est plus maintenu, ayant été remplacé " -"par *ncurses*, qui est une implémentation open-source de l'interface AT&T. " -"Si vous utilisez un Unix open-source comme Linux ou FreeBSD, votre système " -"utilise presque certainement *ncurses*. Comme la plupart des versions " -"commerciales actuelles d'Unix sont basées sur le code System V, toutes les " -"fonctions décrites ici seront probablement disponibles. Les anciennes " -"versions de *curses* portées par certains Unixes propriétaires pourraient ne " -"pas tout supporter." +"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " +"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " +"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " +"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " +"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " +"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " +"plupart des versions commerciales actuelles d'Unix sont basées sur le code " +"*System V*, toutes les fonctions décrites ici seront probablement " +"disponibles. Les anciennes versions de *curses* portées par certains Unix " +"propriétaires pourraient ne pas gérer toutes les fonctions." #: howto/curses.rst:56 msgid "" @@ -144,11 +144,11 @@ msgid "" "API as curses but provides cursor-addressable text output and full support " "for mouse and keyboard input." msgstr "" -"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " +"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " "version portée appelée `UniCurses `_ est " -"disponible. Vous pouvez également essayer le module de console `_ écrit par Fredrik Lundh, qui n'utilise " -"pas la même API que *curses*, mais fournit une sortie texte adressable par " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " "curseur et une prise en charge complète de la souris et du clavier." #: howto/curses.rst:66 @@ -165,13 +165,13 @@ msgid "" "`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " "this covered in more detail later." msgstr "" -"Le module Python est une encapsulation assez simple sur les fonctions C " -"fournies par *curses*; si vous êtes déjà familier avec la programmation " -"*curses* en C, il est très facile de transférer cette connaissance à " -"Python. La plus grande différence est que l'interface Python simplifie les " -"choses en fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:" -"func:`mvaddstr`, et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses." -"window.addstr`. Vous verrez cela plus en détail ci-après." +"Le module Python est une surcouche assez simple enrobant les fonctions C " +"fournies par *curses* ; si vous êtes déjà familier avec la programmation " +"*curses* en C, il est très facile de transférer cette connaissance à Python. " +"La plus grande différence est que l'interface Python simplifie les choses en " +"fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:func:" +"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window." +"addstr`. Nous voyons cela plus en détail ci-après." #: howto/curses.rst:76 msgid "" @@ -180,15 +180,15 @@ msgid "" "that, see the Python library guide's section on ncurses, and the C manual " "pages for ncurses. It will, however, give you the basic ideas." msgstr "" -"Ce HOWTO est une introduction à l'écriture de programmes en mode texte avec " -"*curses* et Python. Il n'essaie pas d'être un guide complet de l'API " -"*curses*; pour cela, consultez la section du guide de la bibliothèque Python " -"sur *ncurses*, et les pages du manuel C pour *ncurses*. Il vous donnera " +"Ce guide pratique est une introduction à l'écriture de programmes en mode " +"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " +"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " +"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " "cependant les idées de base." #: howto/curses.rst:83 msgid "Starting and ending a curses application" -msgstr "Lancer et fermer une application *curses*" +msgstr "Lancement et arrêt une application *curses*" #: howto/curses.rst:85 msgid "" @@ -199,13 +199,12 @@ msgid "" "object representing the entire screen; this is usually called ``stdscr`` " "after the name of the corresponding C variable. ::" msgstr "" -"Avant de faire quoi que ce soit, *curses* doit être initialisé. Cela se " -"fait en appelant la fonction :func:`~curses.initscr`, qui déterminera le " -"type de terminal, enverra tous les codes de configuration requis au " -"terminal, et créera diverses structures de données internes. En cas de " -"succès, :func:`initscr` retourne un objet fenêtre représentant l'écran " -"entier ; ceci est généralement appelé ``stdscr`` d'après le nom de la " -"variable C correspondante. : :" +"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " +"cela la fonction :func:`~curses.initscr`, elle détermine le type de " +"terminal, envoie tous les codes de configuration requis au terminal et crée " +"diverses structures de données internes. En cas de succès, :func:`initscr` " +"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " +"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" #: howto/curses.rst:96 msgid "" @@ -215,7 +214,7 @@ msgid "" msgstr "" "Habituellement, les applications *curses* désactivent l'écho automatique des " "touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " -"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" +"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" "`~curses.noecho`. ::" #: howto/curses.rst:103 @@ -224,10 +223,10 @@ msgid "" "requiring the Enter key to be pressed; this is called cbreak mode, as " "opposed to the usual buffered input mode. ::" msgstr "" -"Les applications devront également réagir instantanément aux touches, sans " -"qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce qu'on " -"appelle le mode *cbreak*, par opposition au mode d'entrée tamponné " -"habituel. ::" +"Également, les applications réagissent généralement instantanément aux " +"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " +"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " +"avec un tampon. ::" #: howto/curses.rst:109 msgid "" @@ -239,21 +238,20 @@ msgid "" "keypad mode. ::" msgstr "" "Les terminaux renvoient généralement les touches spéciales, telles que les " -"touches de curseur ou les touches de navigation telles que Page précédente " -"et Accueil, comme une séquence d'échappement à plusieurs octets. Bien que " -"vous puissiez écrire votre application pour vous attendre à de telles " -"séquences et les traiter en conséquence, les malédictions peuvent le faire " -"pour vous, retournant une valeur spéciale telle que :const:`curses." -"KEY_LEFT`. Pour que *curses* fassent le travail, vous devez activer le mode " -"clavier. ::" +"touches de curseur ou les touches de navigation (Page précédente et Accueil " +"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " +"que vous puissiez écrire votre application pour vous attendre à de telles " +"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " +"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " +"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" #: howto/curses.rst:118 msgid "" "Terminating a curses application is much easier than starting one. You'll " "need to call::" msgstr "" -"Fermer une application *curses* est beaucoup plus facile que d'en démarrer " -"une. Vous devrez appeler : ::" +"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " +"une. Appelez ::" #: howto/curses.rst:125 msgid "" @@ -261,9 +259,9 @@ msgid "" "`~curses.endwin` function to restore the terminal to its original operating " "mode. ::" msgstr "" -"pour inverser les réglages du terminal qui sont favorables à *curses*. " -"Ensuite, appelez la fonction :func:`~curses.enddwin` pour restaurer le " -"terminal dans son mode de fonctionnement original. ::" +"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " +"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " +"son mode de fonctionnement original. ::" #: howto/curses.rst:131 msgid "" @@ -273,12 +271,13 @@ msgid "" "raises an uncaught exception. Keys are no longer echoed to the screen when " "you type them, for example, which makes using the shell difficult." msgstr "" -"Un problème courant lors du débogage d'une application *curses* est de " -"perturber votre terminal lorsque l'application meurt sans restaurer le " -"terminal à son état précédent. Avec Python, cela arrive souvent lorsque " -"votre code est bogué et soulève une exception non interceptée. Les touches " -"ne sont plus répétées à l'écran lorsque vous les tapez, par exemple, ce qui " -"rend l'utilisation du shell difficile." +"Un problème courant lors du débogage d'une application *curses* est de se " +"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " +"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " +"souvent lorsque votre code est bogué et lève une exception non interceptée. " +"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " +"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " +"difficile." #: howto/curses.rst:137 msgid "" @@ -286,8 +285,7 @@ msgid "" "by importing the :func:`curses.wrapper` function and using it like this::" msgstr "" "En Python, vous pouvez éviter ces complications et faciliter le débogage en " -"important la fonction :func:`curses.wrapper` et en l'utilisant comme " -"suit : ::" +"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" #: howto/curses.rst:156 msgid "" @@ -303,17 +301,17 @@ msgid "" msgstr "" "La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " "initialisations décrites ci-dessus, initialisant également les couleurs si " -"le support de couleur est présent. :func:`wrapper` lance votre appelable " -"fourni. Une fois que l'appelable renvoie, :func:`wrapper` restaure l'état " -"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" +"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " +"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " +"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" "`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du " -"terminal, puis relance l'exception. Par conséquent, votre terminal ne sera " -"pas laissé dans un drôle d'état sur l'exception et vous pourrez lire le " -"message de l'exception et la trace de la pile d'appel." +"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste " +"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le " +"message de l'exception et la trace de la pile d'appels." #: howto/curses.rst:168 msgid "Windows and Pads" -msgstr "Fenêtres et *Pads*" +msgstr "Fenêtres et tampons (*pads* en anglais)" #: howto/curses.rst:170 msgid "" @@ -321,8 +319,8 @@ msgid "" "rectangular area of the screen, and supports methods to display text, erase " "it, allow the user to input strings, and so forth." msgstr "" -"Les fenêtres sont l'abstraction de base de *curses*. Un objet de fenêtre " -"représente une zone rectangulaire de l'écran et supporte des méthodes pour " +"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " +"représente une zone rectangulaire de l'écran qui gère des méthodes pour " "afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " "chaînes, etc." @@ -336,11 +334,11 @@ msgid "" "window object. ::" msgstr "" "L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " -"objet de fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " +"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " "n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " "en fenêtres plus petites, afin de les redessiner ou de les effacer " "séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " -"d'une taille donnée, retournant le nouvel objet fenêtre. : ::" +"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" #: howto/curses.rst:185 msgid "" @@ -352,12 +350,12 @@ msgid "" "curses since it was first written, and it's too late to change things now." msgstr "" "Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " -"Les coordonnées sont toujours passées dans l'ordre *y,x*, et le coin " -"supérieur gauche d'une fenêtre est la coordonnée (0,0). Ceci rompt la " -"convention normale de traitement des coordonnées où la coordonnée *x* vient " -"en premier. C'est une différence malheureuse par rapport à la plupart des " -"autres applications informatiques, mais elle fait partie de *curses* depuis " -"qu'il a été écrit, et il est trop tard pour changer les choses maintenant." +"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " +"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " +"convention normale des coordonnées où la coordonnée *x* vient en premier. " +"C'est une différence malheureuse par rapport à la plupart des autres " +"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " +"été écrit et il est trop tard pour changer les choses maintenant." #: howto/curses.rst:193 msgid "" @@ -368,8 +366,8 @@ msgid "" msgstr "" "Votre application peut déterminer la taille de l'écran en utilisant les " "variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " -"tailles *y* et *x*. Les coordonnées légales s'étendront alors de ``(0,0)`` " -"à ``(*curses*.LINES - 1, *curses*.COLS - 1)``." +"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " +"``(curses.LINES - 1, curses.COLS - 1)``." #: howto/curses.rst:198 msgid "" @@ -377,6 +375,9 @@ msgid "" "immediately show up on the display. Instead you must call the :meth:" "`~curses.window.refresh` method of window objects to update the screen." msgstr "" +"Quand vous appelez une méthode pour afficher ou effacer du texte, " +"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :" +"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran." #: howto/curses.rst:203 msgid "" @@ -388,6 +389,14 @@ msgid "" "and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" +"C'est parce que *curses* a été écrit du temps des terminaux avec une " +"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " +"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " +"modifications à apporter à l'écran pour les afficher de la manière la plus " +"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " +"si votre programme affiche du texte dans une fenêtre puis efface cette " +"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " +"visible." #: howto/curses.rst:212 msgid "" @@ -398,6 +407,14 @@ msgid "" "redrawn before pausing to wait for user input, by first calling ``stdscr." "refresh()`` or the :meth:`refresh` method of some other relevant window." msgstr "" +"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " +"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " +"plupart des programmes effectuent une rafale de traitements puis attendent " +"qu'une touche soit pressée ou toute autre action de la part de " +"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " +"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " +"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " +"fenêtre adéquate." #: howto/curses.rst:220 msgid "" @@ -407,6 +424,12 @@ msgid "" "giving the coordinates of the on-screen area where a subsection of the pad " "will be displayed. ::" msgstr "" +"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " +"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " +"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " +"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " +"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " +"sera affichée." #: howto/curses.rst:241 msgid "" @@ -416,6 +439,11 @@ msgid "" "Beyond that difference, pads are exactly like ordinary windows and support " "the same methods." msgstr "" +"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " +"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " +"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " +"tampon. À part cette différence, les tampons sont exactement comme les " +"fenêtres ordinaires et gèrent les mêmes méthodes." #: howto/curses.rst:247 msgid "" @@ -423,28 +451,39 @@ msgid "" "way to update the screen and prevent annoying screen flicker as each part of " "the screen gets updated. :meth:`refresh` actually does two things:" msgstr "" +"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " +"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " +"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" #: howto/curses.rst:252 msgid "" "Calls the :meth:`~curses.window.noutrefresh` method of each window to update " "an underlying data structure representing the desired state of the screen." msgstr "" +"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " +"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " +"l'affichage voulu ;" #: howto/curses.rst:255 msgid "" "Calls the function :func:`~curses.doupdate` function to change the physical " "screen to match the desired state recorded in the data structure." msgstr "" +"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " +"physique afin de correspondre à l'état défini par les données sous-jacentes." #: howto/curses.rst:258 msgid "" "Instead you can call :meth:`noutrefresh` on a number of windows to update " "the data structure, and then call :func:`doupdate` to update the screen." msgstr "" +"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " +"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " +"l'écran." #: howto/curses.rst:264 msgid "Displaying Text" -msgstr "" +msgstr "Affichage de texte" #: howto/curses.rst:266 msgid "" @@ -456,6 +495,14 @@ msgid "" "allows specifying a window to use instead of using ``stdscr`` by default. :c:" "func:`mvwaddstr` allows specifying both a window and a coordinate." msgstr "" +"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " +"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:" +"func:`addstr` affiche une chaîne à la position actuelle du curseur de la " +"fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace d'abord " +"jusqu'aux coordonnées (y,x) avant d'afficher la chaîne. :c:func:`waddstr` " +"est comme :c:func:`addstr`, mais permet de spécifier la fenêtre au lieu " +"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à " +"la fois les coordonnées et la fenêtre." #: howto/curses.rst:275 msgid "" @@ -464,10 +511,14 @@ msgid "" "addstr` accept multiple argument forms. Usually there are four different " "forms." msgstr "" +"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " +"objet fenêtre comme les autres et les méthodes telles que :meth:`~curses." +"window.addstr` acceptent leurs arguments sous de multiples formes, " +"habituellement quatre." #: howto/curses.rst:281 msgid "Form" -msgstr "" +msgstr "Forme" #: howto/curses.rst:281 howto/curses.rst:350 msgid "Description" @@ -475,39 +526,45 @@ msgstr "Description" #: howto/curses.rst:283 msgid "*str* or *ch*" -msgstr "" +msgstr "*str* ou *ch*" #: howto/curses.rst:283 msgid "Display the string *str* or character *ch* at the current position" -msgstr "" +msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" #: howto/curses.rst:286 msgid "*str* or *ch*, *attr*" -msgstr "" +msgstr "*str* ou *ch*, *attr*" #: howto/curses.rst:286 msgid "" "Display the string *str* or character *ch*, using attribute *attr* at the " "current position" msgstr "" +"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " +"à la position actuelle" #: howto/curses.rst:290 msgid "*y*, *x*, *str* or *ch*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*" #: howto/curses.rst:290 msgid "Move to position *y,x* within the window, and display *str* or *ch*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch*" #: howto/curses.rst:293 msgid "*y*, *x*, *str* or *ch*, *attr*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*, *attr*" #: howto/curses.rst:293 msgid "" "Move to position *y,x* within the window, and display *str* or *ch*, using " "attribute *attr*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch* en utilisant l'attribut *attr*" #: howto/curses.rst:297 msgid "" @@ -515,6 +572,9 @@ msgid "" "underline, reverse code, or in color. They'll be explained in more detail " "in the next subsection." msgstr "" +"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " +"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " +"suivante." #: howto/curses.rst:302 msgid "" @@ -524,12 +584,21 @@ msgid "" "window's :attr:`encoding` attribute; this defaults to the default system " "encoding as returned by :func:`locale.getpreferredencoding`." msgstr "" +"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " +"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " +"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " +"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " +"l'encodage du système tel que renvoyé par :func:`locale." +"getpreferredencoding`." #: howto/curses.rst:309 msgid "" "The :meth:`~curses.window.addch` methods take a character, which can be " "either a string of length 1, a bytestring of length 1, or an integer." msgstr "" +"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " +"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " +"d'un entier." #: howto/curses.rst:312 msgid "" @@ -538,6 +607,11 @@ msgid "" "symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " "for drawing borders). You can also use the appropriate Unicode character." msgstr "" +"Des constantes sont disponibles pour étendre les caractères ; ces constantes " +"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " +"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " +"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " +"pouvez aussi utiliser les caractères Unicode adéquats." #: howto/curses.rst:318 msgid "" @@ -549,6 +623,14 @@ msgid "" "some location where it won't be distracting; it can be confusing to have the " "cursor blinking at some apparently random location." msgstr "" +"Windows se souvient de l'endroit où le curseur était positionné lors de la " +"dernière opération, de manière à ce que si vous n'utilisez pas les " +"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " +"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " +"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " +"assurer que celui-ci est positionné à un endroit où il ne distrait pas " +"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " +"endroits apparemment aléatoires)." #: howto/curses.rst:326 msgid "" @@ -559,10 +641,17 @@ msgid "" "attempt to suppress the flashing cursor, and you won't need to worry about " "leaving it in odd locations." msgstr "" +"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " +"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " +"compatibilité avec les anciennes versions de *curses*, il existe la fonction " +"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " +"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " +"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " +"trainer à des endroits bizarres." #: howto/curses.rst:335 msgid "Attributes and Color" -msgstr "" +msgstr "Attributs et couleurs" #: howto/curses.rst:337 msgid "" @@ -571,6 +660,11 @@ msgid "" "to highlight certain words. curses supports this by allowing you to specify " "an attribute for each cell on the screen." msgstr "" +"Les caractères peuvent être affichés de différentes façons. Les lignes de " +"statut des applications en mode texte sont généralement affichées en mode " +"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " +"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " +"caractère à l'écran." #: howto/curses.rst:342 msgid "" @@ -581,6 +675,13 @@ msgid "" "being used, so it's safest to stick to the most commonly available " "attributes, listed here." msgstr "" +"Un attribut est un entier dont chaque bit représente un attribut différent. " +"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " +"simultanément mais *curses* ne garantit pas que toutes les combinaisons " +"soient prises en compte ou que le résultat soit visuellement différent. Cela " +"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " +"se cantonner aux attributs les plus communément utilisés, dont la liste est " +"fournie ci-dessous." #: howto/curses.rst:350 msgid "Attribute" @@ -588,57 +689,59 @@ msgstr "Attribut" #: howto/curses.rst:352 msgid ":const:`A_BLINK`" -msgstr "" +msgstr ":const:`A_BLINK`" #: howto/curses.rst:352 msgid "Blinking text" -msgstr "" +msgstr "Texte clignotant" #: howto/curses.rst:354 msgid ":const:`A_BOLD`" -msgstr "" +msgstr ":const:`A_BOLD`" #: howto/curses.rst:354 msgid "Extra bright or bold text" -msgstr "" +msgstr "Texte en surbrillance ou en gras" #: howto/curses.rst:356 msgid ":const:`A_DIM`" -msgstr "" +msgstr ":const:`A_DIM`" #: howto/curses.rst:356 msgid "Half bright text" -msgstr "" +msgstr "Texte en demi-ton" #: howto/curses.rst:358 msgid ":const:`A_REVERSE`" -msgstr "" +msgstr ":const:`A_REVERSE`" #: howto/curses.rst:358 msgid "Reverse-video text" -msgstr "" +msgstr "Texte en mode vidéo inversé" #: howto/curses.rst:360 msgid ":const:`A_STANDOUT`" -msgstr "" +msgstr ":const:`A_STANDOUT`" #: howto/curses.rst:360 msgid "The best highlighting mode available" -msgstr "" +msgstr "Le meilleur mode de mis en valeur pour le texte" #: howto/curses.rst:362 msgid ":const:`A_UNDERLINE`" -msgstr "" +msgstr ":const:`A_UNDERLINE`" #: howto/curses.rst:362 msgid "Underlined text" -msgstr "" +msgstr "Texte souligné" #: howto/curses.rst:365 msgid "" "So, to display a reverse-video status line on the top line of the screen, " "you could code::" msgstr "" +"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " +"vidéo inversé, vous pouvez coder ::" #: howto/curses.rst:372 msgid "" @@ -646,6 +749,9 @@ msgid "" "The most common such terminal is probably the Linux console, followed by " "color xterms." msgstr "" +"La bibliothèque *curses* gère également les couleurs pour les terminaux " +"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " +"suivie par *xterm* en couleurs." #: howto/curses.rst:376 msgid "" @@ -658,6 +764,14 @@ msgid "" "to the British spelling, you'll have to resign yourself to misspelling it " "for the sake of these functions.)" msgstr "" +"Pour utiliser les couleurs, vous devez d'abord appeler la fonction :func:" +"`~curses.start_color` juste après avoir appelé :func:`~curses.initscr` afin " +"d'initialiser (la fonction :func:`curses.wrapper` le fait automatiquement). " +"Ensuite, la fonction :func:`~curses.has_colors` renvoie ``True`` si le " +"terminal utilisé gère les couleurs (note : *curses* utilise l'orthographe " +"américaine *color* et non pas l'orthographe britannique ou canadienne " +"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez " +"vous résigner à mal l'orthographier tant que vous utilisez *curses*)." #: howto/curses.rst:386 msgid "" @@ -668,10 +782,19 @@ msgid "" "as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " "work on all terminals." msgstr "" +"La bibliothèque *curses* maintient un nombre restreint de paires de " +"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " +"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " +"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " +"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " +"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " +"combinaisons risquent de ne pas fonctionner sur tous les terminaux." #: howto/curses.rst:393 msgid "An example, which displays a line of text using color pair 1::" msgstr "" +"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " +"1 ::" #: howto/curses.rst:398 msgid "" @@ -680,6 +803,11 @@ msgid "" "pair *n*, to foreground color f and background color b. Color pair 0 is " "hard-wired to white on black, and cannot be changed." msgstr "" +"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " +"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " +"la définition de la paire de couleurs *n*, en définissant la couleur de " +"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " +"dur à blanc sur noir et ne peut être modifiée." #: howto/curses.rst:403 msgid "" @@ -689,12 +817,20 @@ msgid "" "named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" "const:`curses.COLOR_RED`, and so forth." msgstr "" +"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " +"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " +"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " +"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " +"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " +"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses." +"COLOR_RED` et ainsi de suite." #: howto/curses.rst:409 msgid "" "Let's put all this together. To change color 1 to red text on a white " "background, you would call::" msgstr "" +"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" #: howto/curses.rst:414 msgid "" @@ -702,6 +838,9 @@ msgid "" "pair will change to the new colors. You can also display new text in this " "color with::" msgstr "" +"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " +"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " +"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" #: howto/curses.rst:420 msgid "" @@ -714,10 +853,19 @@ msgid "" "there. If you're lucky enough to have such a talented terminal, consult " "your system's man pages for more information." msgstr "" +"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " +"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " +"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " +"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " +"incapable de la tester et de vous en fournir un exemple. Vous pouvez " +"vérifier si votre terminal la prend en charge en appelant :func:`~curses." +"can_change_color`, qui renvoie ``True`` en cas de succès. Si vous avez la " +"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel " +"de votre système pour obtenir plus d'informations." #: howto/curses.rst:431 msgid "User Input" -msgstr "" +msgstr "Entrées de l'utilisateur" #: howto/curses.rst:433 msgid "" @@ -726,10 +874,14 @@ msgid "" "`Urwid `_ have more extensive collections " "of widgets.)" msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." #: howto/curses.rst:438 msgid "There are two methods for getting input from a window:" -msgstr "" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" #: howto/curses.rst:440 msgid "" @@ -738,6 +890,10 @@ msgid "" "called earlier. You can optionally specify a coordinate to which the cursor " "should be moved before pausing." msgstr "" +":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " +"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " +"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " +"positionner le curseur avant la mise en pause ;" #: howto/curses.rst:445 msgid "" @@ -746,6 +902,11 @@ msgid "" "special keys such as function keys return longer strings containing a key " "name such as ``KEY_UP`` or ``^G``." msgstr "" +":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " +"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " +"alors que les touches spéciales (telles que les touches de fonction) " +"renvoient des chaînes plus longues contenant le nom de la touche (tel que " +"``KEY_UP`` ou ``^G``)." #: howto/curses.rst:450 msgid "" @@ -758,6 +919,15 @@ msgid "" "`getch`; if no input becomes available within a specified delay (measured in " "tenths of a second), curses raises an exception." msgstr "" +"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " +"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " +"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " +"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " +"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " +"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " +"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " +"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " +"seconde), *curses* lève une exception." #: howto/curses.rst:460 msgid "" @@ -768,6 +938,13 @@ msgid "" "`curses.KEY_HOME`, or :const:`curses.KEY_LEFT`. The main loop of your " "program may look something like this::" msgstr "" +"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " +"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " +"touches spéciales telles que Page Précédente, Accueil ou les touches du " +"curseur. Vous pouvez comparer la valeur renvoyée aux constantes :const:" +"`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, etc. " +"La boucle principale de votre programme pourrait ressembler à quelque chose " +"comme ::" #: howto/curses.rst:476 msgid "" @@ -778,6 +955,13 @@ msgid "" "arguments and return the same type. For example, :func:`curses.ascii.ctrl` " "returns the control character corresponding to its argument." msgstr "" +"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " +"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " +"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " +"dans ce genre de boucles. Il fournit également des fonctions de conversion " +"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " +"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii." +"ctrl` renvoie le caractère de contrôle correspondant à son paramètre." #: howto/curses.rst:483 msgid "" @@ -787,6 +971,11 @@ msgid "" "key, which terminates the string. It can optionally be limited to a fixed " "number of characters. ::" msgstr "" +"Il existe aussi une méthode pour récupérer une chaîne entière, :meth:" +"`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car son utilité " +"est limitée : les seules touches d'édition disponibles sont le retour " +"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, " +"être limitée à un nombre fixé de caractères. ::" #: howto/curses.rst:494 msgid "" @@ -795,15 +984,22 @@ msgid "" "Textbox` class support editing with input validation and gathering the edit " "results either with or without trailing spaces. Here's an example::" msgstr "" +"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " +"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " +"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " +"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " +"et de fin. Par exemple ::" #: howto/curses.rst:518 msgid "" "See the library documentation on :mod:`curses.textpad` for more details." msgstr "" +"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:" +"`curses.textpad`." #: howto/curses.rst:522 msgid "For More Information" -msgstr "" +msgstr "Pour aller plus loin" #: howto/curses.rst:524 msgid "" @@ -812,6 +1008,11 @@ msgid "" "Python library page for the :mod:`curses` module is now reasonably " "complete. You should browse it next." msgstr "" +"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " +"du contenu de l'écran ou la capture des événements relatifs à la souris dans " +"une instance *xterm*, mais la page de la bibliothèque Python du module :mod:" +"`curses` est maintenant suffisamment complète. Nous vous encourageons à la " +"parcourir." #: howto/curses.rst:529 msgid "" @@ -821,6 +1022,12 @@ msgid "" "quirks, and provide complete lists of all the functions, attributes, and :" "const:`ACS_\\*` characters available to you." msgstr "" +"Si vous vous posez des questions sur le fonctionnement précis de fonctions " +"*curses*, consultez les pages de manuel de l'implémentation *curses* de " +"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " +"pages de manuel documentent toutes les bizarreries et vous donneront les " +"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " +"caractères disponibles." #: howto/curses.rst:536 msgid "" @@ -831,21 +1038,34 @@ msgid "" "would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." #: howto/curses.rst:544 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." #: howto/curses.rst:546 msgid "`The ncurses man page `_" -msgstr "" +msgstr "`La page de manuel ncurses `_" #: howto/curses.rst:547 msgid "" "`The ncurses FAQ `_" msgstr "" +"`La FAQ ncurses `_ " +"(ressource en anglais)" #: howto/curses.rst:548 msgid "" @@ -853,6 +1073,9 @@ msgid "" "v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using " "curses or Urwid." msgstr "" +"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " +"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." #: howto/curses.rst:550 msgid "" @@ -860,3 +1083,6 @@ msgid "" "console-applications-with-urwid>`_: video of a PyCon CA 2012 talk " "demonstrating some applications written using Urwid." msgstr "" +"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*."