<< Retour au sommaire

 

INTRODUCTION AU LANGAGE SCRIPTS DE JAWS

 

 

 

Le sommaire :

Présentation.

Les parenthèses.

Le vocabulaire.

Traduction de termes techniques anglais.

 

 

Présentation

 

Un langage de programmation est un outil qui permet d’écrire du code afin de donner des ordres à un logiciel.

Mais dans la réalité, WINDOWS et les autres logiciels ne sont pas en mesure d’interpréter notre manière à nous, de nous exprimer.

Par exemple, lorsque je veux dire à JAWS d’activer le curseur souris à partir des scripts, je lui dis en écrivant l’instruction suivante :

JawsCursor ()

Du coup, je suis satisfait de l’ordre que je viens de lui donner !

Mais voilà, les logiciels sont moins évolués que nous et par conséquent, ils ont besoins de recevoir des ordres dont les mots sont plus proches de la machine.

Comme une machine ne travaille uniquement qu’à partir de multiples impulsions électriques, les logiciels me comprendront mieux si je leur dis d’activer le curseur JAWS de la façon suivante :

0011 01010 111 01010 01010 11 000.

Eh voilà, il est content le JAWS à papa !

Il a enfin comprit que je voulais qu’il active le curseur JAWS…

Cependant, il est hors de question que j’écrive dans un langage aussi barbare... !

Alors, il va nous falloir un interprète, et nous allons l’appeler le compilateur.

 

Désormais, lorsque je voudrai écrire un programme, et ce, quel que soit le langage de programmation utilisé, je l’écrirai dans un langage évolué, dans ce que l’on appellera le fichier source, et  ensuite, je le transformerai en un langage incompréhensible pour moi, mais interprétable par la machine.

Cette opération de traduction s’appellera la compilation, et donnera naissance à un autre fichier cette fois interprétable par la machine, c’est le fichier exécutable.

 

Le logiciel qui va me permettre de saisir mon langage à moi, c’est l’éditeur.

Et bien sûr, JAWS possède un éditeur qui nous permet d’écrire nos instructions, des instructions pour modifier le comportement de JAWS, de WINDOWS, ou encore, de WORD ou d’EXCEL.

 

Le but du jeu c’est donc cela.

J’ouvre un éditeur, je saisis des ordres que moi je comprends, et ensuite, hop, je compile et je donne vie à un nouveau petit fichier de type exécutable, fichier qui d’ailleurs, possède l’extension EXE, pour bon nombre de langages de programmations, et l’extension JSB, pour JAWS.

Les autres fichiers qui découlent de notre programmation sont moins intéressants pour des débutants.

Certains de ces fichiers contiennent les raccourcis clavier que l’on a associés aux scripts ETC

Avec JAWS, lorsque l’on développe un script pour une application, tous les fichiers qui découlent de notre programmation ont le même nom, seules les extensions diffèrent.

Mais pour l’instant, nous n’allons n’en retenir que deux, le fichier qui a l’extension JSS, c’est notre fichier à nous, il est appelé le ficher source, et l’extension JSB, c’est le résultat de la compilation du JSS.

Nos fichiers sources contiennent donc des instructions que nous écrivons dans un langage évolué, en simplifiant les choses, on dira que chaque paragraphe de ce fichier correspond à un script qui répond à un raccourci clavier, ou à une fonction qui s’exécute quand elle est nommée.

Ces fonctions en question n’ont pas pour objectif d’être appelées par l’utilisateur en réalisant un raccourci clavier.

Imaginez que vous ayez à réaliser une opération qui entraîne le pointeur de la souris en haut à gauche de l’écran afin d’y réaliser un clic.

Si cette action doit être utilisée à partir de plusieurs scripts, on écrira qu’une seule fois les instructions appropriées, et ce, dans une fonction qui ne sera pas activable à partir d’un raccourci clavier.

Ce qu’il faut retenir pour l’instant, c’est qu’un script est exécuté lorsque l’utilisateur réalise le raccourci clavier qui lui est associé, tandis qu’une fonction est exécutée lorsqu’elle est nommée dans un script ou bien, dans une autre fonction.

 

Conclusion, dans le langage scripts de JAWS, un script qui est associé à un raccourci clavier est appelé un script, et un script qui n’est pas associé à un raccourci clavier est appelé une fonction.

