# French translations for Wine
#
msgid ""
msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: http://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
"PO-Revision-Date: N/A\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: clock.rc:28
msgid "&Properties"
msgstr "&Propriétés"

#: clock.rc:29
msgid "Ana&log"
msgstr "Ana&logique"

#: clock.rc:30
msgid "Digi&tal"
msgstr "&Numérique"

#: clock.rc:32
msgid "&Font..."
msgstr "&Police..."

#: clock.rc:34
msgid "&Without Titlebar"
msgstr "Sans &barre de titre"

#: clock.rc:36
msgid "&Seconds"
msgstr "&Secondes"

#: clock.rc:37
msgid "&Date"
msgstr "&Date"

#: clock.rc:39
msgid "&Always on Top"
msgstr "&Toujours visible"

#: clock.rc:41
msgid "Inf&o"
msgstr "Inf&o"

#: clock.rc:42
msgid "&About Clock..."
msgstr "À &propos de l'horloge"

#: clock.rc:48
msgid "Clock"
msgstr "Horloge"

#: cmd.rc:30
msgid "ATTRIB shows or changes DOS file attributes.\n"
msgstr "ATTRIB affiche ou modifie les attributs de fichiers DOS.\n"

#: cmd.rc:38
msgid ""
"CALL <batchfilename> is used within a batch file to execute commands\n"
"from another batch file. When the batch file exits, control returns to\n"
"the file which called it. The CALL command may supply parameters to the\n"
"called procedure.\n"
"\n"
"Changes to default directory, environment variables etc made within a\n"
"called procedure are inherited by the caller.\n"
msgstr ""
"CALL <fichierbatch> sert à appeler un fichier batch\n"
"depuis un autre fichier batch. Quand le fichier batch sort, le contrôle "
"revient\n"
"au fichier qui l'a appelé. La commande CALL doit être suivie des paramètres\n"
"de la procédure appelée.\n"
"\n"
"Les changements de répertoire courant, de variables d'environnement etc. "
"faits\n"
"dans une procédure appelée sont transmis à l'appelant.\n"

#: cmd.rc:41
msgid ""
"CD <dir> is the short version of CHDIR. It changes the current\n"
"default directory.\n"
msgstr ""
"CD <rép> est la version courte de CHDIR. Elle change lerépertoire courant "
"par défaut.\n"

#: cmd.rc:42
msgid "CHDIR <dir> changes the current default directory.\n"
msgstr "CHDIR <rép> change le répertoire courant par défaut.\n"

#: cmd.rc:44
msgid "CLS clears the console screen.\n"
msgstr "CLS efface l'écran de la console.\n"

#: cmd.rc:46
msgid "COPY <filename> copies a file.\n"
msgstr "COPY copie un ou plusieurs fichiers.\n"

#: cmd.rc:47
msgid "CTTY changes the input/output device.\n"
msgstr "CTTY change le périphérique d'entrée/sortie.\n"

#: cmd.rc:48
msgid "DATE shows or changes the system date.\n"
msgstr "DATE affiche ou modifie la date système.\n"

#: cmd.rc:49
msgid "DEL <filename> deletes a file or set of files.\n"
msgstr "DEL <fichiers> efface un fichier ou un groupe de fichiers.\n"

#: cmd.rc:50
msgid "DIR lists the contents of a directory.\n"
msgstr "DIR liste le contenu d'un répertoire.\n"

#: cmd.rc:60
msgid ""
"ECHO <string> displays <string> on the current terminal device.\n"
"\n"
"ECHO ON causes all subsequent commands in a batch file to be displayed\n"
"on the terminal device before they are executed.\n"
"\n"
"ECHO OFF reverses the effect of a previous ECHO ON (ECHO is OFF by\n"
"default). The ECHO OFF command can be prevented from displaying by\n"
"preceding it with an @ sign.\n"
msgstr ""
"ECHO <chaîne> affiche <chaîne> sur la console courante.\n"
"\n"
"ECHO ON provoque l'affichage de toutes les commandes sur la console\n"
"avant leur exécution.\n"
"\n"
"ECHO OFF annule l'effet de tout ECHO ON antérieur (ECHO est OFF par\n"
"défaut). On peut empêcher l'affichage de ECHO OFF en le faisant\n"
"précéder d'un signe @.\n"

