/*
 * WineCfg resources
 * Dutch Language Support
 *
 * Copyright 2004 Rein Klazes
 *
 * 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
 *
 */

LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "Wine Versie:",IDC_STATIC,119,17,55,8
    LTEXT           "CVS",IDC_WINEVER,179,17,56,8
    CONTROL         IDB_WINE,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | 
                    SS_REALSIZEIMAGE | WS_BORDER,15,17,157,111, WS_EX_TRANSPARENT
    LTEXT           "http://www.winehq.org/",IDC_STATIC,119,31,106,8
    GROUPBOX        "Informatie",IDC_STATIC,8,4,244,106
    CTEXT           "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.",
                    IDC_STATIC,119,44,124,59
END

IDD_APPCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "Toepassingsinstellingen",IDC_STATIC, 8,4,244,240
    LTEXT           "Wine geeft de mogelijkheid om per toepassing Windowsversie en stijlen in te stellen",
                    IDC_STATIC,15,20,227,20
    CONTROL         "Toepassing",IDC_APP_TREEVIEW,"SysTreeView32",WS_BORDER | WS_TABSTOP | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS, 15,40,142,145
    PUSHBUTTON	    "Toepasing toevoegen...",IDC_APP_ADDAPP, 163,40,82,60
    PUSHBUTTON	    "Toepassing verwijderen",IDC_APP_REMOVEAPP, 163,125,82,60
    LTEXT           "Windows Versie:",IDC_STATIC,17,192,58,8
    LTEXT           "DOS Versie:",IDC_STATIC,17,211,57,8
    COMBOBOX        IDC_WINVER,83,190,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_DOSVER,83,208,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT	    "Kleurdiepte: ",IDC_STATIC,8,10,70,30
    COMBOBOX	    IDC_SCREEN_DEPTH,80,8,170,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    CONTROL	    "Een DirectX programma kan de muis in een window vasthouden.",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
    CONTROL	    "Schakel \"double buffering\" in.",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
    
    GROUPBOX        " Windowsinstellingen ",IDC_STATIC,8,25,244,120

    /* FIXME: the wording of this explanation could be a lot better */
    LTEXT           "U kunt kiezen voor een virtuele windows desktop waarop alle windows geplaatst worden, of U kunt er voor kiezen dat de windows op uw standaard desktop geplaatst worden.",
                    IDC_STATIC,15,73,228,28
    LTEXT           "Desktop afmetingen:",IDC_DESKTOP_SIZE,15,115,44,8,WS_DISABLED
    LTEXT           "X",IDC_DESKTOP_BY,108,115,8,8,WS_DISABLED
    CONTROL         "Emuleer een virtuele desktop",IDC_ENABLE_DESKTOP,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10
		    
    EDITTEXT        IDC_DESKTOP_WIDTH,64,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT        IDC_DESKTOP_HEIGHT,117,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
END

IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "DLL Overrides",IDC_STATIC,8,4,244,240
    LTEXT           "Het is mogelijk om per uitvoerbaar bestand te specificeren of deze \"builtin\" dan wel \"native\" moet zijn. De specificatie voor ""*"" geldt voor alle niet expliciet genoemde bestanden."
                    ,  IDC_STATIC,15,17,228,32
    CONTROL         "DLL Overrides", IDC_TREE_DLLS, "SysTreeView32", WS_BORDER | WS_TABSTOP | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS, 15,50,142,187
    LTEXT           "Laad volgorde:",IDC_STATIC,163,50,37,8
    CONTROL         "Builtin (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,163,65,75,10
    CONTROL         "Native (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,163,80,75,10
    CONTROL         "Builtin, Native",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,163,95,75,10
    CONTROL         "Native, Builtin",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,163,110,75,10
    CONTROL         "Uitzetten",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,163,125,75,10
    PUSHBUTTON	    "Toepassing toevoegen",IDC_DLLS_ADDAPP,163,144,82,14
    PUSHBUTTON	    "Toepassing verwijderen",IDC_DLLS_REMOVEAPP, 163,164,82,14
    PUSHBUTTON	    "Override toevoegen voor:",IDC_DLLS_ADDDLL, 163,184,82,14
    COMBOBOX        IDC_DLLLIST,163,204,82,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON	    "Override verwijderen",IDC_DLLS_REMOVEDLL,163,224,82,14