N’oubliez pas cette notion de scripts et de fonctions !

 

Pour finir ma petite présentation, je rappellerai une notion de base de JAWS.

Que ce soit pour le configurateur de JAWS, pour les utilitaires tel que le dictionnaire de prononciations, ou pour ses scripts, il existe systématiquement un fichier défaut qui joue le rôle de maître, se sont ces fichiers défaut qui sont pris en compte lorsque l’application active sur votre ordinateur n’a pas été personnalisée.

 

Il existe donc un fichier script qui s’appelle DEFAULT.JSS, pour le fichier source, et DEFAULT ;JSB, pour l’exécutable qui dirigera une application si vous n’avez pas créé votre propre fichier scripts pour cette application.

À partir de JAWS 620, vous pouvez atteindre le dossier des scripts de la manière suivante :

 

Menu démarrer, Programmes sous menu, JAWS sous menu,

Explorer JAWS sous menu et Explorer les paramètres utilisateur.

A partir de la version 7.10, le raccourci est « Explorer mes paramètres ».

 

Si vous validez ce raccourci dans le menu démarrer, vous atterrirez directement dans votre dossier contenant tous les fichiers scripts.

D’ailleurs, ce dossier s’intitule « FRA ».

 

Je précise que tous les fichiers scripts ont le même nom que l’application à laquelle ils se rattachent.

Par exemple, Le fichier source des scripts pour JAWS de MICROSOFT WORD s’intitule

MICROSOFT WORD.JSS .

 

Tout à l’heure, je vous ai dit que la compilation d’un fichier source donnait en réalité naissance à plusieurs fichiers du même nom dont seules les extensions différaient.

Parmi eux, vous avez d’ores et déjà retenu le fichier exécutable qui a l’extension JSB…

 

Eh bien, l’un d’entre eux permet de participer à un outil très pratique et que JAWS vous offre.

Il s’agit du gestionnaire de clavier.

Cette fenêtre accessible pour tous les utilisateurs débutants ou avancés, nous offre la liste de tous les fichiers scripts existants, et pour chacun d’entre eux, les noms de tous les scripts ainsi que les raccourcis clavier qui s’y rattachent.

Pour accéder à ce fichier qui lui, a l’extension JKM, il existe un utilitaire qui affiche une fenêtre d’informations sur son contenu.

 

Ouvrez le gestionnaire de JAWS avec le raccourci clavier Insère +F2, et dans la boîte de dialogue qui apparaît à l’écran, descendez avec flèche basse jusqu’à atteindre « gestionnaire de clavier ».

Pressez la touche entrée.

Vous voici arrivés dans le gestionnaire de clavier.

Au départ, vous êtes dans la liste de tous les fichiers scripts existants, vous pouvez circuler dans cette liste avec flèche haute et flèche basse.

Lorsque vous êtes positionnés sur le fichier scripts qui vous intéresse, faites tabulation et vous arriverez dans une liste qui affiche le contenu du fichier.

Chaque élément de cette nouvelle liste est une fonction ou un script et, pour les scripts, son raccourci clavier qui permet son exécution depuis le logiciel concerné.

Revenez ensuite dans la liste des fichiers avec MAJ +TAB afin de continuer votre exploration.

Vous pourrez à tout moment quitter l’utilitaire avec ALT +F4.

 

Avant de créer votre premier script, soyez prudent et prenez la précaution de sauvegarder tous les fichiers se trouvant dans votre dossier utilisateur.

Chaque utilisateur de l’ordinateur possède son dossier de scripts, il s’appelle FRA.

Ce dossier est situé dans votre compte utilisateur dans le dossier

« Documents And Settings », mais je vous ai déjà dit, tout à l’heure, comment atteindre ce dossier à partir du menu démarrer.

Le dossier FRA qui contient les fichiers scripts partagés par tous les utilisateurs, quant à lui se trouve également dans

« Documents And Settings », mais cette fois, dans le dossier

« All Users ».

Vous pouvez également l’atteindre par le menu démarrer mais par le raccourci suivant :

Menu démarrer, Programmes sous menu, JAWS sous menu,

Explorer JAWS sous menu et Explorer les paramètres communs.

A partir de la version 7.10, le raccourci est :

« Explorer les paramètres communs ».

 

Voilà, sauvegardez bien les fichiers de base que vous pourrez replacer ici en cas de problème.

 