#: cmd.rc:62
msgid "ERASE <filename> deletes a file or set of files.\n"
msgstr "ERASE <fichiers> efface un ou plusieurs fichiers.\n"

#: cmd.rc:70
msgid ""
"The FOR command is used to execute a command for each of a set of files.\n"
"\n"
"Syntax: FOR %variable IN (set) DO command\n"
"\n"
"The requirement to double the % sign when using FOR in a batch file does\n"
"not exist in wine's cmd.\n"
msgstr ""
"La commande FOR sert à exécuter une commande pour chaque fichier d'un groupe "
"de fichiers.\n"
"\n"
"Syntaxe : FOR %variable IN (groupe) DO commande\n"
"\n"
"La nécessité de doubler le signe '%' lorsque l'on utilise FOR dans un "
"fichier batch\n"
"n'existe pas dans cmd.\n"

#: cmd.rc:82
msgid ""
"The GOTO command transfers execution to another statement within a\n"
"batch file.\n"
"\n"
"The label which is the target of a GOTO may be up to 255 characters\n"
"long but may not include spaces (this is different from other operating\n"
"systems). If two or more identical labels exist in a batch file the\n"
"first one will always be executed. Attempting to GOTO a nonexistent\n"
"label terminates the batch file execution.\n"
"\n"
"GOTO has no effect when used interactively.\n"
msgstr ""
"La commande GOTO transfère l'exécution à une autre commande (située\n"
"après une étiquette donnée) dans un fichier batch.\n"
"\n"
"L'étiquette cible du GOTO a une longueur de maximum 255 caractères\n"
"mais ne peut inclure d'espaces (à la différence d'autres systèmes\n"
"d'exploitation). Si deux étiquettes identiques (ou plus) sont dans le même\n"
"fichier, seule la première sera utilisée. Essayer de sauter vers une "
"étiquette\n"
"non existante termine l'exécution du fichier batch.\n"
"\n"
"GOTO n'a pas d'effet si utilisé interactivement.\n"

#: cmd.rc:85
msgid ""
"HELP <command> shows brief help details on a topic.\n"
"HELP without an argument shows all CMD built-in commands.\n"
msgstr "Affiche une brève aide sur les commandes internes de CMD\n"

#: cmd.rc:95
msgid ""
"IF is used to conditionally execute a command.\n"
"\n"
"Syntax:\tIF [NOT] EXIST filename command\n"
"IF [NOT] string1==string2 command\n"
"IF [NOT] ERRORLEVEL number command\n"
"\n"
"In the second form of the command, string1 and string2 must be in double\n"
"quotes. The comparison is not case-sensitive.\n"
msgstr ""
"IF est utilisé pour exécuter une commande de façon conditionnelle.\n"
"\n"
"Syntaxe :\tIF [NOT] EXIST nomfichier commande\n"
"IF [NOT] chaîne1==chaîne2 commande\n"
"IF [NOT] ERRORLEVEL nombre commande\n"
"\n"
"Dans la deuxième forme de la commande, chaîne1 et chaîne2 doivent être\n"
"entre guillemets. La comparaison est insensible à la casse.\n"

#: cmd.rc:101
msgid ""
"LABEL is used to set a disk volume label.\n"
"\n"
"Syntax: LABEL [drive:]\n"
"The command will prompt you for the new volume label for the given drive.\n"
"You can display the disk volume label with the VOL command.\n"
msgstr ""
"LABEL sert à modifier le nom de volume d'un disque.\n"
"\n"
"Syntaxe : LABEL [lecteur:]\n"
"La commande demande le nouveau nom de volume pour le lecteur spécifié.\n"
"Vous pouvez afficher le nom de volume avec la commande VOL.\n"

