/*
 * Shell32
 * French language support
 *
 * Copyright 1998 Juergen Schmied
 * Copyright 2006-2009 Jonathan Ernst
 * Copyright 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 "shresdef.h"

LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL

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

MENU_001 MENU
BEGIN
	MENUITEM "&Grandes icônes",	FCIDM_SHVIEW_BIGICON
	MENUITEM "&Petites icônes",	FCIDM_SHVIEW_SMALLICON
	MENUITEM "&Liste",		FCIDM_SHVIEW_LISTVIEW
	MENUITEM "&Détails",		FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU
BEGIN
	POPUP ""
	BEGIN
	  POPUP "&Affichage"
	  BEGIN
	    MENUITEM "&Grandes icônes",	FCIDM_SHVIEW_BIGICON
	    MENUITEM "&Petites icônes",	FCIDM_SHVIEW_SMALLICON
	    MENUITEM "&Liste",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "&Détails",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "Trier les &icônes"
	  BEGIN
	    MENUITEM "Par &nom",	0x30	/* column 0 */
	    MENUITEM "Par &type",	0x32	/* column 2 */
	    MENUITEM "Par t&aille",	0x31	/* ... */
	    MENUITEM "Par &date",	0x33
	    MENUITEM SEPARATOR
	    MENUITEM "T&ri automatique",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "Aligner les icônes",	FCIDM_SHVIEW_SNAPTOGRID
	  MENUITEM SEPARATOR
	  MENUITEM "Actualiser",		FCIDM_SHVIEW_REFRESH
	  MENUITEM SEPARATOR
	  MENUITEM "Coller",			FCIDM_SHVIEW_INSERT
	  MENUITEM "Coller comme lien",	FCIDM_SHVIEW_INSERTLINK
	  MENUITEM SEPARATOR
	  POPUP "Nouveau"
	  BEGIN
	    MENUITEM "Nouveau d&ossier",	FCIDM_SHVIEW_NEWFOLDER
	    MENUITEM "Nouveau &lien",		FCIDM_SHVIEW_NEWLINK
	    MENUITEM SEPARATOR
	  END
	  MENUITEM SEPARATOR
	  MENUITEM "Propriétés",		FCIDM_SHVIEW_PROPERTIES
	END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "&Sélectionner"		FCIDM_SHVIEW_OPEN
	  MENUITEM "E&xplorer",		FCIDM_SHVIEW_EXPLORE
	  MENUITEM "&Ouvrir",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "Cou&per",		FCIDM_SHVIEW_CUT
	  MENUITEM "&Copier",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "Créer un &lien",	FCIDM_SHVIEW_CREATELINK
	  MENUITEM "&Supprimer",	FCIDM_SHVIEW_DELETE
	  MENUITEM "&Renommer",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "&Propriétés",	FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "&Fichier"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "&Quitter", IDM_CPANEL_EXIT
    END

    POPUP "&Affichage"
    BEGIN
        MENUITEM "&Grandes icônes", FCIDM_SHVIEW_BIGICON
        MENUITEM "&Petites icônes", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Liste", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Détails", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "Ai&de"
    BEGIN
        MENUITEM "À &propos du panneau de configuration...", IDM_CPANEL_ABOUT
    END
END

SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Parcourir les dossiers"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Annuler", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
 LTEXT "", IDD_TITLE, 4, 4, 180, 12
 LTEXT "", IDD_STATUS, 4, 25, 180, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	4, 40, 180, 120
}

SHNEWBRSFORFOLDER_MSGBOX DIALOG 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Parcourir les dossiers"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "Dossier :", IDD_FOLDER, 10, 156, 40, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	12, 38, 194, 105
 EDITTEXT IDD_FOLDERTEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Nouveau dossier", IDD_MAKENEWFOLDER, 12, 174, 70, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Annuler", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP
}

SHELL_YESTOALL_MSGBOX DIALOG 200, 100, 280, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Message"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Oui", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Oui pour &tous", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Non", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Annuler", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP
    ICON "", IDD_ICON, 10, 10, 16, 16
    LTEXT "", IDD_MESSAGE, 40, 10, 238, 52, 0
}

SHELL_ABOUT_MSGBOX DIALOG 15, 40, 230, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "À propos de %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 70, 12, WS_TABSTOP
 PUSHBUTTON "&Licence de Wine...", IDC_ABOUT_LICENSE, 153, 113, 70, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 42, 10, 137, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 42, 22, 137, 10
 LTEXT "Exécuté avec %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine est une réalisation de :", IDC_ABOUT_WINE_TEXT, 8, 55, 214, 10
}