Lorsque vous souhaitez développer un script pour une application, vous devez tout d’abord activer l’application à scripter.

Ensuite, réalisez le raccourci clavier Insère +0 du pavé alphanumérique.

L’éditeur de scripts de JAWS apparaît à l’écran.

Son nom ? Scripts Manager.

 

Par défaut, vous arrivez directement dans le fichier source de l’application en cours.

Si vous souhaitez réaliser un script qui sera opérationnel dans toutes les applications, vous devez ouvrir le fichier source DEFAULT.JSS en réalisant le raccourci clavier CTRL +MAJ D.

Vous pouvez également ouvrir ce fichier à partir du menu déroulant, dans l’option de menu intitulée « Fichier ».

Si vous venez d’atterrir dans un fichier source contenant déjà du code, déplacez le curseur  en bas du fichier afin de créer un script en bas du code déjà existant. Pour ce faire, réalisez le raccourci clavier CTRL +FIN.

Ensuite pressez une ou deux fois la touche Entrée afin de descendre votre curseur après la dernière ligne de code.

En revanche, si vous souhaitez créer un script dans le fichier source de l’application courante, n’ouvrez pas le fichier DEFAULT.JSS.

Par contre, pressez flèche basse histoire de voir si le fichier des scripts de l’application a déjà été créé. Si vous constatez qu’il y a déjà du code dans ce fichier, alors déplacez-vous directement à la fin du fichier avec CTRL +FIN et pressez une ou deux fois la touche Entrée afin de positionner le curseur sur une nouvelle ligne vierge.

Bref, vous l’avez compris, le code ne doit pas se chevaucher…

Quoi qu’il en soit, afin de simplifier l’environnement de travail, vous êtes dans le fichier source comme si vous étiez dans un fichier texte depuis le bloc notes, déplacez-vous de la même manière.

Attention !

Si le fichier des scripts de l’application est vide, vous devrez débuter l’écriture du code par une fonction qui introduira un minimum d’éléments dont le rôle ne vous intéresse pas vraiment pour l’heure…

Il y a 3 lignes que voici :

Include "HJGLOBAL.JSH"

Include "HJCONST.JSH"

Include "DEFAULT.JSM"

 

Puis, après avoir copiés ces 3 lignes, positionnez votre curseur à la fin du fichier.

Le script que vous allez créer sera inséré à l’endroit où votre curseur est positionné à l’instant où vous activerez la boîte de dialogue de création de script.

 

Pour ce faire, activez le menu déroulant avec ALT, flèche droite jusqu’à « Scripts », flèche basse une seule fois afin de vous positionner sur « Nouveau… » Puis pressez la touche entrée.

Pour activer cette fenêtre, vous pouvez aussi réaliser le raccourci clavier CTRL +E.

La boîte de dialogue de création de scripts apparaît à l’écran.

Vous êtes positionnés dans une zone d’édition dans laquelle vous devez saisir le nom du script.

Les mots qui composent le nom du script ne doivent pas comporter de caractères accentués et ne doivent pas être séparés par des espaces. C’est pourquoi je vous propose de mettre systématiquement la première lettre des mots en majuscule.

Par exemple : FermeLaListe

Si vous épelez le nom du script que je viens de vous proposer, « FermeLaListe », vous constaterez que les trois mots sont collés et que la première lettre de chaque mot est en majuscule.

 

Ensuite, faites tabulation.

Vous êtes sur une case à cocher qui est inactive, c’est-à-dire qu’elle n’est pas cochée.

Elle s’intitule :

« Peut être assigné à une touche ».

Si vous cochez cette option avec la barre d’espacement, vous pourrez exécuter le script en cours de création par l’intermédiaire d’une touche ou d’un raccourci clavier.

En revanche, si vous n’activez pas cette option, le script devra être appelé par son nom à partir d’un autre script, ce sera par conséquent une fonction, on en a parlé précédemment.

Maintenant faites tabulation.

Vous arrivez dans une zone d’édition intitulée « Résumé.

Il s’agit ici d’écrire en toutes lettres et en bon français une description du rôle que jouera le script.

En réalisant une nouvelle fois tabulation, vous atteindrez une seconde zone d’édition dans laquelle vous pouvez préciser davantage d’informations concernant le rôle que jouera le script.

Cette deuxième zone d’édition s’intitule : « Description ».

