# 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: 2014-06-22 17:56+0200\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"

#, 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 ""

msgid "Couldn't get the Manifest's URI"
msgstr ""

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

msgid "Internal data stream error."
msgstr ""

msgid "Couldn't download fragments"
msgstr ""

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

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

#, 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 "Could not write to file \"%s\"."
msgstr "Kon nie skryf na lêer \"%s\" 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 "Subpicture format was not configured before data flow"
msgstr ""

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
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 DVB channel configuration file"
msgstr ""

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

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

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

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