# Ukrainian translation to gst-plugins-bad
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-bad package.
#
# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007.
# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2013, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.6.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-08-19 11:59+0300\n"
"PO-Revision-Date: 2015-10-15 20:44+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.5\n"

msgid "format wasn't negotiated before get function"
msgstr "формат не було узгоджено до виклику функції get"

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 "Не вдалося позиціювання на основі програмної послідовності."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Не вдалося прочитати DVD. Причиною може бути те, що 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 "Could not establish connection to sndio"
msgstr "Не вдалося встановити з’єднання з sndio"

msgid "Failed to query sndio capabilities"
msgstr "Не вдалося виконати опитування щодо можливостей sndio"

msgid "Could not configure sndio"
msgstr "Не вдалося налаштувати sndio"

msgid "Could not start sndio"
msgstr "Не вдалося задіяти sndio"

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 ""
"Відсутній елемент «%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 "Internal data stream error."
msgstr "Помилка внутрішнього потоку даних."

msgid "Couldn't download fragments"
msgstr "Не вдалося отримати фрагменти"

msgid "No file name specified for writing."
msgstr "Не вказано назви файла для запису."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Вказану назву файла, «%s», не можна перетворити у локальне кодування назв "
"файлів."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Не вдалося відкрити файл «%s» для запису."

#, 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 DVB channel configuration file"
msgstr "Не вдалося знайти файла налаштувань каналів DVB"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "Не вдалося завантажити файл налаштувань каналів DVB: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "У файлі налаштувань каналів DVB не міститься даних щодо жодного каналу"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Не вдалося знайти параметрів каналу DVB %s"

#~ msgid "default GStreamer sound events audiosink"
#~ msgstr "типовий приймач звукових подій GStreamer"

#~ msgid ""
#~ "GStreamer can play audio using any number of output elements. Some "
#~ "possible choices are osssink, pulsesink and alsasink. The audiosink can "
#~ "be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "У GStreamer передбачено можливість відтворення звукових даних за "
#~ "допомогою довільної кількості елементів виведення. Серед можливих "
#~ "варіантів osssink, pulsesink та alsasink. Звуковий приймач може бути "
#~ "окремим каналом, а не одним елементом."

#~ msgid "description for default GStreamer sound events audiosink"
#~ msgstr "опис типового приймача звукових подій GStreamer"

#~ msgid "Describes the selected audiosink element."
#~ msgstr "Описує вибраний елемент audiosink."

#~ msgid "default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr "типовий звуковий приймач GStreamer для звукових та відеоконференцій"

#~ msgid ""
#~ "description for default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr ""
#~ "опис типового звукового приймача GStreamer для звукових та "
#~ "відеоконференцій"

#~ msgid "default GStreamer audiosink for Music and Movies"
#~ msgstr "типовий звуковий приймач GStreamer для музики і фільмів"

#~ msgid "description for default GStreamer audiosink for Music and Movies"
#~ msgstr "опис типового звукового приймача GStreamer для музики і фільмів"

#~ msgid "default GStreamer videosink"
#~ msgstr "типовий відеоприймач GStreamer"

#~ msgid ""
#~ "GStreamer can play video using any number of output elements. Some "
#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. "
#~ "The videosink can be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "У GStreamer передбачено відтворення відео за допомогою довільної "
#~ "кількості елементів виведення. Серед можливих варіантів xvimagesink, "
#~ "ximagesink, sdlvideosink та aasink. Приймач відеоданих може бути окремим "
#~ "каналом з декількох обробників, а не просто одним елементом."

#~ msgid "description for default GStreamer videosink"
#~ msgstr "опис типового відеоприймача GStreamer"

#~ msgid "Describes the selected videosink element."
#~ msgstr "Описує вибраний елемент videosink."

#~ msgid "default GStreamer audiosrc"
#~ msgstr "типове джерело звуку GStreamer"

#~ msgid ""
#~ "GStreamer can record audio using any number of input elements. Some "
#~ "possible choices are osssrc, pulsesrc and alsasrc. The audio source can "
#~ "be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "У GStreamer передбачено можливість запису звукових даних за допомогою "
#~ "довільної кількості елементів вхідних даних. Серед можливих варіантів "
#~ "osssrc, pulsesrc та alsasrc. Джерелом звукових даних може бути окремий "
#~ "канал з декількох елементів, а не просто один елемент."

#~ msgid "description for default GStreamer audiosrc"
#~ msgstr "опис типового джерела звуку GStreamer"

#~ msgid "Describes the selected audiosrc element."
#~ msgstr "Описує вибраний елемент audiosrc."

#~ msgid "default GStreamer videosrc"
#~ msgstr "типове джерело відео GStreamer"

#~ msgid ""
#~ "GStreamer can record video from any number of input elements. Some "
#~ "possible choices are v4lsrc, v4l2src and videotestsrc. The video source "
#~ "can be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "У GStreamer передбачено можливість запису відеоданих за допомогою "
#~ "довільної кількості елементів вхідних даних. Серед можливих варіантів "
#~ "v4lsrc, v4l2src та videotestsrc. Джерелом відеоданих може бути окремий "
#~ "канал з декількох елементів, а не просто один елемент."

#~ msgid "description for default GStreamer videosrc"
#~ msgstr "опис типового джерела відео GStreamer"

#~ msgid "Describes the selected videosrc element."
#~ msgstr "Описує вибраний елемент videosrc."

#~ msgid "default GStreamer visualization"
#~ msgstr "типова візуалізація GStreamer"

#~ msgid ""
#~ "GStreamer can put visualization plugins in a pipeline to transform audio "
#~ "streams in video frames. Some possible choices are goom, goom2k1 and "
#~ "synaesthesia. The visualization plugin can be a partial pipeline instead "
#~ "of just one element."
#~ msgstr ""
#~ "У GStreamer передбачено додавання до каналу обробки додатків візуалізації "
#~ "для обробки потоків звукових даних у кадрах відео. Серед можливих "
#~ "варіантів goom, goom2k1 та synaesthesia. Додаток візуалізації може бути "
#~ "окремим каналом, а не просто одним елементом."

#~ msgid "description for default GStreamer visualization"
#~ msgstr "опис типової візуалізації GStreamer"

#~ msgid "Describes the selected visualization element."
#~ msgstr "Описує вибраний елемент візуалізації."

#~ msgid "Couldn't get the Manifest's URI"
#~ msgstr "Не вдалося отримати адреси Manifest"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Спроба запису до файла «%s» завершилася невдало"