#: cmd.rc:104
msgid "MD <name> is the short version of MKDIR. It creates a subdirectory.\n"
msgstr "MD est la version courte de MKDIR. Elle crée un répertoire.\n"

#: cmd.rc:105
msgid "MKDIR <name> creates a subdirectory.\n"
msgstr "MKDIR <rép> crée un répertoire.\n"

#: cmd.rc:112
msgid ""
"MOVE relocates a file or directory to a new point within the file system.\n"
"\n"
"If the item being moved is a directory then all the files and "
"subdirectories\n"
"below the item are moved as well.\n"
"\n"
"MOVE fails if the old and new locations are on different DOS drive letters.\n"
msgstr ""
"MOVE déplace un fichier, un groupe de fichiers ou un répertoire\n"
"à un autre endroit dans le système de fichiers. Si l'objet déplacé est un "
"répertoire, alors\n"
"tous les fichiers et sous-répertoires de l'objet sont également déplacés.\n"
"MOVE échoue si l'ancien et le nouvel emplacement sont sur des lecteurs DOS "
"différents.\n"

#: cmd.rc:123
msgid ""
"PATH displays or changes the cmd search path.\n"
"\n"
"Entering PATH will display the current PATH setting (initially taken\n"
"from the registry). To change the setting follow the\n"
"PATH command with the new value.\n"
"\n"
"It is also possible to modify the PATH by using the PATH environment\n"
"variable, for example:\n"
"PATH %PATH%;c:\\temp\n"
msgstr ""
"PATH affiche ou change le chemin de recherche de cmd.\n"
"\n"
"Entrer PATH seul affiche le réglage courant de PATH (dont la valeur\n"
"initiale provient de la base de registre). Pour changer\n"
"le réglage, faites suivre la commande PATH par la nouvelle valeur.\n"
"Il est aussi possible de modifier le PATH en utilisant la variable\n"
"d'environnement PATH, par exemple :\n"
"PATH %PATH%;c:\\temp\n"

#: cmd.rc:129
msgid ""
"PAUSE displays a message on the screen 'Press Return key to continue'\n"
"and waits for the user to press the Return key. It is mainly useful in\n"
"batch files to allow the user to read the output of a previous command\n"
"before it scrolls off the screen.\n"
msgstr ""
"PAUSE affiche un message sur l'écran : 'Pressez Entrée pour continuer'\n"
"et attend que l'utilisateur presse la touche Entrée. PAUSE est surtout "
"utilisé dans\n"
"les fichiers batchs pour permettre à l'utilisateur de lire la sortie de\n"
"la dernière commande avant qu'elle ne disparaisse de l'écran.\n"

#: cmd.rc:150
msgid ""
"PROMPT sets the command-line prompt.\n"
"\n"
"The string following the PROMPT command (and the space immediately after)\n"
"appears at the beginning of the line when cmd is waiting for input.\n"
"\n"
"The following character strings have the special meaning shown:\n"
"\n"
"$$    Dollar sign         $_    Linefeed            $b    Pipe sign (|)\n"
"$d    Current date        $e    Escape              $g    > sign\n"
"$l    < sign              $n    Current drive       $p    Current path\n"
"$q    Equal sign          $t    Current time        $v    cmd version\n"
"\n"
"Note that entering the PROMPT command without a prompt-string resets the\n"
"prompt to the default, which is the current directory (which includes the\n"
"current drive letter) followed by a greater-than (>) sign.\n"
"(like a command PROMPT $p$g).\n"
"\n"
"The prompt can also be changed by altering the PROMPT environment variable,\n"
"so the command 'SET PROMPT=text' has the same effect as 'PROMPT text'\n"
msgstr ""
"PROMPT règle l'invite de commande.\n"
"\n"
"La chaîne suivant la commande PROMPT (ainsi que le blanc la suivant "
"directement)\n"
"apparaît au début de la ligne quand cmd attend une entrée texte.\n"
"\n"
"Les chaînes de caractères suivantes ont une signification spéciale :\n"
"\n"
"$$    Signe dollar        $_    Saut de ligne       $b    Barre verticale "
"(|)\n"
"$d    Date courante       $e    Escape              $g    Signe >\n"
"$l    Signe <             $n    Lecteur courant     $p    Répertoire "
"courant\n"
"$q    Signe =             $t    Heure courante      $v    Version de cmd\n"
"\n"
"Notez qu'entrer la commande PROMPT sans texte d'invite remet l'invite\n"
"à sa valeur par défaut, à savoir la lettre du lecteur courant suivie de\n"
"son répertoire courant et d'un signe plus-grand-que (>).\n"
"(c.-à-d. la commande PROMPT $p$g).\n"
"\n"
"L'invite peut aussi être adaptée en modifiant la variable d'environnement\n"
"PROMPT ; ainsi la commande 'SET PROMPT=texte' a le même effet que 'PROMPT "
"texte'\n"

