/*
 * Copyright 1999 Klaas van Gend
 *
 * 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
 */

STRINGTABLE LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
BEGIN

/* MMSYS errors */
MMSYSERR_NOERROR, 		"De gespecificeerde opdracht is uitgevoerd."
MMSYSERR_ERROR, 		"Ongedefinieerde fout van buitenaf."
MMSYSERR_BADDEVICEID, 	"Een apparaat ID werd gebruikt dat buiten de grenzen van uw systeem ligt."
MMSYSERR_NOTENABLED, 	"De driver is niet geactiveerd."
MMSYSERR_ALLOCATED, 	"Het gewenste apparaat is in gebruik. Wacht totdat het vrijkomt en probeer het dan opnieuw."
MMSYSERR_INVALHANDLE, 	"De gespecificeerde apparaatverwijzing is ongeldig."
MMSYSERR_NODRIVER, 		"Er is geen driver geinstalleerd op uw systeem !\n"
MMSYSERR_NOMEM, 		"Er is niet genoeg geheugen beschikbaar voor deze taak. Sluit enkele programma's af om meer geheugen vrij te krijgen en doe dan nog een poging."
MMSYSERR_NOTSUPPORTED, 	"Deze functie wordt niet ondersteund. Gebruik de 'Capabilities' functie om uit te zoeken welke toepassingen en boodschappen de driver ondersteund."
MMSYSERR_BADERRNUM, 	"Een niet binnen het systeem bekend foutnummer werd gebruikt."
MMSYSERR_INVALFLAG, 	"Een ongeldige vlag werd aan een systeemfunctie gevoerd."
MMSYSERR_INVALPARAM, 	"Een systeemfunctie kreeg een ongeldige parameter te eten."

/* WAVE errors */
WAVERR_BADFORMAT, 		"Het aangegeven formaat wordt niet ondersteund of geconverteerd. Gebruik de 'Capabilities' functie om de ondersteunde formaten te vinden"
WAVERR_STILLPLAYING, 	"Kan deze opdracht niet uitvoeren zolang afgespeeld wordt. Herstart het apparaat of wacht totdat het apparaat klaar is met spelen."
WAVERR_UNPREPARED, 		"De Wave Header was niet aanwezig. Gebruik de 'Prepare' functie om de Header te genereren en probeer het dan opnieuw."
WAVERR_SYNC, 			"Kan het apparaat niet openen zonder de WAVE_ALLOWSYNC vlag. Zet de vlag en probeer opnieuw."  

/* MIDI errors */
MIDIERR_UNPREPARED, 	"De MIDI Header was niet aanwezig. Gebruik de 'Prepare' functie om de Header te genereren en probeer het dan opnieuw."
MIDIERR_STILLPLAYING, 	"Kan deze opdracht niet uitvoeren zolang afgespeeld wordt. Herstart het apparaat of wacht totdat het apparaat klaar is met spelen."
MIDIERR_NOMAP, 			"Er is geen MIDI Map gevonden. Er zou een driver probleem kunnen zijn of de MIDIMAP.CFG file is verminkt of afwezig."
MIDIERR_NOTREADY, 		"De poort is bezig data ter versturen naar het apparaat. Wacht totdat alle data is verstuurd en probeer het dan opnieuw."
MIDIERR_NODEVICE, 		"De huidige MIDI Mapper setup verwijst naar een MIDI apparaat dat niet op het systeem aanwezig is. Gebruik MIDI Mapper om de instellingen aan te passen."
MIDIERR_INVALIDSETUP, 	"De huidige MIDI setup is beschadigd. Kopieer de originele MIDIMAP.CFG file naar de Windows SYSTEM directory en probeer het daarna weer."

