# Translation of gstreamer plugin messages to Afrikaans. 
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is put in the public domain.
# Petri Jooste <rkwjpj@puk.ac.za>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins 0.7.6\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-07-06 11:51+0300\n"
"PO-Revision-Date: 2004-03-18 14:16+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
"Language: af\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "failed to draw pattern"
msgstr ""

msgid "A GL error occured"
msgstr ""

msgid "format wasn't negotiated before get function"
msgstr ""

msgid "OpenCV failed to load template image"
msgstr ""

#, fuzzy
msgid "Could not read title information for DVD."
msgstr "Kon nie skryf na lêer \"%s\" nie."

#, fuzzy, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Kon nie beheertoestel \"%s\" toemaak nie."

msgid "Failed to set PGC based seeking."
msgstr ""

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "Kon nie skryf na lêer \"%s\" nie."

msgid "This file contains no playable streams."
msgstr ""

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Kon nie lêer \"%s\" oopmaak om te lees nie."

msgid "Could not establish connection to sndio"
msgstr ""

msgid "Failed to query sndio capabilities"
msgstr ""

#, fuzzy
msgid "Could not configure sndio"
msgstr "Kon nie oudio-toestel \"%s\" konfigureer nie."

#, fuzzy
msgid "Could not start sndio"
msgstr "Kon nie skryf na lêer \"%s\" nie."

msgid "Internal data flow error."
msgstr ""

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""

msgid "Digitalzoom element couldn't be created"
msgstr ""

msgid "Subpicture format was not configured before data flow"
msgstr ""

msgid "Failed to get fragment URL."
msgstr ""

msgid "Internal data stream error."
msgstr ""

msgid "Couldn't download fragments"
msgstr ""

#, fuzzy
msgid "No file name specified for writing."
msgstr "Geen lêernaam gespesifiseer."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Kon nie lêer \"%s\" oopmaak om in te skryf nie."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Toestel \"%s\" bestaan nie."

#, fuzzy, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Kon nie beheertoestel \"%s\" toemaak nie."

#, fuzzy, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Kon nie genoeg buffers vanaf toestel \"%s\" kry nie."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Kon nie genoeg buffers vanaf toestel \"%s\" kry nie."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Kon nie lêer \"%s\" oopmaak om te lees nie."

msgid "Couldn't find DVB channel configuration file"
msgstr ""

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr ""

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr ""

#, c-format
msgid "No properties for the DVB channel %s"
msgstr ""

#, c-format
msgid "Failed to set properties for the DVB channel %s"
msgstr ""

#, c-format
msgid "Couldn't find DVB channel configuration file: %s"
msgstr ""

msgid "DVB channel configuration file doesn't contain any channels"
msgstr ""

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Kon nie skryf na lêer \"%s\" nie."

#~ msgid "Could not open device \"%s\" for reading and writing."
#~ msgstr "Kon nie toestel \"%s\" oopmaak vir lees en skryf nie."

#~ msgid "Device \"%s\" is not a capture device."
#~ msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."

#~ msgid "Could not write to device \"%s\"."
#~ msgstr "Kon nie skryf na toestel \"%s\" nie."

#~ msgid "Could not get buffers from device \"%s\"."
#~ msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie."

#~ msgid "Could not open control device \"%s\" for writing."
#~ msgstr "Kon nie beheertoestel \"%s\" oopmaak vir skryf nie."

#~ msgid "Could not set audio device \"%s\" to %d Hz."
#~ msgstr "Kon nie klanktoestel \"%s\" verstel na %d Hz nie."

#~ msgid "Could not close audio device \"%s\"."
#~ msgstr "Kon nie oudio-toestel \"%s\" toemaak nie."

#~ msgid "Could not open video device \"%s\" for writing."
#~ msgstr "Kon nie video-toestel \"%s\" oopmaak vir skryf nie."

#~ msgid "Could not close video device \"%s\"."
#~ msgstr "Kon nie video-toestel \"%s\" toemaak nie."

#~ msgid "Error closing file \"%s\"."
#~ msgstr "Fout tydens toemaak van lêer \"%s\"."

#~ msgid "No or invalid input audio, AVI stream will be corrupt."
#~ msgstr "Geen of ongeldige klanktoevoer, AVI-stroom sal korrup wees."

#~ msgid "OSS device \"%s\" is already in use by another program."
#~ msgstr "OSS-toestel \"%s\" is reeds in gebruik deur 'n ander program."

#~ msgid "Could not access device \"%s\", check its permissions."
#~ msgstr "Kon nie toegang kry tot toestel \"%s\" nie, kyk na toegangsregte."

#~ msgid "Could not open device \"%s\" for writing."
#~ msgstr "Kon nie toestel \"%s\" oopmaak vir skryf nie."

#~ msgid "Could not open device \"%s\" for reading."
#~ msgstr "Kon nie toestel \"%s\" oopmaak vir lees nie."

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

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

#~ msgid "Mixer"
#~ msgstr "Menger"

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

#~ msgid "In-gain"
#~ msgstr "In-versterking"

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

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

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

#~ 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 "Radio"
#~ msgstr "Radio"

#~ msgid "Could not open CD device for reading."
#~ msgstr "Kon nie CD-toestel oopmaak om te lees nie."

#~ msgid "Could not open vfs file \"%s\" for reading."
#~ msgstr "Kon nie vfs-lêer \"%s\" oopmaak vir lees nie."

#, fuzzy
#~ msgid "No filename given."
#~ msgstr "Geen lêernaam gespesifiseer."

#, fuzzy
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Kon nie vfs-lêer \"%s\" oopmaak vir skryf nie."

#, fuzzy
#~ msgid "No filename given"
#~ msgstr "Geen lêernaam gespesifiseer."

#~ msgid "Could not close vfs file \"%s\"."
#~ msgstr "Kon nie vfs-lêer \"%s\" toemaak nie."

#~ msgid "No device specified."
#~ msgstr "Geen toestel gespesifiseer"

#~ msgid "Device is not open."
#~ msgstr "Toestel is nie oop nie."

#~ msgid "Device is open."
#~ msgstr "Toestel is oop."