Plus tard, lorsque l’utilisateur activera l’aide du clavier par l’intermédiaire du raccourci clavier Insère +1 du pavé alphanumérique, le résumé du script sera lu par JAWS lorsque le raccourci clavier assigné au script sera réalisé.

La description, quant à elle, sera lue par JAWS lorsque le raccourci clavier sera réalisé 2 fois.

Bon, revenons dans notre boîte de dialogue.

Si vous n’avez pas coché l’option qui permet d’assigner une touche ou un raccourci clavier au script, faites tabulation jusqu’au bouton « Ok » et pressez la touche Entrée.

En revanche, si vous avez cochez cette option, faites tabulation jusqu’à un objet intitulé : « assigner à ».

Dans cette zone, réalisez directement le raccourci clavier à assigner.

Ensuite, faites tabulation jusqu’au bouton « Ok » et pressez la touche entrée.

 

La boîte de dialogue se referme et vous êtes directement positionnés à l’intérieure du script en cours de création, dans le fichier source.

Juste au-dessus du curseur se trouve la ligne de déclaration du script.

Juste au-dessous du curseur, se trouve la ligne de fin du script.

Vous êtes donc bien placés pour écrire le contenu du script.

 

Vous avez donc compris que pour une application donnée, il y a un fichier source qui contient le code des scripts qui le composent. Chaque script remplit une tâche bien précise. Un script est donc quelque part, un paragraphe à l’intérieur du fichier source.

Un script peut être exécuté à partir d’un raccourci clavier qui lui est assigné, mais il peut également être appelé à partir d’un autre script par l’intermédiaire d’un mot clé, « PerformScript ».

Un script peut ne pas être associé à un raccourci clavier, dans quel cas il change de dénomination, il devient « fonction ».

 

Vous avez constaté qu’au début d’un fichier source, nous utilisions la fonction « Include ».

Cette fonction permet d’intégrer le contenu du fichier qui est passé en paramètre, et ce, à l’endroit exact où « Include » est placée, cependant, l’intégration du fichier sera réalisée dans le fichier résultant de la compilation, c’est-à-dire dans le fichier exécutable JSB.

Avec la fonction « Include », C’est presqu’un copié-collé du contenu du fichier qui est indiqué en paramètre.

 

Au fait, le langage script n’est pas sensible à la casse…

En clair, l’emploi des minuscules et des majuscules durant l’écriture des noms de scripts, de fonctions et de mots clé n’a aucune conséquence.

 


Les parenthèses

 

Pourquoi doit-on employer des parenthèses après certaines instructions ?

Qu’est-ce qu’un mot clé ?

Scrip, EndScript, Function, EndFunction, If, Else, EndIf, Let, Var, Globals, Const, While, EndWhile, Return, String, Int, etc.

 

Les noms de variables et de constantes ne prennent jamais de parenthèses non plus.

Il est impossible de vous donner quelques noms de variables puisque c’est vous qui définissez leur nom !

Rappelez-vous seulement que, ces variables, vous les déclarez par l’intermédiaire des mots clé « Var » et « Globals ».

Quant aux constantes, vous avez la possibilité d’en définir vous-mêmes, mais il en existe d’ores et déjà…

True, On, False, Off, Opt_screen_echo, Opt_typing_echo etc.

Pas de parenthèses non plus pour les variables et  les constantes…

Voilà qui est fait, en tout cas pour le listing des éléments du code qui ne sont pas suivis par des parenthèses.

 

Toutes les autres instructions sont suivies de parenthèses.

D’ailleurs, je crois savoir qu’il ne reste que les scripts et les fonctions, globalement, c’est tout. Donc, seuls les noms de scripts et de fonctions sont suivis de parenthèses, et ce, afin d’y placer un ou plusieurs paramètres. Et si le script ou la fonction ne contient pas de paramètre, il conviendra malgré tout de saisir des parenthèses qui n’ont aucun contenu.

Des noms de scripts et de fonctions ?

Eh bien il y a tout d’abord les vôtres, et puis à titre d’exemple, voici quelques noms de fonctions intégrées :

GetLine (), SayString (), NextWord (), Pause (), SaveCursor () etc.

Alors là, il y a bien des parenthèses…

D’ailleurs, je rappelle qu’une fonction, c’est un script qui n’est pas rattaché à un raccourci clavier.

 


 

