/*
 *  Task Manager
 *  French Language Support
 *
 *  Copyright 2005-2006 Jonathan Ernst
 *  Copyright 2009 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 "resource.h"

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

LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL

/*
 Dialog
*/

IDD_TASKMGR_DIALOG DIALOG  0, 0, 264, 246
STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
    WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
    WS_THICKFRAME
CAPTION "Gestionnaire des tâches"
MENU IDR_TASKMANAGER
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228
END

IDD_APPLICATION_PAGE DIALOG  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_APPLIST,"SysListView32",LVS_REPORT |
                    LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177
    PUSHBUTTON      "&Nouvelle tâche",IDC_NEWTASK,187,189,55,14
    PUSHBUTTON      "&Basculer vers",IDC_SWITCHTO,129,189,55,14,WS_DISABLED
    PUSHBUTTON      "&Fin de tâche",IDC_ENDTASK,71,189,55,14,WS_DISABLED
END

IDD_PROCESS_PAGE DIALOG  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT |
                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA |
                    WS_BORDER | WS_TABSTOP,7,7,233,177
    PUSHBUTTON      "&Terminer le processus",IDC_ENDPROCESS,161,189,79,14
    CONTROL         "Afficher les processus de &tous les utilisateurs",IDC_SHOWALLPROCESSES,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,161,10
END

IDD_PERFORMANCE_PAGE DIALOGEX  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        "Util. processeur",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT
    GROUPBOX        "Util. mémoire",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT
    GROUPBOX        "Totaux",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT
    GROUPBOX        "Charge dédiée (Kio)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT
    GROUPBOX        "Mémoire physique (Kio)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT
    GROUPBOX        "Mémoire pour le noyau (Kio)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT
    LTEXT           "Handles",IDS_TOTALS_HANDLE_COUNT,12,131,27,8
    LTEXT           "Threads",IDS_TOTALS_THREAD_COUNT,12,140,27,8
    LTEXT           "Processus",IDS_TOTALS_PROCESS_COUNT,12,149,34,8
    EDITTEXT        IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    LTEXT           "Total",IDS_COMMIT_CHARGE_TOTAL,12,175,34,8
    LTEXT           "Limite",IDS_COMMIT_CHARGE_LIMIT,12,184,34,8
    LTEXT           "Pic",IDS_COMMIT_CHARGE_PEAK,12,193,34,8
    EDITTEXT        IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    LTEXT           "Total",IDS_PHYSICAL_MEMORY_TOTAL,137,131,50,8
    LTEXT           "Disponible",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,50,8
    LTEXT           "Cache système",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,50,8
    EDITTEXT        IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    LTEXT           "Total",IDS_KERNEL_MEMORY_TOTAL,137,174,44,8
    LTEXT           "Paginée",IDS_KERNEL_MEMORY_PAGED,137,184,44,8
    LTEXT           "Non paginée",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8
    EDITTEXT        IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    EDITTEXT        IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT |
                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
    GROUPBOX        "Historique de l'utilisation du processeur",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT
    GROUPBOX        "Historique de l'utilisation de la mémoire",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT
    PUSHBUTTON      "Affichage de l'utilisation du processeur",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,
		    WS_EX_CLIENTEDGE
    PUSHBUTTON      "Affichage de l'utilisation de la mémoire",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,
                    WS_EX_CLIENTEDGE
    PUSHBUTTON      "Historique de l'utilisation du processeur",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
                    153,37,0,WS_EX_CLIENTEDGE
    PUSHBUTTON      "Historique de l'utilisation de la mémoire",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
                    153,37,0,WS_EX_CLIENTEDGE
END

IDD_DEBUG_CHANNELS_DIALOG DIALOG  0, 0, 247, 210
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Canaux de débogage"
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT |
                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP |
		    LVS_SORTASCENDING,7,7,233,177
    PUSHBUTTON      "Fermer",IDOK,171,189,69,14
END

