/*
 * Wine command prompt
 * French Language Support
 *
 * Copyright 2003 Sylvain Petreolle
 * Copyright 2007 Jonathan Ernst
 * Copyright 2009-2010 Frédéric Delanoy
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "wcmd.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL

STRINGTABLE
{
  WCMD_ATTRIB, "ATTRIB affiche ou modifie les attributs de fichiers DOS.\n"
  WCMD_CALL,
"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"

  WCMD_CD,     "CD <rép> est la version courte de CHDIR. Elle change le\
répertoire courant par défaut.\n"
  WCMD_CHDIR,  "CHDIR <rép> change le répertoire courant par défaut.\n"

  WCMD_CLS,
"CLS efface l'écran de la console.\n"

  WCMD_COPY,   "COPY copie un ou plusieurs fichiers.\n"
  WCMD_CTTY,   "CTTY change le périphérique d'entrée/sortie.\n"
  WCMD_DATE,   "DATE affiche ou modifie la date système.\n"
  WCMD_DEL,    "DEL <fichiers> efface un fichier ou un groupe de fichiers.\n"
  WCMD_DIR,    "DIR liste le contenu d'un répertoire.\n"

  WCMD_ECHO,
"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"

  WCMD_ERASE,  "ERASE <fichiers> efface un ou plusieurs fichiers.\n"

  WCMD_FOR,
"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"

  WCMD_GOTO,
"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"

  WCMD_HELP,   "Affiche une brève aide sur les commandes internes de CMD\n"

  WCMD_IF,
"IF est utilisé pour exécuter une commande de façon conditionnelle.\n\
\n\
Syntaxe :	IF [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"

  WCMD_LABEL,  "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"

  WCMD_MD,     "MD est la version courte de MKDIR. Elle crée un répertoire.\n"
  WCMD_MKDIR,  "MKDIR <rép> crée un répertoire.\n"
  WCMD_MOVE,
"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"

  WCMD_PATH,
"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"

  WCMD_PAUSE,
"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"

  WCMD_PROMPT,
"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"

  WCMD_REM,
"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"

  WCMD_REN,    "REN est la version courte de RENAME. Elle renomme un fichier.\n"
  WCMD_RENAME, "RENAME renomme un fichier.\n"
  WCMD_RD,     "RD est la version courte de RMDIR. Elle efface un répertoire.\n"
  WCMD_RMDIR,  "RMDIR efface un sous-répertoire.\n"

  WCMD_SET,
"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"

  WCMD_SHIFT,
"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"

  WCMD_TIME,   "TIME règle ou affiche l'heure système courante.\n"

  WCMD_TITLE,
"Définit le titre de la fenêtre pour la session cmd, Syntaxe : TITLE [chaîne]\n"

  WCMD_TYPE,
"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"

  WCMD_VERIFY,
"VERIFY est utilisé pour positionner, effacer ou tester l'indicateur de vérification.\n\
\n\
Les formes suivantes sont correctes :\n\
VERIFY ON	Positionne l'indicateur\n\
VERIFY OFF	Efface 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"

  WCMD_VER,
"VER affiche la version de cmd utilisée.\n"

  WCMD_VOL,    "Aide de VOL\n"

  WCMD_PUSHD,  "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"

  WCMD_POPD,   "POPD change le répertoire courant par le dernier enregistré à l'aide de\n\
PUSHD.\n"

  WCMD_MORE,   "MORE affiche le contenu de fichiers ou l'entrée standard par pages.\n"

  WCMD_EXIT,
"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"

  WCMD_ALLHELP, "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\
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"

  WCMD_CONFIRM, "Êtes-vous sûr"
  WCMD_YES, "O"
  WCMD_NO, "N"
  WCMD_NOASSOC, "Association de fichier manquante pour l'extension %s\n"
  WCMD_NOFTYPE, "Aucune commande d'ouverture n'est associée avec le type de fichier « %s »\n"
  WCMD_OVERWRITE, "Écraser %s"
  WCMD_MORESTR, "Plus..."
  WCMD_TRUNCATEDLINE, "Ligne du processus batch probablement tronquée. Utilisation de :\n"
  WCMD_NYI, "Pas encore implémenté\n\n"
  WCMD_NOARG, "Argument manquant\n"
  WCMD_SYNTAXERR, "Erreur de syntaxe\n"
  WCMD_FILENOTFOUND, "%s : fichier non trouvé\n"
  WCMD_NOCMDHELP, "Pas d'aide disponible pour %s\n"
  WCMD_NOTARGET, "La destination de l'instruction GOTO n'a pas été trouvée\n"
  WCMD_CURRENTDATE, "La date courante est %s\n"
  WCMD_CURRENTTIME, "L'heure courante est %s\n"
  WCMD_NEWDATE, "Saisissez la nouvelle date : "
  WCMD_NEWTIME, "Saisissez la nouvelle heure : "
  WCMD_MISSINGENV, "La variable d'environnement %s n'est pas définie\n"
  WCMD_READFAIL, "Impossible d'ouvrir « %s »\n"
  WCMD_CALLINSCRIPT, "Impossible d'appeler une étiquette de batch hors d'un script batch\n"
  WCMD_ALL, "T"
  WCMD_DELPROMPT, "%s, Supprimer"
  WCMD_ECHOPROMPT, "Echo est %s\n"
  WCMD_VERIFYPROMPT, "Verify est %s\n"
  WCMD_VERIFYERR, "Verify doit être ON ou OFF\n"
  WCMD_ARGERR, "Erreur de paramètre\n"
  WCMD_VOLUMEDETAIL, "Le volume dans le lecteur %c est %s\nLe numéro de série du volume est %04x-%04x\n\n"
  WCMD_VOLUMEPROMPT, "Étiquette du volume (11 caractères, ENTRÉE pour aucun) ?"
  WCMD_NOPATH, "PATH non trouvé\n"
  WCMD_ANYKEY,"Appuyez sur ENTRÉE pour continuer : "
  WCMD_CONSTITLE,"Invite de commande Wine"
  WCMD_VERSION,"CMD version %s\n\n"
  WCMD_MOREPROMPT, "Plus ? "
  WCMD_LINETOOLONG, "La ligne d'entrée est trop longue.\n"
}
