# Dutch translation of gst-plugins.
# Copyright (C) 2004 Free Software Foundation, Inc.
# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
# 
# 
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins 0.8.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-08-30 19:21+0200\n"
"PO-Revision-Date: 2004-08-05 16:26+0200\n"
"Last-Translator: Elros Cyriatan <cyriatan@fastmail.fm>\n"
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: gst/avi/gstavimux.c:1007
msgid "No or invalid input audio, AVI stream will be corrupt."
msgstr "Geen of ongeldig invoergeluid, AVI-stroom zal slecht zijn."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Kon \"%s\" niet openen om te schrijven."

#~ msgid "Error closing file \"%s\"."
#~ msgstr "Fout bij sluiten bestand \"%s\"."

#~ msgid "Could not open file \"%s\" for reading."
#~ msgstr "Kon \"%s\" niet openen om te lezen."

#~ msgid "No filename specified."
#~ msgstr "Geen bestandsnaam opgegeven."

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Kon niet schrijven naar bestand \"%s\"."

#~ msgid "Could not open audio device \"%s\" for writing."
#~ msgstr "Kon geluidsapparaat \"%s\" niet openen om te schrijven."

#~ msgid "Could not open control device \"%s\" for writing."
#~ msgstr "Kon instelapparaat \"%s\" niet openen om te schrijven."

#~ msgid "Could not configure audio device \"%s\"."
#~ msgstr "Kon geluidsapparaat \"%s\" niet configureren."

#~ msgid "Could not set audio device \"%s\" to %d Hz."
#~ msgstr "Kon geluidsapparaat \"%s\" niet instellen op %d Hz."

#~ msgid "Could not close audio device \"%s\"."
#~ msgstr "Kon geluidsapparaat \"%s\" niet sluiten."

#~ msgid "Could not close control device \"%s\"."
#~ msgstr "Kon instelapparaat \"%s\" niet sluiten."

#~ msgid "Could not open video device \"%s\" for writing."
#~ msgstr "Kon videoapparaat \"%s\" niet openen om te schrijven."

#~ msgid "Could not close video device \"%s\"."
#~ msgstr "Kon videoapparaat \"%s\" niet sluiten."

#~ msgid "Could not write to device \"%s\"."
#~ msgstr "Kon niet schrijven naar apparaat \"%s\"."

#~ msgid "OSS device \"%s\" is already in use by another program."
#~ msgstr "OSS-apparaat \"%s\" is al in gebruik door een ander programma."

#~ msgid "Could not access device \"%s\", check its permissions."
#~ msgstr ""
#~ "Kon geen toegang krijgen tot apparaat \"%s\", controleer de "
#~ "toegangsrechten."

#~ msgid "Device \"%s\" does not exist."
#~ msgstr "Apparaat \"%s\" bestaat niet."

#~ msgid "Could not open device \"%s\" for writing."
#~ msgstr "Kon apparaat \"%s\" niet openen om te schrijven."

#~ msgid "Could not open device \"%s\" for reading."
#~ msgstr "Kon apparaat \"%s\" niet openen om te lezen."

#~ msgid "Your OSS device could not be probed correctly"
#~ msgstr "Uw OSS-apparaat kon niet correct worden gevonden"

#~ msgid "Volume"
#~ msgstr "Geluidssterkte"

#~ msgid "Bass"
#~ msgstr "Lage tonen"

#~ msgid "Treble"
#~ msgstr "Hoge tonen"

#~ msgid "Synth"
#~ msgstr "Synth"

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Speaker"
#~ msgstr "Luidspreker"

#~ msgid "Line-in"
#~ msgstr "Lijn-in"

#~ msgid "Microphone"
#~ msgstr "Microfoon"

#~ msgid "CD"
#~ msgstr "CD"

#~ msgid "Mixer"
#~ msgstr "Mengpaneel"

#~ msgid "PCM-2"
#~ msgstr "PCM-2"

#~ msgid "Record"
#~ msgstr "Opname"

#~ msgid "In-gain"
#~ msgstr "Versterking-in"

#~ msgid "Out-gain"
#~ msgstr "Versterking-uit"

#~ msgid "Line-1"
#~ msgstr "Lijn-1"

#~ msgid "Line-2"
#~ msgstr "Lijn-2"

#~ msgid "Line-3"
#~ msgstr "Lijn-3"

#~ msgid "Digital-1"
#~ msgstr "Digitaal-1"

#~ msgid "Digital-2"
#~ msgstr "Digitaal-2"

#~ msgid "Digital-3"
#~ msgstr "Digitaal-3"

#~ msgid "Phone-in"
#~ msgstr "Telefoon-in"

#~ msgid "Phone-out"
#~ msgstr "Telefoon-uit"

#~ msgid "Video"
#~ msgstr "Video"

#~ msgid "Radio"
#~ msgstr "Radio"

#~ msgid "Monitor"
#~ msgstr "Bijhouden"

#, fuzzy
#~ msgid "PC Speaker"
#~ msgstr "Luidspreker"

#~ msgid "Could not open CD device for reading."
#~ msgstr "Kon het CD-apparaat niet openen om te lezen."

#~ msgid "Could not open vfs file \"%s\" for reading."
#~ msgstr "Kon het VFS-bestand \"%s\" niet openen om te lezen."

#, fuzzy
#~ msgid "No filename given."
#~ msgstr "Geen bestandsnaam opgegeven"

#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Kon het VFS-bestand \"%s\" niet openen om te schrijven: %s."

#~ msgid "No filename given"
#~ msgstr "Geen bestandsnaam opgegeven"

#~ msgid "Could not close vfs file \"%s\"."
#~ msgstr "Kon het VFS-bestand \"%s\" niet sluiten."

#, fuzzy
#~ msgid "Your OSS device doesn't support mono or stereo."
#~ msgstr "Uw OSS-apparaat kon niet correct worden gevonden"

#~ msgid "No device specified."
#~ msgstr "Geen apparaat opgegeven."

#~ msgid "Could not open device \"%s\" for reading and writing."
#~ msgstr "Kon apparaat \"%s\" niet openen voor lezen en schrijven."

#~ msgid "Device is not open."
#~ msgstr "Apparaat is niet geopend."

#~ msgid "Device is open."
#~ msgstr "Apparaat is geopend."

#~ msgid "Device \"%s\" is not a capture device."
#~ msgstr "Apparaat \"%s\" is niet een opvangapparaat."

#~ msgid "Could not get buffers from device \"%s\"."
#~ msgstr "Kon geen buffers opvragen van apparaat \"%s\"."

#~ msgid "Could not get enough buffers from device \"%s\"."
#~ msgstr "Kon niet voldoende buffers opvragen van apparaat \"%s\"."

#~ msgid ""
#~ "The %s element could not be found. This element is essential for "
#~ "playback. Please install the right plug-in and verify that it works by "
#~ "running 'gst-inspect %s'"
#~ msgstr ""
#~ "Het %s element kon niet worden gevonden. Dit element is essentieel om af "
#~ "te spelen. Installeer alstublieft de juiste plug-in en controleer dat die "
#~ "werkt door 'gst-inspect %s' uit te voeren"

#~ msgid ""
#~ "No usable colorspace element could be found.\n"
#~ "Please install one and restart."
#~ msgstr ""
#~ "Er kon geen bruikbaar kleurruimte-element worden gevonden.\n"
#~ "Installeer er alstublieft een en start opnieuw dit programma."