SHELL_RUN_DLG DIALOG 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "Entrez le nom d'un programme, d'un dossier, d'un document ou d'une ressource Internet, et Wine l'ouvrira pour vous.", 12289, 36, 11, 182, 18
 LTEXT "&Ouvrir :", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Annuler", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Parcourir...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
        /* columns in the shellview */
	IDS_SHV_COLUMN1		"Fichier"
	IDS_SHV_COLUMN2		"Taille"
	IDS_SHV_COLUMN3		"Type"
	IDS_SHV_COLUMN4		"Modifié"
	IDS_SHV_COLUMN5		"Attributs"
	IDS_SHV_COLUMN6		"Capacité"
	IDS_SHV_COLUMN7		"Espace disponible"
	IDS_SHV_COLUMN8		"Nom"
	IDS_SHV_COLUMN9		"Commentaires"
	IDS_SHV_COLUMN10	"Propriétaire"
	IDS_SHV_COLUMN11	"Groupe"
	IDS_SHV_COLUMN_DELFROM	"Emplacement d'origine"
	IDS_SHV_COLUMN_DELDATE	"Date de suppression"
	IDS_SHV_COL_DOCS	"Documents"
	IDS_SHV_COL_STATUS	"Statut"
	IDS_SHV_COL_LOCATION	"Emplacement"
	IDS_SHV_COL_MODEL	"Modèle"

        /* special folders */
	IDS_DESKTOP		"Bureau"
	IDS_MYCOMPUTER		"Poste de travail"
	IDS_RECYCLEBIN_FOLDER_NAME      "Corbeille"
	IDS_CONTROLPANEL	"Panneau de configuration"

        /* context menus */
	IDS_VIEW_LARGE		"&Grandes icônes"
	IDS_VIEW_SMALL		"&Petites icônes"
	IDS_VIEW_LIST		"&Liste"
	IDS_VIEW_DETAILS	"&Détails"
	IDS_SELECT		"Sélectionner"
	IDS_OPEN		"Ouvrir"

	IDS_CREATEFOLDER_DENIED "Impossible de créer le dossier : permission refusée."
	IDS_CREATEFOLDER_CAPTION "Erreur lors de la création du dossier"
	IDS_DELETEITEM_CAPTION "Confirmez la suppression du fichier"
	IDS_DELETEFOLDER_CAPTION "Confirmez la suppression du dossier"
	IDS_DELETEITEM_TEXT "Êtes-vous sûr de vouloir supprimer « %1 » ?"
	IDS_DELETEMULTIPLE_TEXT "Êtes-vous sûr de vouloir supprimer ces %1 éléments ?"
	IDS_DELETESELECTED_TEXT "Êtes-vous sûr de vouloir supprimer le(s) élément(s) sélectionné(s) ?"
	IDS_TRASHITEM_TEXT "Êtes-vous sûr de vouloir mettre « %1 » dans la corbeille ?"
	IDS_TRASHFOLDER_TEXT "Êtes-vous sûr de vouloir mettre « %1 » et tout ce qu'il contient dans la corbeille ?"
	IDS_TRASHMULTIPLE_TEXT "Êtes-vous sûr de vouloir mettre ces %1 éléments dans la corbeille ?"
	IDS_CANTTRASH_TEXT "L'élément « %1 » ne peut être mis dans la corbeille. Souhaitez-vous plutôt le supprimer ?"
	IDS_OVERWRITEFILE_TEXT "Ce dossier contient déjà un fichier nommé « %1 ».\n\nVoulez-vous le remplacer ?"
	IDS_OVERWRITEFILE_CAPTION "Confirmez l'écrasement du fichier"
	IDS_OVERWRITEFOLDER_TEXT "Ce dossier contient déjà un dossier nommé « %1 ».\n\n"\
	    "Si des fichiers dans le dossier de destination ont le même nom que ceux dans le dossier\n"\
	    "sélectionné, ils seront écrasés. Voulez-vous quand même déplacer ou copier\n"\
	    "le dossier ?"

        /* message box strings */
       IDS_RESTART_TITLE       "Redémarrer"
       IDS_RESTART_PROMPT      "Voulez-vous simuler le redémarrage de Windows ?"
       IDS_SHUTDOWN_TITLE      "Arrêter"
       IDS_SHUTDOWN_PROMPT     "Voulez-vous clôturer la session Wine ?"

        /* Run File dialog */
        IDS_RUNDLG_ERROR           "Impossible d'afficher la boîte de dialogue « Exécuter » (erreur interne)"
        IDS_RUNDLG_BROWSE_ERROR    "Impossible d'afficher la boîte de dialogue « Parcourir » (erreur interne)"
        IDS_RUNDLG_BROWSE_CAPTION  "Parcourir"
        IDS_RUNDLG_BROWSE_FILTER   "Fichiers exécutables\0*.exe\0Tous les fichiers\0*.*\0\0"

