/*
 * WineFile
 * French Language Support
 *
 * Copyright 2000 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 * Copyright 2003 Sylvain Petreolle
 * Copyright 2005-2008 Jonathan Ernst
 *
 * 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 "resource.h"

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

LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL

/* Menu */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Fichier"  {
        MENUITEM "&Ouvrir\tEntrée",             ID_ACTIVATE
        MENUITEM "&Déplacer...\tF7",            ID_FILE_MOVE
        MENUITEM "&Copier...\tF8",              ID_FILE_COPY
        MENUITEM "P&resse-papiers...\tF9",      118
        MENUITEM "&Effacer\tSuppr",               ID_FILE_DELETE
        MENUITEM "Re&nommer...",                109
        MENUITEM "&Propriétés...\tAlt+Entrée", ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "Co&mpresser...",              119
        MENUITEM "Décompre&sser...",            120
        MENUITEM SEPARATOR
        MENUITEM "E&xécuter...",                ID_EXECUTE
        MENUITEM "&Imprimer...",                102
        MENUITEM "&Associer...",                103
        MENUITEM SEPARATOR
        MENUITEM "Créer réper&toire...",        111
        MENUITEM "Rec&hercher...",              104
        MENUITEM "Sélectionner &fichiers...",   116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "&Quitter\tAlt+X",             ID_FILE_EXIT
#else
        MENUITEM "&Quitter",                    ID_FILE_EXIT
#endif
    }

    POPUP "&Disque"  {
        MENUITEM "&Copier disque...",           201
        MENUITEM "&Nommer disque...",           202
        MENUITEM SEPARATOR
        MENUITEM "&Formater disque...",         ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "Créer un disque &système...", -1  /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Connecter un lecteur &réseau",ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Déconnecter un lecteur réseau",ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "&Partager...",                254
        MENUITEM "Cesser de parta&ger",         255
        MENUITEM SEPARATOR
        MENUITEM "Choisir le &lecteur",         251
    }

    POPUP "&Répertoires"  {
        MENUITEM "&Développer un niveau\t+",    301
        MENUITEM "Développer une &branche\t*",  302
        MENUITEM "&Tout développer\tCtrl+*",    303
        MENUITEM "&Réduire une branche\t-",     304
        MENUITEM SEPARATOR
        MENUITEM "&Marquer l'arborescence",     505
    }

    POPUP "&Affichage"  {
        MENUITEM "Ar&bre et répertoire",        413
        MENUITEM "&Arbre seulement",            411
        MENUITEM "&Répertoire seulement",       412
        MENUITEM SEPARATOR
        MENUITEM "&Séparer",                    ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Nom",                        ID_VIEW_NAME
        MENUITEM "Tous &les détails",           ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Détails...",                 ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "Trier par n&om",              ID_VIEW_SORT_NAME
        MENUITEM "Trier par &type",             ID_VIEW_SORT_TYPE
        MENUITEM "Trier par ta&ille",           ID_VIEW_SORT_SIZE
        MENUITEM "Trier par dat&e",             ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Trier &par...",               ID_VIEW_FILTER
    }

    POPUP "&Options"  {
        MENUITEM "&Confirmation...",            501
        MENUITEM "&Police...",                  ID_SELECT_FONT
        MENUITEM "Personnaliser la &barre d'outils...", 512
        MENUITEM SEPARATOR
        MENUITEM "Barre d'&outils",             ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Barre de &lecteur",           ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "Barre d'&état",               ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "P&lein écran\tCtrl+Shift+S",  ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Réduire à l'utilisation",    504
        MENUITEM "&Enregistrer la configuration en quittant",511
    }


    POPUP "&Sécurité"  {
        MENUITEM "&Accès...",                   605
        MENUITEM "&Journalisation...",          606
        MENUITEM "&Propriétaire...",            607
    }

    POPUP "Fe&nêtre"  {
        MENUITEM "Nouvelle &fenêtre",           ID_WINDOW_NEW
        MENUITEM "&En cascade\tCtrl+F5",        ID_WINDOW_CASCADE
        MENUITEM "Mosaïque &horizontale",       ID_WINDOW_TILE_HORZ
        MENUITEM "Mosaïque &verticale\tCtrl+F4",ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Réorganisation aut&omatique", ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Réorganiser les &icônes",     ID_WINDOW_ARRANGE
        MENUITEM "&Actualiser\tF5",             ID_REFRESH
    }

    POPUP "Aid&e"  {
        MENUITEM "&Sommaire de l'aide\tF1",     ID_HELP
        MENUITEM "&Rechercher dans l'aide\tF1", ID_HELP
        MENUITEM "&Utiliser l'aide\tF1",        ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "À &propos de Winefile",    ID_ABOUT
    }
}


IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Exécuter"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Commande :", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    CONTROL         "Sous forme d'icône", 214, "Button", BS_AUTOCHECKBOX|WS_TABSTOP,3, 45, 75, 12
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Annuler", 2, 158, 23, 47, 14
    PUSHBUTTON      "Aid&e", 254, 158, 43, 47, 14
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Sélectionner la destination"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Chemin :", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Annuler", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Parcourir...", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Par type de fichier"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Nom :",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Type de fichier ",-1,7,23,87,59
    CONTROL         "&Répertoires",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,34,70,10
    CONTROL         "&Programmes",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,45,70,10
    CONTROL         "Docu&ments",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,56,70,10
    CONTROL         "&Autres fichiers",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,67,70,10
    CONTROL         "Montrer les fichiers cachés/&système",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,86,130,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Annuler",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propriétés de %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Annuler",IDCANCEL,191,25,50,14
    LTEXT           "Nom du &fichier :",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Chemin com&plet :",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Modification :",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Version :",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Cop&yright :",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Taille :",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Attributs",-1,7,79,158,46
    CONTROL         "Lectu&re seule",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "Cac&hé",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archive",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Système",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Compressé",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Informations de version",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Application des réglages des polices"
    IDS_FONT_SEL_ERROR      "Erreur lors de la sélection de la nouvelle police."
}

STRINGTABLE
{
    IDS_WINEFILE            "Winefile"
    IDS_ERROR               "Erreur"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Bureau"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Pas encore implémenté"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "Nom"
    IDS_COL_SIZE            "Taille"
    IDS_COL_CDATE           "Dernier changement de statut (ctime)"
    IDS_COL_ADATE           "Dernier accès"
    IDS_COL_MDATE           "Dernière modification"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Liens"
    IDS_COL_ATTR            "Attributs"
    IDS_COL_SEC             "Sécurité"

    IDS_FREE_SPACE_FMT      "%s sur %s libre"
}