#: cmd.rc:154
msgid ""
"A command line beginning REM (followed by a space) performs no\n"
"action, and can therefore be used as a comment in a batch file.\n"
msgstr ""
"Une ligne de commande commençant par REM (suivi d'une espace) n'engendre\n"
"aucune action, et peut donc servir de commentaire dans un fichier batch.\n"

#: cmd.rc:157
msgid "REN <filename> is the short version of RENAME. It renames a file.\n"
msgstr "REN est la version courte de RENAME. Elle renomme un fichier.\n"

#: cmd.rc:158
msgid "RENAME <filename> renames a file\n"
msgstr "RENAME renomme un fichier.\n"

#: cmd.rc:160
msgid "RD <dir> is the short version of RMDIR. It deletes a subdirectory.\n"
msgstr "RD est la version courte de RMDIR. Elle efface un répertoire.\n"

#: cmd.rc:161
msgid "RMDIR <dir> deletes a subdirectory.\n"
msgstr "RMDIR efface un sous-répertoire.\n"

#: cmd.rc:179
msgid ""
"SET displays or changes the cmd environment variables.\n"
"\n"
"SET without parameters shows all of the current environment.\n"
"\n"
"To create or modify an environment variable the syntax is:\n"
"\n"
"SET <variable>=<value>\n"
"\n"
"where <variable> and <value> are character strings. There must be no\n"
"spaces before the equals sign, nor can the variable name\n"
"have embedded spaces.\n"
"\n"
"Under Wine, the environment of the underlying operating system is\n"
"included into the Win32 environment, there will generally therefore be\n"
"many more values than in a native Win32 implementation. Note that it is\n"
"not possible to affect the operating system environment from within cmd.\n"
msgstr ""
"SET affiche ou change les variables d'environnement de cmd.\n"
"\n"
"SET sans paramètre affiche l'environnement courant.\n"
"\n"
"Pour créer et modifier une variable d'environnement, la syntaxe est :\n"
"\n"
"SET <variable>=<valeur>\n"
"\n"
"où <variable> et <valeur> sont des chaînes de caractères. Il ne peut y avoir "
"aucun\n"
"espace autour du signe '=', ni dans <variable>.\n"
"\n"
"\n"
"Sous Wine, l'environnement du système hôte est\n"
"inclus dans l'environnement Win32, il y aura par conséquent généralement\n"
"bien plus de valeurs que dans un système Win32 natif. Notez qu'il\n"
"n'est pas possible de modifier l'environnement du système d'exploitation "
"dans cmd.\n"

#: cmd.rc:184
msgid ""
"SHIFT is used in a batch file to remove one parameter from the head of\n"
"the list, so parameter 2 becomes parameter 1 and so on. It has no effect\n"
"if called from the command line.\n"
msgstr ""
"SHIFT est utilisé dans un fichier batch pour enlever le premier paramètre de "
"la\n"
"liste ; ainsi, le paramètre 2 devient paramètre 1 et ainsi de suite. Il est "
"sans effet\n"
"s'il est appelé depuis la ligne de commande.\n"

