/*
 * WineFile (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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "resource.h"

LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL

#pragma code_page(65001)

/* Menu */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Bestand"  {
        MENUITEM "&Openen\tEnter",              ID_ACTIVATE
        MENUITEM "&Verplaatsen...\tF7",         ID_FILE_MOVE
        MENUITEM "&Kopiëren...\tF8",            ID_FILE_COPY
        MENUITEM "Naar klem&bord...\tF9",       118
        MENUITEM "Ver&wijderen\tDel",           ID_FILE_DELETE
        MENUITEM "&Naam wijzigen...",           109
        MENUITEM "&Eigenschappen...\tAlt+Enter",ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "&Comprimeren...",             119
        MENUITEM "&Dec&omprimeren...",          120
        MENUITEM SEPARATOR
        MENUITEM "&Starten...",                 ID_RUN
        MENUITEM "Af&drukken...",               102
        MENUITEM "Koppelen...",                 103
        MENUITEM SEPARATOR
        MENUITEM "Nieuwe &map...",              111
        MENUITEM "&Zoeken...",                  104
        MENUITEM "Bestanden s&electeren...",    116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "&Afsluiten\tAlt+X",           ID_FILE_EXIT
#else
        MENUITEM "&Afsluiten",                  ID_FILE_EXIT
#endif
    }

    POPUP "&Disk"  {
        MENUITEM "Schijf &kopiëren...",         201
        MENUITEM "Schijflabel maken...",        202
        MENUITEM SEPARATOR
        MENUITEM "Schijf &formatteren...",      ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "Systeemschijf maken...",      -1 /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Verbinding &maken met netwerkchijf",ID_CONNECT_NETWORK_DRIVE
        MENUITEM "Verbinding &verbreken met netwerkschijf",ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Schijf &delen...",            254
        MENUITEM "Delen &ongedaan maken...",    255
        MENUITEM SEPARATOR
        MENUITEM "Schijf &selecteren...",       251
    }

    POPUP "&Mappen"  {
        MENUITEM "&Volgende niveau\t+",         301
        MENUITEM "&Uitklappen\t*",              302
        MENUITEM "&Alles uitklappen\tCtrl+*",   303
        MENUITEM "&Inklappen\t-",               304
        MENUITEM SEPARATOR
        MENUITEM "&Markeer mappen",             505
    }

    POPUP "&Beeld"  {
        MENUITEM "&Hiërarchie en mapinhoud",    413
        MENUITEM "Alleen h&iërarchie",          411
        MENUITEM "Alleen &mapinhoud",           412
        MENUITEM SEPARATOR
        MENUITEM "Sp&litsen",                   ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Naam",                       ID_VIEW_NAME
        MENUITEM "&Alle details",               ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Gedeeltelijke details...",   ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Sorteer op naam",            ID_VIEW_SORT_NAME
        MENUITEM "Sorteer op &type",            ID_VIEW_SORT_TYPE
        MENUITEM "Sorteer op &grootte",         ID_VIEW_SORT_SIZE
        MENUITEM "Sorteer op &datum",           ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Sorteer op &...",             ID_VIEW_FILTER
    }

    POPUP "&Opties"  {
        MENUITEM "&Bevestiging...",             501
        MENUITEM "&Lettertype...",              ID_SELECT_FONT
        MENUITEM "Gereedschapsbalk &aanpassen...", 512
        MENUITEM SEPARATOR
        MENUITEM "&Gereedschapsbalk",           ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "&Schijfbalk",                 ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "S&tatusbalk",                 ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "&Volledig scherm\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "Ge&minimaliseerd starten",    504
        MENUITEM "&Instellingen opslaan bij afsluiten", 511
    }


    POPUP "&Beveiliging"  {
        MENUITEM "&Toegang...",                 605
        MENUITEM "&Loggen...",                  606
        MENUITEM "&Eigenaar...",                607
    }

    POPUP "&Venster"  {
        MENUITEM "&Nieuw venster",              ID_WINDOW_NEW
        MENUITEM "Trapsgewijs\tCtrl+F5",        ID_WINDOW_CASCADE
        MENUITEM "&Boven elkaar",               ID_WINDOW_TILE_HORZ
        MENUITEM "&Naast elkaar\tCtrl+F4",      ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Automatisch schikken",        ID_WINDOW_AUTOSORT
#endif
        MENUITEM "&Pictogrammen schikken",      ID_WINDOW_ARRANGE
        MENUITEM "&Vernieuwen\tF5",             ID_REFRESH
    }

    POPUP "&?"  {
        MENUITEM "&Help-onderwerpen\tF1",       ID_HELP
        MENUITEM "&Zoeken...\tF1",              ID_HELP
        MENUITEM "&Instructie\tF1",             ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Over Winefile...",           ID_ABOUT
    }
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Selecteer bestemming"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Locatie:", -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      "Annuleren", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Bladeren", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Per Bestandstype"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Naam:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Bestandstype",-1,7,23,87,56
    CONTROL         "&Mappen",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programma's",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Do&cumenten",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Overige bestanden",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Toon verborgen/&systeembestanden",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Annuleren",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 "Eigenschappen voor %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Annuleren",IDCANCEL,191,29,50,14
    LTEXT           "&Bestandsnaam:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Volledig &pad:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Laatste wijziging:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versie:",-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           "Grootte:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Attributen",-1,7,79,158,46
    CONTROL         "A&lleen-lezen",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "V&erborgen",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archiveren",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Systeem",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "Ge&comprimeerd",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Versie-informatie",-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   "Lettertype wordt toegepast"
    IDS_FONT_SEL_ERROR      "Probleem tijdens het selecteren van het nieuwe lettertype."
}

STRINGTABLE
{
    IDS_WINEFILE            "Winefile"
    IDS_ERROR               "Fout"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Bureaublad"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Nog niet geimplementeerd"
    IDS_WINE_FILE           "Winefile"
}

STRINGTABLE
{
    IDS_COL_NAME            "Naam"
    IDS_COL_SIZE            "Grootte"
    IDS_COL_CDATE           "CDatum"
    IDS_COL_ADATE           "ADatum"
    IDS_COL_MDATE           "MDatum"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Links"
    IDS_COL_ATTR            "Attributen"
    IDS_COL_SEC             "Beveiliging"

    IDS_FREE_SPACE_FMT      "%s van %s vrij"
}
