# 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: 2017-05-04 15:09+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 "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 "Couldn't download fragments"
msgstr ""

msgid "Internal data stream error."
msgstr ""

#, 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 channel configuration file"
msgstr ""

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

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

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

#, fuzzy, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Kon nie beheertoestel \"%s\" toemaak nie."

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

msgid "Channel configuration file doesn't contain any channels"
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."

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

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

#~ 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."