END

IDD_SYSTEMCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "Stations",IDC_STATIC,8,4,244,120
    LISTBOX         IDC_LIST_DRIVES,15,23,179,90,WS_VSCROLL
    PUSHBUTTON      "&Toevoegen",IDC_DRIVE_ADD,197,22,50,22
    PUSHBUTTON      "&Verwijderen",IDC_DRIVE_REMOVE,197,51,50,22
    PUSHBUTTON      "&Bewerken",IDC_DRIVE_EDIT,197,80,50,22
END

IDD_DRIVECFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        " Stations ",IDC_STATIC,7,107,246,112
    LISTBOX         IDC_LIST_DRIVES,14,118,232,76,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Toevoegen",IDC_BUTTON_ADD,14,199,37,14
    PUSHBUTTON      "Verwijderen",IDC_BUTTON_REMOVE,55,199,37,14
    PUSHBUTTON      "Bewerken",IDC_BUTTON_EDIT,97,199,37,14
    PUSHBUTTON      "Auto Instellen",IDC_BUTTON_AUTODETECT,197,199,49,14
    LTEXT	    "WAARSCHUWING: Er is geen C: station gedefinieerd. Klik op ""Toevoegen"" om deze aan te maken.", IDS_DRIVE_NO_C, 7,223,250,110
END

IDD_DRIVE_EDIT DIALOG DISCARDABLE  0, 0, 203, 169
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Station Bewerken"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&Ok",ID_BUTTON_OK,145,150,50,16
    LTEXT           "Letter:",IDC_STATIC,5,23,26,9
    EDITTEXT        IDC_EDIT_LABEL,63,108,78,13,ES_AUTOHSCROLL
    LTEXT           "Naam:",IDC_STATIC_LABEL,33,111,29,12
    LTEXT           "Serienummer:",IDC_STATIC_SERIAL,33,127,29,12
    EDITTEXT        IDC_EDIT_SERIAL,63,124,78,13,ES_AUTOHSCROLL
    LTEXT           "Soort:",IDC_STATIC_TYPE,5,39,21,10
    EDITTEXT        IDC_EDIT_PATH,31,5,117,13,ES_AUTOHSCROLL
    LTEXT           "Pad:",IDC_STATIC,5,8,20,9
    COMBOBOX        IDC_COMBO_LETTER,31,20,77,60,CBS_DROPDOWNLIST  | 
                    WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Bladeren...",IDC_BUTTON_BROWSE_PATH,154,5,40,13
    COMBOBOX        IDC_COMBO_TYPE,31,36,77,60,CBS_DROPDOWNLIST | 
                    WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Geavanceerd",IDC_BUTTON_SHOW_HIDE_ADVANCED,134,34,60,16
    CONTROL         "Automatisch detecteren van apparaat:",IDC_RADIO_AUTODETECT,"Button",
                    BS_AUTORADIOBUTTON,21,69,93,10
    EDITTEXT        IDC_EDIT_DEVICE,33,79,108,13,ES_AUTOHSCROLL
    PUSHBUTTON      "Bladeren...",IDC_BUTTON_BROWSE_DEVICE,148,79,40,13
    CONTROL         "Handmatig instellen:",IDC_RADIO_ASSIGN,"Button",
                    BS_AUTORADIOBUTTON,21,98,69,10
    GROUPBOX        "Naam en serienummer",IDC_BOX_LABELSERIAL,6,58,189,85
END

IDD_AUDIOCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT	"Geluidsbesturing: ",IDC_STATIC,10,20,60,8
    COMBOBOX	IDC_AUDIO_DRIVER,70,18,85,85,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON	"Auto detecteren",IDC_AUDIO_AUTODETECT,170,20,49,14
END

STRINGTABLE DISCARDABLE
BEGIN
    IDS_WINE_VERSION        "CVS"
    IDS_TAB_GENERAL         "Algemeen"
    IDS_TAB_DLLS            "Bibliotheken"
    IDS_TAB_DRIVES          "Stations"
END