Le vocabulaire du langage script

 

TERMES

DESCRIPTIONS

Un éditeur

C’est le logiciel qui permet d’écrire un programme.

Un script

Petit programme de JAWS écrit avec le langage script.

Le script est rattaché à un raccourci clavier qui pourra permettre de déclencher son exécution.

Le nom d’un script est toujours suivi de parenthèses.

 

Une fonction

Petit programme de JAWS écrit avec le langage script.

La fonction n’est pas rattachée à un raccourci clavier, elle peut être exécutée depuis un script ou depuis une autre fonction.

Pour que son exécution ait lieu, il faut la nommer dans le programme, cette opération est dite « appel de fonction ».

Un nom de fonction est toujours suivi de parenthèses.

 

Le fichier source

C’est le fichier SCRIPTS dans lequel le programmeur écrit les scripts et les fonctions.

Un fichier source a le nom de l’application auxquelles il se rattache et a l’extension JSS.

La compilation

C’est l’opération qui permet de convertir le fichier source en un fichier exécutable par la machine.

Le fichier exécutable a le même nom que le fichier source mais avec l’extension JSB.

 

LA variable GLOBALE

C’est une petite boîte mémoire dans laquelle vous pouvez stocker des données.

La variable globale est initialisée et a une durée de vie égale au temps d’exécution de l’application auxquelles est rattaché le fichier scripts.

C’est le programmeur qui définit le nom de la variable globale au moment de sa déclaration avec le mot clé « globals ».

Un nom de variable globale ne possède pas de parenthèses.

Le contenu de la variable peut être changé à tout moment durant l’exécution, cette opération est dite « affectation ».

 

La variable locale

C’est une petite boîte mémoire dans laquelle vous pouvez stocker des données.

La variable locale est initialisée lors de l’exécution du script ou de la fonction qui la contient.

Sa durée de vie est égale au temps d’exécution du script ou de la fonction qui la contient.

Un nom de variable locale ne possède pas de parenthèses.

C’est le programmeur qui définit le nom de la variable locale au moment de sa déclaration avec le mot clé « Var ».

Le contenu de la variable peut être changé à tout moment durant l’exécution, cette opération est dite « affectation ».

 

La constante

C’est une petite boîte mémoire dans laquelle vous pouvez stocker des données.

La constante est initialisée et a une durée de vie égale au temps d’exécution de l’application.

C’est le programmeur qui définit le nom de la constante au moment de sa déclaration avec le mot clé « Const ».

Un nom de constante ne possède pas de parenthèses.

Le contenu de la constante ne peut pas être modifié.

 

Le mot clé

C’est une instruction de types « affectation », « boucle » etc.

Un paramètre

C’est une donnée qui est passée en paramètre à une fonction.

Parfois, une fonction a besoin au minimum d’un paramètre pour être exécutée, le paramètre est placé entre parenthèses juste après le nom de la fonction.

Le paramètre est une donnée qui peut être écrite directement ou bien représenté par une variable.

 

Une variable de passage

C’est la donnée à récupérer et à traiter par une fonction.

Cette donnée en question est appelée « paramètre » au moment de l’appel de la fonction.

Une chaîne de caractères

Une chaîne de caractères est un texte qui doit toujours être placé entre guillemets.

Le type « chaîne de caractères » est dit « String ».

C’est notamment grâce aux guillemets que le compilateur distingue la nature d’un élément dans le fichier source.

Une chaîne de caractères est écrite entre guillemets.

Une valeur numérique est écrite telle que, sans guillemets.

Les noms de variable, de constante, de script et de fonction ne sont pas encadrés par des guillemets et ne commencent jamais par un chiffre.

Un entier

C’est une donnée, une valeur numérique sans partie décimale.

Ce type est dit « Int » ou « Integer ».

Un entier ne doit pas être encadré par des guillemets.

Le booléen

C’est un type de donnée qui ne peut correspondre qu’aux valeurs « vraie » ou « faux ».

La valeur 0 peut être utilisée pour « faux », et la valeur 1 pour « vrai ».

L’affectation

C’est l’opération qui consiste à enregistrer une donnée dans une variable ou une constante.

L’incrémentation

C’est l’opération mathématique qui consiste à rajouter la valeur 1 à une variable de type « entier ».

La décrémentation