/* MCI errors */
MCIERR_INVALID_DEVICE_ID, 	    "Ongeldige MCI apparaat ID. Gebruik de teruggegeven ID als u dit MCI apparaat opent."
MCIERR_UNRECOGNIZED_KEYWORD, 	"De driver kant de gegeven opdracht parameter niet herkennen."
MCIERR_UNRECOGNIZED_COMMAND,	"De driver kant de gegeven opdracht niet herkennen."
MCIERR_HARDWARE, 		        "ER is een probleem met uw media apparaat. Controleer of 't correct werkt of neem contact op met de leverancier."
MCIERR_INVALID_DEVICE_NAME, 	"The specified device is not open or is not recognized by MCI."
MCIERR_OUT_OF_MEMORY, 		    "Er is niet genoeg geheugen beschikbaar voor deze taak. Sluit enkele programma's af om meer geheugen vrij te krijgen en probeer opnieuw."
MCIERR_DEVICE_OPEN, 		    "Een apparaat met die naam is al in gebruik als alias door deze applicatie. Gebruik een uniek alias."
MCIERR_CANNOT_LOAD_DRIVER, 	    "Er is een onbekende fout ontstaan tijdens het laden van de apparaat driver."
MCIERR_MISSING_COMMAND_STRING, 	"Er was geen opdracht opgegeven."
MCIERR_PARAM_OVERFLOW, 		    "De output string was te groot om in de antwoordbuffer te passen. Vergroot de buffer."
MCIERR_MISSING_STRING_ARGUMENT, "De gegeven opdracht vereist een character-string parameter. Lever er dus een aan s.v.p."
MCIERR_BAD_INTEGER, 		    "De gegeven integer is niet geldig bij dit commando."
MCIERR_PARSER_INTERNAL, 	    "De apparaat driver retourneerde een ongeldige waarde. Vraag de fabrikant om een andere driver."
MCIERR_DRIVER_INTERNAL, 	    "Er is een probleem met de apparaat driver. Vraag de fabrikant om een andere driver."
MCIERR_MISSING_PARAMETER, 	    "De gegeven opdracht benodigt een parameter. Vult u die a.u.b. in."
MCIERR_UNSUPPORTED_FUNCTION, 	"Het MCI apparaat dat u gebruikt ondersteund het gegeven commando niet."
MCIERR_FILE_NOT_FOUND, 		    "Kan het opgegeven bestand niet vinden. Zorg ervoor dat het pad en de bestandsnaam correct zijn."
MCIERR_DEVICE_NOT_READY, 	    "De apparaat driver is niet gereed."
MCIERR_INTERNAL, 		        "Tijdens het initialiseren van MCI onstond een probleem. Probeer dit te verhelpen door Windows opnieuw te starten."
MCIERR_DRIVER, 			        "Er is een probleem met de apparaat driver. Daarom is de driver afgesloten. Derhalve een toegangsfout."
MCIERR_CANNOT_USE_ALL, 		    "Kan 'all' niet gebruiken als apparaat naam bij het opgegeven commando."
MCIERR_MULTIPLE, 		        "In meer dan een apparaat zijn fouten opgetreden. Geef elk commando en apparaat apart om te achterhalen welke apparaten fouten veroorzaken."
MCIERR_EXTENSION_NOT_FOUND, 	"Kan het apparaat type niet achterhalen uit de gegeven bestands-extensie."
MCIERR_OUTOFRANGE, 		        "De gegeven parameter is buiten het bereik van het opgegeven commando."
MCIERR_FLAGS_NOT_COMPATIBLE, 	"De gegeven parameters kunnen niet samen gebruikt worden."
MCIERR_FILE_NOT_SAVED, 		    "Kan de opgegeven file niet saven. Zorg ervoor dat er voldoende diskruimte is of dat u nog steeds met het netwerk verbonden bent."
MCIERR_DEVICE_TYPE_REQUIRED, 	"Kan het opgegeven apparaat niet vinden. Verzeker u ervan dat het correct geinstalleerd is en dat de apparaatnaam correct is opgegeven."
MCIERR_DEVICE_LOCKED, 		    "Het opgegeven apparaat wordt nu gesloten. Wacht svp. enkele seconden en probeer het dan opnieuw."
MCIERR_DUPLICATE_ALIAS, 	    "Het gegeven alias is al in gebruik door dit programma. Gebruik een unieke alias."
MCIERR_BAD_CONSTANT, 		    "De gegeven parameters is ongeldig bij het gegeven commando."
MCIERR_MUST_USE_SHAREABLE, 	    "De apparaat driver is al in gebruik. Om het te delen, gebruik de 'deelbaar' parameter met elk 'open' commando."
MCIERR_MISSING_DEVICE_NAME, 	"Het gegeven commando vereist een alias, bestand, driver of apparaatnaam. Geeft u er svp een in."
MCIERR_BAD_TIME_FORMAT, 	    "De gegeven waarde voor het tijdsformaat is ongeldig. Zoek in de MCI handleidingen naar geldige formaten."
MCIERR_NO_CLOSING_QUOTE, 	    "Een afsluitende dubbele apostroph ontbreekt van de parameter waarde. Geeft u er svp een in."
MCIERR_DUPLICATE_FLAGS, 	    "Een parameter of waarde werd dubbel opgegeven. Doe dat svp maar een keer."
MCIERR_INVALID_FILE, 		    "De gegeven file kan niet op het MCI apparaat worden afgespeeld. Het bestand is misschien corrupt of niet in het juiste formaat."
MCIERR_NULL_PARAMETER_BLOCK, 	"Een leeg parameter block werd doorgegeven aan MCI."
MCIERR_UNNAMED_RESOURCE, 	    "Kan niet saven naar bestand zonder naam. Geef een bestandsnaam svp."
MCIERR_NEW_REQUIRES_ALIAS, 	    "U moet een alias opgeven als u de 'new' parameter gebruikt."
MCIERR_NOTIFY_ON_AUTO_OPEN, 	"Kan de 'notify' vlag niet gebruiken met automatisch geopende apparaten."
MCIERR_NO_ELEMENT_ALLOWED, 	    "Kan voor het huidige apparaat geen bestandsnaam gebruiken."
MCIERR_NONAPPLICABLE_FUNCTION, 	"Kan de opgegeven commando's niet in deze volgorde uitvoeren. Corrigeer de commandoreeks en probeer opnieuw."
MCIERR_ILLEGAL_FOR_AUTO_OPEN, 	"Kan het opgegeven commando niet uitvoeren op een automatisch geopend apparaat. Wacht todat het apparaat is afgesloten en probeer dan opnieuw."
MCIERR_FILENAME_REQUIRED, 	    "De bestandsnaam is ongeldig. Zorg ervoor dat de bestandsnaam aan het 8.3 formaat voldoet."
MCIERR_EXTRA_CHARACTERS, 	    "Het is niet mogelijk om extra lettertekens toe te voegen na een string in aanhalingstekens."
MCIERR_DEVICE_NOT_INSTALLED, 	"Het opgegeven apparaat is niet geinstalleerd op het systeem. Gebruik de 'Drivers'-optie in het Configuratiescherm om het apparaat te installeren."
MCIERR_GET_CD, 			        "Kan het opgegeven bestand of MCI apparaat niet openen. Probeer de directory te wijzigen of de computer opnieuw te starten."
MCIERR_SET_CD, 			        "Kan het opgegeven bestand of MCI apparaat niet openen omdat de applicatie de directory niet kan wijzigen."
MCIERR_SET_DRIVE, 		        "Kan het opgegeven bestand of MCI apparaat niet openen omdat de applicatie de directory niet kan wijzigen."
MCIERR_DEVICE_LENGTH, 		    "Geef een apparaat of driver naam op met minder dan 79 lettertekens."
MCIERR_DEVICE_ORD_LENGTH, 	    "Geef een apparaat of driver naam op met minder dan 79 lettertekens."
MCIERR_NO_INTEGER, 		        "Het gegeven commando vereist een integer parameter. Svp geef er eentje."
MCIERR_WAVE_OUTPUTSINUSE, 	    "Alle WAVE-apparaten die in staat zijn om een bestand in dit formaat af te spelen, zijn in gebruik. Wacht totdat een WAVE apparaat vrij is en probeer het dan opnieuw."
MCIERR_WAVE_SETOUTPUTINUSE, 	"Kan het huidige WAVE-apparaat niet gebruiken omdat het in gebruik is. Wacht totdat het apparaat vrij is en probeer het dan opnieuw."
MCIERR_WAVE_INPUTSINUSE, 	    "Alle WAVE-apparaten die in staat zijn om een bestand in dit formaat op te nemen, zijn in gebruik. Wacht totdat een WAVE apparaat vrij is en probeer het dan opnieuw."
MCIERR_WAVE_SETINPUTINUSE, 	    "Kan het huidige WAVE-apparaat niet gebruiken om op te nemen omdat het in gebruik is. Wacht totdat het apparaat vrij is en probeer het dan opnieuw."
MCIERR_WAVE_OUTPUTUNSPECIFIED,	"Elk compatible WAVE afspeelapparaat kan worden gebruikt."
MCIERR_WAVE_INPUTUNSPECIFIED, 	"Elk compatible WAVE opnameapparaat kan worden gebruikt."
MCIERR_WAVE_OUTPUTSUNSUITABLE, 	"Er is momenteel geen WAVE apparaat geinstalleerd dat bestanden in het huidige formaat kan afspelen. Gebruik de 'Drivers' optie om zo'n WAVE apparaat te installeren."
MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Het apparaat waar u probeert mee af te spelen is niet in staat om het huidige formaat te herkennen."
MCIERR_WAVE_INPUTSUNSUITABLE, 	"Er is momenteel geen WAVE apparaat geinstalleerd dat bestanden in het huidige formaat kan opnemen. Gebruik de 'Drivers' optie om zo'n WAVE apparaat te installeren."
MCIERR_WAVE_SETINPUTUNSUITABLE, "Het apparaat waar u probeert mee op te nemen is niet in staat om het huidige formaat te herkennen."
MCIERR_NO_WINDOW, 		        "Er is geen weergave venster."
MCIERR_CREATEWINDOW, 		    "Kon geenvenster maken of gebruiken."
MCIERR_FILE_READ, 		        "Kan het opgegeven bestand niet lezen. Contrleer of het bestand nog steeds bestaat, en controleer de verbinding naar de disk of het netwerk."
MCIERR_FILE_WRITE, 		        "Kan het opgegeven bestand niet schrijven. Contrleer of er voldoende diskruimte is, en controleer de verbinding naar het netwerk."