IDD_AFFINITY_DIALOG DIALOG  0, 0, 231, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Affinité du processeur"
FONT 8, "MS Shell Dlg"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,120,133,50,14
    PUSHBUTTON      "Annuler",IDCANCEL,174,133,50,14
    LTEXT           "Le paramètre « affinité du processeur » détermine sur quels processeurs le processus pourra s'exécuter.",
                    IDC_STATIC,5,5,220,16
    CONTROL         "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
                    11,28,37,10
    CONTROL         "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,41,37,10
    CONTROL         "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,54,37,10
    CONTROL         "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,67,37,10
    CONTROL         "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,80,37,10
    CONTROL         "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,93,37,10
    CONTROL         "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,106,37,10
    CONTROL         "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,11,119,37,10
    CONTROL         "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,61,28,37,10
    CONTROL         "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
                    WS_TABSTOP,61,41,37,10
    CONTROL         "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,54,41,10
    CONTROL         "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,67,41,10
    CONTROL         "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,80,41,10
    CONTROL         "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,93,41,10
    CONTROL         "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,106,41,10
    CONTROL         "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,61,119,41,10
    CONTROL         "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,28,41,10
    CONTROL         "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,41,41,10
    CONTROL         "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,54,41,10
    CONTROL         "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,67,41,10
    CONTROL         "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,80,41,10
    CONTROL         "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,93,41,10
    CONTROL         "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,106,41,10
    CONTROL         "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,116,119,41,10
    CONTROL         "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,28,41,10
    CONTROL         "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,41,41,10
    CONTROL         "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,54,41,10
    CONTROL         "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,67,41,10
    CONTROL         "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,80,41,10
    CONTROL         "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,93,41,10
    CONTROL         "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,106,41,10
    CONTROL         "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,175,119,41,10
END

IDD_COLUMNS_DIALOG DIALOG  0, 0, 218, 199
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Sélection des colonnes"
FONT 8, "MS Shell Dlg"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,84,178,50,14
    PUSHBUTTON      "Annuler",IDCANCEL,138,178,50,14
    LTEXT           "Sélectionnez les colonnes qui apparaîtront dans la page Processus du Gestionnaire des tâches.",
                    IDC_STATIC,7,7,181,17
    CONTROL         "Nom de l'&image",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,7,28,66,10
    CONTROL         "&PID (ident. de processus)",IDC_PID,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,39,94,10
    CONTROL         "Uti&lisation du processeur",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,50,93,10
    CONTROL         "T&emps processeur",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,61,70,10
    CONTROL         "Utilisation &mémoire",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,72,73,10
    CONTROL         "Écart &d'utilisation mémoire",IDC_MEMORYUSAGEDELTA,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,83,95,10
    CONTROL         "Ma&x. utilisation mémoire",IDC_PEAKMEMORYUSAGE,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,94,98,10
    CONTROL         "Défauts de pa&ges",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,105,73,10
    CONTROL         "Objets &USER",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,116,62,10
    CONTROL         "Lectures E/S",IDC_IOREADS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,127,59,10
    CONTROL         "Octets de lecture E/S",IDC_IOREADBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,138,80,10
    CONTROL         "Identi&ficateur de session",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,149,91,10
    CONTROL         "&Nom de l'utilisateur",IDC_USERNAME,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,160,81,10
    CONTROL         "É&cart de défauts de pages",IDC_PAGEFAULTSDELTA,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,28,106,10
    CONTROL         "Taille de la mémoire &virtuelle",IDC_VIRTUALMEMORYSIZE,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,39,102,10
    CONTROL         "Réserve pa&ginée",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,50,73,10
    CONTROL         "Réserve n&on paginée",IDC_NONPAGEDPOOL,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,61,80,10
    CONTROL         "P&riorité de base",IDC_BASEPRIORITY,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,72,65,10
    CONTROL         "Nombre de &handles",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,83,79,10
    CONTROL         "Nombre de &threads",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,94,79,10
    CONTROL         "Ob&jets GDI",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,105,55,10
    CONTROL         "Écritures E/S",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,116,59,10
    CONTROL         "Octets d'écriture E/S",IDC_IOWRITEBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,127,80,10
    CONTROL         "Autres E/S",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,107,138,46,10
    CONTROL         "Octets d'autres E/S",IDC_IOOTHERBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,107,149,75,10
END