#: cmd.rc:186
msgid "TIME sets or shows the current system time.\n"
msgstr "TIME règle ou affiche l'heure système courante.\n"

#: cmd.rc:188
msgid "Sets the window title for the cmd window, syntax TITLE [string]\n"
msgstr ""
"Définit le titre de la fenêtre pour la session cmd, Syntaxe : TITLE "
"[chaîne]\n"

#: cmd.rc:192
msgid ""
"TYPE <filename> copies <filename> to the console device (or elsewhere\n"
"if redirected). No check is made that the file is readable text.\n"
msgstr ""
"TYPE <nomfichier> affiche <nomfichier> sur la console (ou ailleurs\n"
"si redirigé). Aucun test n'est fait pour voir si le fichier contient bien du "
"texte.\n"

#: cmd.rc:201
msgid ""
"VERIFY is used to set, clear or test the verify flag. Valid forms are:\n"
"\n"
"VERIFY ON\tSet the flag\n"
"VERIFY OFF\tClear the flag\n"
"VERIFY\t\tDisplays ON or OFF as appropriate.\n"
"\n"
"The verify flag has no function in Wine.\n"
msgstr ""
"VERIFY est utilisé pour positionner, effacer ou tester l'indicateur de "
"vérification.\n"
"\n"
"Les formes suivantes sont correctes :\n"
"VERIFY ON\tPositionne l'indicateur\n"
"VERIFY OFF\tEfface l'indicateur\n"
"VERIFY\t\tAffiche l'état ON ou OFF de l'indicateur.\n"
"\n"
"L'indicateur de vérification n'a pas de fonction dans Wine.\n"

#: cmd.rc:204
msgid "VER displays the version of cmd you are running\n"
msgstr "VER affiche la version de cmd utilisée.\n"

#: cmd.rc:206
msgid "VOL shows the volume label of a disk device.\n"
msgstr "Aide de VOL\n"

#: cmd.rc:209
msgid ""
"PUSHD <directoryname> saves the current directory onto a\n"
"stack, and then changes the current directory to the supplied one.\n"
msgstr ""
"PUSHD <répertoire> enregistre le répertoire courant sur\n"
"une pile et remplace le répertoire courant par le répertoire spécifié.\n"

#: cmd.rc:212
msgid ""
"POPD changes current directory to the last one saved with\n"
"PUSHD.\n"
msgstr ""
"POPD change le répertoire courant par le dernier enregistré à l'aide de\n"
"PUSHD.\n"

#: cmd.rc:214
msgid "MORE displays output of files or piped input in pages.\n"
msgstr "MORE affiche le contenu de fichiers ou l'entrée standard par pages.\n"

#: cmd.rc:218
msgid ""
"CHOICE displays a text and waits, until the User\n"
"presses an allowed Key from a selectable list.\n"
"CHOICE is mainly used to build a menu selection in a batch file.\n"
msgstr ""
"CHOICE affiche un message et bloque jusqu'à ce que l'utilisateur appuie\n"
"sur une des touches spécifiées dans une liste configurable.\n"
"CHOICE est principalement utilisé pour construire une sélection de menu dans "
"un fichier batch.\n"

#: cmd.rc:222
msgid ""
"EXIT terminates the current command session and returns\n"
"to the operating system or shell from which you invoked cmd.\n"
msgstr ""
"EXIT termine la session de ligne de commande et retourne\n"
"au système d'exploitation ou au shell où vous avez invoqué cmd.\n"