C’est l’opération mathématique qui consiste à retrancher la valeur 1 à une variable de type « entier ».

Une boucle ou une répétitive

C’est un bloc de code qui est exécuté tant qu’une condition n’est pas atteinte.

L’itération

C’est une exécution du code contenu dans une boucle.

Une boucle réalise bien souvent plusieurs itérations.

L’embranchement conditionnel

C’est une réorientation de l’exécution du code d’un programme selon si une condition est vraie ou fausse.

La récursivité

C’est un bloc de programme qui se réexécute lui-même en s’appelant.

Un séparateur

C’est une ponctuation ou un symbole utilisé pour séparer des éléments de même type.

Le commentaire

C’est du texte qui permet de commenter le programme.

Le commentaire est ignoré par le compilateur, il n’a donc aucune influence sur l’exécution du programme.

La synchronisation

C’est une opération de maintenance qui permet de remettre à jour les relations entre les différents éléments d’un fichier script.

Les opérateurs de comparaisons

Ce sont des symboles mathématiques qui permettent de comparer des données.

Le résultat d’une opération de comparaison est de type booléen.

Les opérateurs mathématiques ou arithmétiques

Ce sont les symboles qui permettent de réaliser les opérations mathématiques de base.

Le résultat est donc un produit, une somme, une différence, un quotient etc.

Les opérateurs logiques

Ce sont les opérateurs qui permettent d’associer des opérations de comparaisons. Le résultat d’une opération se présente sous la forme d’un booléen.

Une boîte de message

C’est une fenêtre qui s’ouvre à l’écran pour informer l’utilisateur ou pour lui poser une question.

Des boutons sont placés à l’intérieure de la fenêtre pour accompagner le message.

Un objet

C’est un élément qui permet de représenter une application ou un document afin de lui expédier des instructions dites « méthodes ».

La configuration de l’application ou du document peut être également modifiée par le biais de changements de propriétés.

La méthode

C’est une instruction expédiée à un objet.

Le buffer

C’est une mémoire tampon utilisée par l’application en tant que mémoire intermédiaire.

 


 

TRADUCTION DE TERMES techniques ANGLAIS

Fréquemment trouvés dans le nom des scripts & fonctions

En anglais

En français

Start

Démarrer

WINDOW

Fenêtre

List

Liste

Item

Élément de liste

Box

Boîte

Button

Bouton

Lrvel

Niveau

Main

Principal

Real

Réel

Character

Caractère

Word

Mot

Line

Ligne

Sentence

Phrase

Paragraph

Paragraphe

Chunk

Bloc

Text

Texte

String

Chaîne de caractères

Handle

Poignée

Integer

Entier

Void

Vide

Prior

Précédent

Next

Suivant

Title

Titre

If

Si

While

Tant que

Loop

Boucle

Return

Retourne

Home

Début

End

Fin

Page Up

Page précédente

Page Down

Page suivante

Left

Gauche

Right

Droite

Top

En haut

Bottom

En bas

Mouse

Souris

Cursor

Curseur

Event

Evènement

Route

Joindre

Save

Sauvegarder

Restore

Restaurer

Say

Dire

Get

Obtenir

Current

Courant

Data

Une donnée

Select

Sélectionner

Call

Appel

Run

Exécuter

Perform

Exécuter

Load

Charger

Set

Ensemble

Move

Mouvement

Activate

Activer

Display

Affichage

Play

Jouer

Sound

Son

Over

Plus de

File

Fichier

Path

Chemin

 

Directory

Répertoire

Row

Rangée

Column

Colonne

Key

Touche

Keyboard

Clavier

Clipboard

Presse papier

Font

Police

Link

Lien

Color

Couleur

Add

Ajouter

Append

Apposer

Open

Ouvrir

Close

Fermer

Changed

Changé

Minimize

Minimiser

Maximize

Maximisez

System

Système

Barre oblique

Slash

Barre oblique inversée

Backslash

User

Utilisateur

Include

Inclure

Finish

 

Finit

Topic

Matière

Edge

Bord

Between

Entre

Advance

Avance

Build

Construction

Clear

Clair

Error

Erreur

Length

Longueur

Size

Taille

Name

Nom

Find

Trouver

Driver

Pilote

Translator

Traducteur

Device

Dispositif

Refresh

Rafraîchir

Buffer

Mémoire tampon

 

Philippe BOULANGER