# Bulgarian translation of gst-plugins-bad.
# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2016 Free Software Fondation, Inc.
# Copyright (C) 2017 Free Software Fondation, Inc.
# This file is distributed under the same license as the gst-plugins-bad package.
# Alexander Shopov <ash@kambanaria.org>, 2007, 2008, 2009, 2010, 2011, 2016.
# Alexander Shopov <ash@kambanaria.org>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.12.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-07-14 13:33+0300\n"
"PO-Revision-Date: 2017-05-08 11:49+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"

msgid "failed to draw pattern"
msgstr "шарката не може да се изобрази"

msgid "A GL error occured"
msgstr "Грешка от GL"

msgid "format wasn't negotiated before get function"
msgstr "форматът не е бил уточнен преди извикване на функцията за получаване"

msgid "OpenCV failed to load template image"
msgstr "OpenCV не успя да зареди изображението-шаблон"

msgid "Could not read title information for DVD."
msgstr "Информацията за заглавните части на DVD-то не може да бъде прочетена."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Не може да се чете от устройството за DVD-та „%s“."

msgid "Failed to set PGC based seeking."
msgstr "Не може да се търси по веригата на програмите (PGC)"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVD-то не може да бъде прочетено. Причината може да е, че DVD-то е шифрирано "
"и не е инсталирана библиотека за дешифриране."

msgid "Could not read DVD."
msgstr "DVD-то не може да бъде прочетено."

msgid "This file contains no playable streams."
msgstr "Файлът не съдържа потоци за изпълнение."

msgid "Could not open sndfile stream for reading."
msgstr "Потокът sndfile не може да се отвори за четене."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Генерираният файл е с по-дълго време за буфериране отколкото е самата му "
"продължителност"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Елементът „%s“ липсва, проверете инсталацията на GStreamer."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr "Местоположението на файла е NULL. Задайте име на файл"

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 "Устройството „%s“ не съществува."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Устройството „%s“ не може да бъде отворено."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Настройките на устройството „%s“ не могат да бъдат получени."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Системите за доставка от устройството „%s“ не могат да бъдат изброени."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Файлът „%s“ не може да се отвори за четене."

msgid "Couldn't find channel configuration file"
msgstr "Файлът с настройките на каналите не може да бъде открит"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Файлът с настройките на каналите не може да бъде прочетен: „%s“"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Липсват данни за канала „%s“"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Липсват данни за канала „%s“"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Свойствата на канала „%s“ не могат да бъдат зададени"

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Файлът с настройките на каналите не може да бъде открит: „%s“"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Файлът с настройките на каналите не съдържа никакви канали"