MCIERR_SEQ_DIV_INCOMPATIBLE, 	"Van tijdformaten van 'song pointer' en SMPTE kan er maar een in gebruik zijn. U kunt ze niet beide tegelijkertijd gebruiken."
MCIERR_SEQ_NOMIDIPRESENT, 	    "Het systeem heeft geen MIDI apparaten geinstalleerd. Gebruik de 'Drivers'-optie in het Configuratiescherm om een MIDI apparaat te installeren."
MCIERR_SEQ_PORT_INUSE, 		    "De opgegeven MIDI poort is al in gebruik. Wacht totdat deze vrij is en probeer dan opnieuw."
MCIERR_SEQ_PORT_MAPNODEVICE, 	"De huidige MIDI Mapper setup verwijst naar een MIDI apparaat dat niet op het systeem is geinstalleerd. Gebruik de 'MIDI mapper'-optie in het Configuratiescherm om een MIDI apparaat te installeren."
MCIERR_SEQ_PORT_MISCERROR, 	    "Er is error opgetreden bij de opgegeven poort."
MCIERR_SEQ_PORT_NONEXISTENT, 	"Het opgegeven MIDI Mapper apparaat is niet op het systeem geinstalleerd. Gebruik de 'MIDI mapper'-optie in het Configuratiescherm om het te installeren."
MCIERR_SEQ_PORTUNSPECIFIED, 	"Het systeem heeft momenteel geen aangewezen MIDI poort."
MCIERR_SEQ_TIMER, 		        "Alle multimedia timers zijn in gebruik door andere applicaties. Sluit een van deze applicaties, probeer het dan opnieuw."

END