#: cmd.rc:253
msgid ""
"CMD built-in commands are:\n"
"ATTRIB\t\tShow or change DOS file attributes\n"
"CALL\t\tInvoke a batch file from inside another\n"
"CD (CHDIR)\tChange current default directory\n"
"CHOICE\t\tWait for an keypress from a selectable list\n"
"CLS\t\tClear the console screen\n"
"COPY\t\tCopy file\n"
"CTTY\t\tChange input/output device\n"
"DATE\t\tShow or change the system date\n"
"DEL (ERASE)\tDelete a file or set of files\n"
"DIR\t\tList the contents of a directory\n"
"ECHO\t\tCopy text directly to the console output\n"
"HELP\t\tShow brief help details on a topic\n"
"MD (MKDIR)\tCreate a subdirectory\n"
"MORE\t\tDisplay output in pages\n"
"MOVE\t\tMove a file, set of files or directory tree\n"
"PATH\t\tSet or show the search path\n"
"POPD\t\tRestores the directory to the last one saved with PUSHD\n"
"PROMPT\t\tChange the command prompt\n"
"PUSHD\t\tChanges to a new directory, saving the current one\n"
"REN (RENAME)\tRename a file\n"
"RD (RMDIR)\tDelete a subdirectory\n"
"SET\t\tSet or show environment variables\n"
"TIME\t\tSet or show the current system time\n"
"TITLE\t\tSet the window title for the CMD session\n"
"TYPE\t\tType the contents of a text file\n"
"VER\t\tShow the current version of CMD\n"
"VOL\t\tShow the volume label of a disk device\n"
"EXIT\t\tClose down CMD\n"
"\n"
"Enter HELP <command> for further information on any of the above commands\n"
msgstr ""
"Les commandes intégrées de CMD sont :\n"
"ATTRIB\t\tAffiche ou modifie les attributs de fichiers DOS\n"
"CALL\t\tInvoque un fichier batch à l'intérieur d'un autre\n"
"CD (CHDIR)\tChange le répertoire courant par défaut\n"
"CHOICE\t\tAttend l'appui d'une touche appartenant à une liste configurable\n"
"CLS\t\tEfface l'écran\n"
"COPY\t\tCopie un ou plusieurs fichiers\n"
"CTTY\t\tChange le périphérique d'entrée/sortie\n"
"DATE\t\tAffiche ou modifie la date système\n"
"DEL (ERASE)\tEfface un fichier ou un groupe de fichiers\n"
"DIR\t\tListe le contenu d'un répertoire\n"
"ECHO\t\tAffiche du texte sur la console\n"
"HELP\t\tAffiche de brefs détails sur l'utilisation d'une commande\n"
"MD (MKDIR)\tCrée un répertoire\n"
"MORE\t\tAffiche du texte par pages\n"
"MOVE\t\tDéplace un fichier, un groupe de fichiers ou un répertoire\n"
"PATH\t\tRègle ou affiche le chemin de recherche\n"
"POPD\t\tRemplace le répertoire courant par le dernier enregistré avec PUSHD\n"
"PROMPT\t\tChange l'invite de commande\n"
"PUSHD\t\tChange de répertoire en enregistrant le répertoire courant\n"
"REN (RENAME)\tRenomme un fichier\n"
"RD (RMDIR)\tEfface un répertoire\n"
"SET\t\tRègle ou affiche les variables d'environnement\n"
"TIME\t\tRègle ou affiche l'heure système courante\n"
"TITLE\t\tRègle le titre de la fenêtre pour la session CMD\n"
"TYPE\t\tAffiche le contenu d'un fichier texte\n"
"VER\t\tAffiche la version de cmd utilisée.\n"
"VOL\t\tAffiche le nom de volume d'un lecteur de disque\n"
"EXIT\t\tQuitte CMD\n"
"\n"
"Entrez HELP <commande> pour plus d'informations sur les commandes ci-dessus\n"

#: cmd.rc:255
msgid "Are you sure"
msgstr "Êtes-vous sûr"

#: cmd.rc:256
msgctxt "Yes key"
msgid "Y"
msgstr "O"

#: cmd.rc:257
msgctxt "No key"
msgid "N"
msgstr "N"

#: cmd.rc:258
msgid "File association missing for extension %s\n"
msgstr "Association de fichier manquante pour l'extension %s\n"

