/*
 * Program Manager
 *
 * Copyright 1996 Ulrich Schmid
 * French Fr.rc by Pablo Saratxaga
 * Copyright 2002 Sylvain Petreolle
 * Copyright 2006 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 "progman.h"

LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL

#pragma code_page(65001)

/* Menu */

MAIN_MENU MENU
{
 POPUP "&Fichier" {
   MENUITEM "&Nouveau...",              PM_NEW
   MENUITEM "O&uvrir\tEntrée",             PM_OPEN
   MENUITEM "&Déplacer...\tF7",             PM_MOVE,      GRAYED
   MENUITEM "&Copier...\tF8",             PM_COPY,      GRAYED
   MENUITEM "&Supprimer\tSuppr",           PM_DELETE
   MENUITEM "&Propriétés...\tAlt+Entrée",       PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "E&xécuter...",          PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "&Quitter Windows...",             PM_EXIT
 }
 POPUP "&Options" {
   MENUITEM "Réorg&anisation automatique",  PM_AUTO_ARRANGE
   MENUITEM "&Réduire à l'utilisation",    PM_MIN_ON_RUN
   MENUITEM "&Enregistrer la configuration en quittant", PM_SAVE_SETTINGS
 }
 POPUP "F&enêtres" {
   MENUITEM "&Cascade\tMaj+F5",       PM_OVERLAP
   MENUITEM "&Mosaïque\tMaj+F4",  PM_SIDE_BY_SIDE
   MENUITEM "&Réorganiser les icônes",       PM_ARRANGE
 }
 
 POPUP "Aid&e" {
   MENUITEM "&Sommaire",         PM_CONTENTS
   MENUITEM "&Rechercher...",           PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "&Utiliser l'aide",     PM_HELPONHELP
   MENUITEM "Didacticiel &Windows",         PM_TUTORIAL
   MENUITEM SEPARATOR

   POPUP "&Info..." {
     MENUITEM "AUCUNE &GARANTIE",    PM_NO_WARRANTY
     MENUITEM "À &propos de Wine",     PM_ABOUT_WINE
   }
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Nouveau"
{
RADIOBUTTON   "",                 PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "&Groupe de programmes",   -1,    20, 18,  80, 15
RADIOBUTTON   "",                 PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "&Programme", -1,  20, 38,  80, 15
DEFPUSHBUTTON "OK",          IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",      IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",        PM_HELP,        105, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Move' */

DIALOG_MOVE DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Déplacer un programme"
{
LTEXT         "Déplacer le programme :",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "À partir du groupe :", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&Vers le groupe :",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Copy' */

DIALOG_COPY DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Copier un programme"
{
LTEXT         "Copier le programme :",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "À partir du groupe :", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&Vers le groupe :",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Group attributes' */

DIALOG_GROUP DIALOG 0, 0, 230, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propriétés de groupe"
{
LTEXT     "&Nom :", PM_DESCRIPTION_TXT,   05, 20,  59, 10
EDITTEXT                            PM_DESCRIPTION,       70, 18,  90, 15, WS_TABSTOP
LTEXT     "&Fichier du groupe :",        PM_FILE_TXT,          05, 40,  63, 10
EDITTEXT                            PM_FILE,              70, 38,  90, 15, WS_TABSTOP
DEFPUSHBUTTON "OK",            IDOK,                165,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",        IDCANCEL,            165, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",          PM_HELP,             165, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Program attributes' */

DIALOG_PROGRAM DIALOG 0, 0, 250, 105
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propriétés de programme"
{
LTEXT         "&Nom :",  PM_DESCRIPTION_TXT,   05, 11,  60, 10
EDITTEXT                                   PM_DESCRIPTION,       80, 10,  90, 15, WS_TABSTOP
LTEXT         "&Ligne de commande :", PM_COMMAND_LINE_TXT,  05, 26,  74, 10
EDITTEXT                                   PM_COMMAND_LINE,      80, 25,  90, 15, WS_TABSTOP
LTEXT         "Répertoire de tra&vail :",    PM_DIRECTORY_TXT,     05, 42,  74, 10
EDITTEXT                                   PM_DIRECTORY,         80, 40,  90, 15, WS_TABSTOP
LTEXT         "&Touche de raccourci :",      PM_HOT_KEY_TXT,       05, 56,  74, 10
EDITTEXT                                   PM_HOT_KEY,           80, 55,  90, 15, WS_TABSTOP
ICON          "",                          PM_ICON,              20, 72
CHECKBOX      "",                          PM_SYMBOL,            80, 75,  10, 10, WS_TABSTOP
LTEXT         "Réduire à l'&utilisation",       -1,             95, 75,  75, 10
DEFPUSHBUTTON "OK",                   IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",               IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Pa&rcourir...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Changer l'icône...", PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",                 PM_HELP,             185, 85,  60, 15, WS_TABSTOP
}

/* Dialog `Symbol' */

DIALOG_SYMBOL DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Changer l'icône"
{
LTEXT     "&Nom du fichier :",    PM_ICON_FILE_TXT,    5, 7,  56, 10
EDITTEXT                         PM_ICON_FILE,       5, 16, 124, 14, WS_TABSTOP
LTEXT     "Icône a&ctuelle :", PM_SYMBOL_LIST_TXT,  5, 33, 125, 10
COMBOBOX                         PM_SYMBOL_LIST,      5, 43, 125, 50,
   CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_OWNERDRAWFIXED | WS_TABSTOP
DEFPUSHBUTTON "OK",         IDOK,              135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",     IDCANCEL,          135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Pa&rcourir...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",       PM_HELP,           135, 65,  60, 15, WS_TABSTOP
}

/* Dialog `Execute' */

DIALOG_EXECUTE DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Exécuter un programme"
{
LTEXT     "&Ligne de commande :", -1,   05, 15, 120, 10
EDITTEXT                               PM_COMMAND, 05, 25, 120, 15, WS_TABSTOP
CHECKBOX      "",                      PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "Réduire à l'&utilisation",   -1,   18, 46, 106, 10
DEFPUSHBUTTON "OK",               IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuler",           IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "Pa&rcourir...",          PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "Aid&e",             PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE DISCARDABLE
{
IDS_PROGRAM_MANAGER,		"Gestionnaire de programmes"
IDS_ERROR,			"ERREUR"
IDS_WARNING,			"ATTENTION"
IDS_INFO,			"Information"
IDS_DELETE,			"Supprimer"
IDS_DELETE_GROUP_s,		"Voulez-vous supprimer le groupe « %s » ?"
IDS_DELETE_PROGRAM_s,		"Voulez-vous supprimer le programme « %s » ?"
IDS_NOT_IMPLEMENTED,		"Non implémenté"
IDS_FILE_READ_ERROR_s,		"Impossible d'ouvrir « %s »."
IDS_FILE_WRITE_ERROR_s,		"Impossible d'enregistrer « %s »."
IDS_GRPFILE_READ_ERROR_s,	"\
Impossible d'ouvrir le groupe « %s ».\n\
Voulez-vous que le Gestionnaire de programmes essaie\n\
de l'ouvrir dans les prochaines sessions ?"
IDS_OUT_OF_MEMORY,		"Mémoire insuffisante."
IDS_WINHELP_ERROR,		"Impossible d'afficher l'aide."
IDS_UNKNOWN_FEATURE_s,		"Caractéristique inconnue dans %s"
IDS_FILE_NOT_OVERWRITTEN_s,	"Le fichier « %s » existe. Non écrasé."
IDS_SAVE_GROUP_AS_s,		"Groupe enregistré sous « %s » pour éviter l'écrasement du fichier original."
IDS_NO_HOT_KEY,			"Aucun"
IDS_ALL_FILES,			"Tous fichiers (*.*)"
IDS_PROGRAMS,			"Programmes"
IDS_LIBRARIES_DLL,		"Bibliothèques (*.dll)"
IDS_SYMBOL_FILES,		"Icônes"
IDS_SYMBOLS_ICO,		"Icônes (*.ico)"
}

STRINGTABLE DISCARDABLE
{
IDS_WARRANTY_CAPTION, "AUCUNE GARANTIE"
IDS_WARRANTY,
"Ce programme 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."
}