/* shell folder path default values */
 IDS_PROGRAMS                "Menu Démarrer\\Programmes"
 IDS_PERSONAL                "Mes documents"
 IDS_FAVORITES               "Favoris"
 IDS_STARTUP                 "Menu Démarrer\\Programmes\\Démarrage"
 IDS_RECENT                  "Documents récents"
 IDS_SENDTO                  "Envoyer vers"
 IDS_STARTMENU               "Menu Démarrer"
 IDS_MYMUSIC                 "Ma musique"
 IDS_MYVIDEO                 "Mes vidéos"
 IDS_DESKTOPDIRECTORY        "Bureau"
 IDS_NETHOOD                 "Voisinage réseau"
 IDS_TEMPLATES               "Modèles"
 IDS_APPDATA                 "Application Data"
 IDS_PRINTHOOD               "Voisinage d'impression"
 IDS_LOCAL_APPDATA           "Local Settings\\Application Data"
 IDS_INTERNET_CACHE          "Local Settings\\Temporary Internet Files"
 IDS_COOKIES                 "Cookies"
 IDS_HISTORY                 "Local Settings\\Historique"
 IDS_PROGRAM_FILES           "Program Files"
 IDS_PROGRAM_FILESX86        "Program Files (x86)"
 IDS_MYPICTURES              "Mes images"
 IDS_PROGRAM_FILES_COMMON    "Program Files\\Fichiers communs"
 IDS_PROGRAM_FILES_COMMONX86 "Program Files (x86)\\Fichiers communs"
 IDS_COMMON_DOCUMENTS        "Documents"
 IDS_ADMINTOOLS              "Menu Démarrer\\Programmes\\Outils d'administration"
 IDS_COMMON_MUSIC            "Musique"
 IDS_COMMON_PICTURES         "Images"
 IDS_COMMON_VIDEO            "Vidéos"
 IDS_CDBURN_AREA             "Local Settings\\Application Data\\Microsoft\\CD Burning"
 IDS_CONTACTS                "Contacts"
 IDS_LINKS                   "Liens"
 IDS_PHOTO_ALBUMS            "Images\\Diaporamas"
 IDS_PLAYLISTS               "Musique\\Listes de lecture"
 IDS_PUBLIC_DOWNLOADS        "Téléchargements"
 IDS_PUBLIC_GAME_TASKS       "Microsoft\\Windows\\GameExplorer"
 IDS_PUBLIC_LIBRARIES        "Microsoft\\Windows\\Bibliothèques"
 IDS_PUBLIC_RINGTONES        "Microsoft\\Windows\\Sonneries"
 IDS_SAMPLE_MUSIC            "Musique\\Échantillons"
 IDS_SAMPLE_PICTURES         "Images\\Échantillons"
 IDS_SAMPLE_PLAYLISTS        "Musique\\Exemples de listes de lecture"
 IDS_SAMPLE_VIDEOS           "Vidéos\\Échantillons"
 IDS_SAVED_GAMES             "Jeux sauvegardés"
 IDS_SAVED_SEARCHES          "Recherches"
 IDS_USER_PROFILES           "Utilisateurs"
 IDS_COMMON_OEM_LINKS        "Liens OEM"
 IDS_DOCUMENTS               "Documents"
 IDS_DOWNLOADS               "Téléchargements"
 IDS_LOCAL_APPDATA_LOW       "AppData\\LocalLow"

 IDS_NEWFOLDER		"Nouveau dossier"

 IDS_CPANEL_TITLE            "Panneau de configuration de Wine"
 IDS_CPANEL_NAME             "Nom"
 IDS_CPANEL_DESCRIPTION      "Description"

 IDS_SHLEXEC_NOASSOC         "Aucun programme Windows n'est configuré pour ouvrir ce type de fichier."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Licence de Wine"
IDS_LICENSE,
"Wine est un logiciel libre ; vous pouvez le redistribuer et/ou \
le modifier suivant les termes de la Licence Générale Publique Limitée GNU \
telle que publiée par la Free Software Foundation ; soit la version 2.1 \
de la Licence, soit (à votre gré) toute version ultérieure.\n\n\
Wine est distribué dans l’espoir qu'il sera utile, mais \
SANS AUCUNE GARANTIE : sans même la garantie implicite de \
COMMERCIALISABILITÉ ou d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez \
la Licence Générale Publique Limitée pour plus de détails.\n\n\
Vous devriez avoir reçu une copie de la Licence Générale Publique Limitée \
GNU avec Wine ; si ce n’est pas le cas, écrivez à la : \
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, \
MA 02110-1301, USA."
}