#: cmd.rc:259
msgid "No open command associated with file type '%s'\n"
msgstr ""
"Aucune commande d'ouverture n'est associée avec le type de fichier « %s »\n"

#: cmd.rc:260
msgid "Overwrite %s"
msgstr "Écraser %s"

#: cmd.rc:261
msgid "More..."
msgstr "Plus..."

#: cmd.rc:262
msgid "Line in Batch processing possibly truncated. Using:\n"
msgstr "Ligne du processus batch probablement tronquée. Utilisation de :\n"

#: cmd.rc:263
msgid ""
"Not Yet Implemented\n"
"\n"
msgstr ""
"Pas encore implémenté\n"
"\n"

#: cmd.rc:264
msgid "Argument missing\n"
msgstr "Argument manquant\n"

#: cmd.rc:265
msgid "Syntax error\n"
msgstr "Erreur de syntaxe\n"

#: cmd.rc:266
msgid "%s : File Not Found\n"
msgstr "%s : fichier non trouvé\n"

#: cmd.rc:267
msgid "No help available for %s\n"
msgstr "Pas d'aide disponible pour %s\n"

#: cmd.rc:268
msgid "Target to GOTO not found\n"
msgstr "La destination de l'instruction GOTO n'a pas été trouvée\n"

#: cmd.rc:269
msgid "Current Date is %s\n"
msgstr "La date courante est %s\n"

#: cmd.rc:270
msgid "Current Time is %s\n"
msgstr "L'heure courante est %s\n"

#: cmd.rc:271
msgid "Enter new date: "
msgstr "Saisissez la nouvelle date : "

#: cmd.rc:272
msgid "Enter new time: "
msgstr "Saisissez la nouvelle heure : "

#: cmd.rc:273
msgid "Environment variable %s not defined\n"
msgstr "La variable d'environnement %s n'est pas définie\n"

#: cmd.rc:274
msgid "Failed to open '%s'\n"
msgstr "Impossible d'ouvrir « %s »\n"

#: cmd.rc:275
msgid "Cannot call batch label outside of a batch script\n"
msgstr "Impossible d'appeler une étiquette de batch hors d'un script batch\n"

#: cmd.rc:276
msgctxt "All key"
msgid "A"
msgstr "T"

#: cmd.rc:277
msgid "%s, Delete"
msgstr "%s, Supprimer"

#: cmd.rc:278
msgid "Echo is %s\n"
msgstr "Echo est %s\n"

#: cmd.rc:279
msgid "Verify is %s\n"
msgstr "Verify est %s\n"

#: cmd.rc:280
msgid "Verify must be ON or OFF\n"
msgstr "Verify doit être ON ou OFF\n"

#: cmd.rc:281
msgid "Parameter error\n"
msgstr "Erreur de paramètre\n"

#: cmd.rc:282
msgid ""
"Volume in drive %c is %s\n"
"Volume Serial Number is %04x-%04x\n"
"\n"
msgstr ""
"Le volume dans le lecteur %c est %s\n"
"Le numéro de série du volume est %04x-%04x\n"
"\n"

#: cmd.rc:283
msgid "Volume label (11 characters, ENTER for none)?"
msgstr "Étiquette du volume (11 caractères, ENTRÉE pour aucun) ?"

#: cmd.rc:284
msgid "PATH not found\n"
msgstr "PATH non trouvé\n"

#: cmd.rc:285
msgid "Press Return key to continue: "
msgstr "Appuyez sur ENTRÉE pour continuer : "

#: cmd.rc:286
msgid "Wine Command Prompt"
msgstr "Invite de commande Wine"

#: cmd.rc:287
msgid ""
"CMD Version %s\n"
"\n"
msgstr ""
"CMD version %s\n"
"\n"

#: cmd.rc:288
msgid "More? "
msgstr "Plus ? "

#: cmd.rc:289
msgid "The input line is too long.\n"
msgstr "La ligne d'entrée est trop longue.\n"
