/*
 * Program Manager (Dutch resources)
 *
 * Copyright 2003 Hans Leidekker
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

/* Menu */

MAIN_MENU MENU LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
{
 POPUP "&Bestand" {
   MENUITEM "&Nieuw...",                    PM_NEW
   MENUITEM "&Openen\tEnter",               PM_OPEN
   MENUITEM "Ve&rplaatsen...\tF7",          PM_MOVE,      GRAYED
   MENUITEM "&Kopiëren...\tF8",             PM_COPY,      GRAYED
   MENUITEM "&Verwijderen\tEntf",           PM_DELETE
   MENUITEM "&Eigenschappen...\tAlt+Enter", PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "&Uitvoeren...",                PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "&Afsluiten...",                PM_EXIT
 }
 POPUP "&Opties" {
   MENUITEM "&Automatisch rangschikken",           PM_AUTO_ARRANGE
   MENUITEM "&Geminimaliseerd uitvoeren",          PM_MIN_ON_RUN
   MENUITEM "&Instellingen opslaan bij afsluiten", PM_SAVE_SETTINGS
 }
 POPUP "&Venster" {
   MENUITEM "&Trapsgewijs\tShift+F5",  PM_OVERLAP
   MENUITEM "&Naast elkaar\tShift+F4", PM_SIDE_BY_SIDE
   MENUITEM "&Pictogrammen schikken",  PM_ARRANGE
 }
 
POPUP "&Help" {
   MENUITEM "Help-&onderwerpen", PM_CONTENTS
   MENUITEM "&Zoeken...",        PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "&Hulp bij Help",    PM_HELPONHELP
   MENUITEM "&Instructie",       PM_TUTORIAL
   MENUITEM SEPARATOR

   POPUP "&Info..." {
     MENUITEM "&Licentie",      PM_LICENSE
     MENUITEM "&GEEN GARANTIE", PM_NO_WARRANTY
     MENUITEM "&Over WINE",     PM_ABOUT_WINE
   }
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Nieuw"
{
RADIOBUTTON   "",                PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "Pr&ogrammagroep", PM_NEW_GROUP,    20, 18,  80, 15
RADIOBUTTON   "",                PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "&Programma",      PM_NEW_PROGRAM,  20, 38,  80, 15
DEFPUSHBUTTON "OK",              IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuleren",       IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",           PM_HELP,        105, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Move' */

DIALOG_MOVE DIALOG 0, 0, 250, 65
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Programma verplaatsen"
{
LTEXT         "Verplaats programma:", IDIGNORE,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Van groep:",           IDIGNORE,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&Naar groep:",         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    "Annuleren",            IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",                PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Copy' */

DIALOG_COPY DIALOG 0, 0, 250, 65
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Programma kopiëren"
{
LTEXT         "Kopiëer programma:",    IDIGNORE,            5,  5,  90, 15
LTEXT         "",                      PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Van programmagroep:",   IDIGNORE,            5, 13,  90, 15
LTEXT         "",                      PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&Naar programmagroep:", 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    "Annuleren",             IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",                 PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Group attributes' */

DIALOG_GROUP DIALOG 0, 0, 230, 65
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Eigenschappen van de programmagroep"
{
LTEXT     "B&eschrijving:", PM_DESCRIPTION_TXT,   05, 18,  50, 10
EDITTEXT                    PM_DESCRIPTION,       60, 18,  90, 15, WS_TABSTOP
LTEXT     "&Groepbestand:", PM_FILE_TXT,          05, 38,  50, 10
EDITTEXT                    PM_FILE,              60, 38,  90, 15, WS_TABSTOP
DEFPUSHBUTTON "OK",         IDOK,                155,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuleren",  IDCANCEL,            155, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",      PM_HELP,             155, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Program attributes' */

DIALOG_PROGRAM DIALOG 0, 0, 250, 105
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Programma-eigenschappen"
{
LTEXT         "B&eschrijving:",             PM_DESCRIPTION_TXT,   05, 10,  60, 10
EDITTEXT                                    PM_DESCRIPTION,       80, 10,  90, 15, WS_TABSTOP
LTEXT         "&Opdrachtregel:",            PM_COMMAND_LINE_TXT,  05, 25,  60, 10
EDITTEXT                                    PM_COMMAND_LINE,      80, 25,  90, 15, WS_TABSTOP
LTEXT         "Werk&map:",                  PM_DIRECTORY_TXT,     05, 40,  60, 10
EDITTEXT                                    PM_DIRECTORY,         80, 40,  90, 15, WS_TABSTOP
LTEXT         "&Sneltoets:",                PM_HOT_KEY_TXT,       05, 55,  60, 10
EDITTEXT                                    PM_HOT_KEY,           80, 55,  90, 15, WS_TABSTOP
ICON          "",                           PM_ICON,              20, 70
CHECKBOX      "",                           PM_SYMBOL,            80, 75,  10, 10, WS_TABSTOP
LTEXT         "&Geminimaliseerd uitvoeren", IDIGNORE,             95, 75,  75, 10
DEFPUSHBUTTON "OK",                         IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuleren",                  IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Bladeren...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "Pictogram &wijzigen...",     PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",                      PM_HELP,             185, 85,  60, 15, WS_TABSTOP
}

/* Dialog `Symbol' */

DIALOG_SYMBOL DIALOG 0, 0, 200, 85
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Pictogram wijzigen"
{
LTEXT     "Bestands&naam:",     PM_ICON_FILE_TXT,    5, 15,  40, 10
EDITTEXT                        PM_ICON_FILE,       45, 15,  85, 15, WS_TABSTOP
LTEXT     "Hui&dig pictogram:", PM_SYMBOL_LIST_TXT,  5, 30, 125, 10
COMBOBOX                        PM_SYMBOL_LIST,      5, 40, 125, 50,
   CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_OWNERDRAWFIXED | WS_TABSTOP
DEFPUSHBUTTON "OK",              IDOK,              135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuleren",       IDCANCEL,          135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Bladeren...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",           PM_HELP,           135, 65,  60, 15, WS_TABSTOP
}

/* Dialog `Execute' */

DIALOG_EXECUTE DIALOG 0, 0, 200, 85
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME
CAPTION "Programma uitvoeren"
{
LTEXT         "&Opdrachtregel:",                IDIGNORE,   05, 15, 120, 10
EDITTEXT                                        PM_COMMAND, 05, 25, 120, 15, WS_TABSTOP
CHECKBOX      "",                               PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "&Minimaliseren bij het starten", IDIGNORE,   20, 45, 120, 10
DEFPUSHBUTTON "OK",                             IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Annuleren",                      IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Bladeren...",                   PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Help",                          PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE DISCARDABLE LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
{
IDS_PROGRAM_MANAGER,		"Programmabeheer"
IDS_ERROR,			"FOUT"
IDS_WARNING,			"WAARSCHUWING"
IDS_INFO,			"Informatie"
IDS_DELETE,			"Verwijderen"
IDS_DELETE_GROUP_s,		"Wilt u groep `%s' verwijderen?"
IDS_DELETE_PROGRAM_s,		"Wilt u programma `%s' verwijderen?"
IDS_NOT_IMPLEMENTED,		"Niet geïmplementeerd"
IDS_FILE_READ_ERROR_s,		"Fout bij het lezen van `%s'."
IDS_FILE_WRITE_ERROR_s,		"Fout bij het schrijven van `%s'."
IDS_GRPFILE_READ_ERROR_s,	"\
Het groepsbestand `%s' kan niet worden geopend.\n\
Wilt u het nogmaals proberen?"
IDS_OUT_OF_MEMORY,		"Geen geheugen beschikbaar."
IDS_WINHELP_ERROR,		"Help is niet beschikbaar."
IDS_UNKNOWN_FEATURE_s,		"Onbekende eigenschap in %s"
IDS_FILE_NOT_OVERWRITTEN_s,	"Het bestand `%s' bestaat reeds. Het is niet overschreven."
IDS_SAVE_GROUP_AS_s,		"Groep opslaan als `%s om het overschrijven van originele bestanden te voorkomen."
IDS_NO_HOT_KEY,			"Geen"
IDS_ALL_FILES,			"Alle bestanden (*.*)"
IDS_PROGRAMS,			"Programma's"
IDS_LIBRARIES_DLL,		"Programmabibliotheekbestanden (*.dll)"
IDS_SYMBOL_FILES,		"Pictogrambestanden"
IDS_SYMBOLS_ICO,		"Pictogrammen (*.ico)"
}
