# Friulian translation for gst-plugins-bad package of GStreamer project
# This file is put in the public domain.
# Fabio Tomat <f.t.public@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2016-12-30 13:28+0100\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <f.t.public@gmail.com>\n"
"Language: fur\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"
"X-Generator: Poedit 1.8.11\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgid "failed to draw pattern"
msgstr "no si è rivâts a disegnâ il motîf"

msgid "A GL error occured"
msgstr "Al è capitât un erôr GL"

msgid "format wasn't negotiated before get function"
msgstr "il formât nol jere concuardât prime de funzion get"

msgid "OpenCV failed to load template image"
msgstr "OpenCV nol è rivât a cjariâ la imagjin model"

msgid "Could not read title information for DVD."
msgstr "Impussibil lei lis informazions dal titul pal DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "No si è rivâts a vierzi il dispositîf DVD '%s'."

msgid "Failed to set PGC based seeking."
msgstr "No si è rivâts a stabilî la ricercje basade su PGC."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Impussibil lei il DVD. Al podarès jessi parcè che il DVD al è cifrât e no je "
"instalade une librarie par decifrâ."

msgid "Could not read DVD."
msgstr "Impussibil lei il DVD."

msgid "This file contains no playable streams."
msgstr "Chest file nol à flus riprodusibil."

msgid "Could not open sndfile stream for reading."
msgstr "Impussibil vierzi il flus sndfile pe leture."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Il file gjenerât al à un timp par tornâ a fâ sù preventîf plui grant de "
"durade dai siei flus"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Al mancje l'element '%s' - controle la instalazion di GStreamer."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"La posizion dal file e je metude a NULL, stabilissile a un non di file valit"

msgid "Digitalzoom element couldn't be created"
msgstr "L'element digitalzoom nol pues jessi creât"

msgid "Subpicture format was not configured before data flow"
msgstr "Il formât subpicture nol jere configurât prime dal fluî dai dâts"

msgid "Failed to get fragment URL."
msgstr "No si è rivâts a otignî il URL dal frament"

msgid "Couldn't download fragments"
msgstr "Impussibil discjariâ i framents"

msgid "Internal data stream error."
msgstr "Erôr interni dal flus dai dâts."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Il dispositîf \"%s\" nol esist."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Impussibil vierzi il dispositîf di frontend \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Impussibil otignî impostazions dal dispositîf di frontend \"%s\"."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Impussibil listâ i sistemis di consegne dal dispositîf di frontend \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Impussibil vierzi il file \"%s\" pe leture."

msgid "Couldn't find channel configuration file"
msgstr "Impussibil cjatâ il file di configurazion canâl"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Impussibil cjariâ il file di configurazion canâl: '%s'"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Impussibil cjatâ i detais pal canâl '%s'"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Nissune proprietât pal canâl '%s'"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "No si è rivâts a stabilî lis proprietâts pal canâl '%s'"

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Impussibil cjatâ il file di configurazion canâl: '%s'"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Il file di configurazion canâl nol à nissun canâl"

#~ msgid "Could not establish connection to sndio"
#~ msgstr "Impussibil stabilî la conession a sndio"

#~ msgid "Failed to query sndio capabilities"
#~ msgstr "No si è rivâts a interogâ lis funzionalitâts di sndio"

#~ msgid "Could not configure sndio"
#~ msgstr "Impussibil configurâ sndio"

#~ msgid "Could not start sndio"
#~ msgstr "Impussibil fâ partî sndio"

#~ msgid "No file name specified for writing."
#~ msgstr "Nissun non di file specificât pe scriture."

#~ msgid ""
#~ "Given file name \"%s\" can't be converted to local file name encoding."
#~ msgstr ""
#~ "Il non di file furnît \"%s\" nol pues jessi convertît te codifiche non "
#~ "file locâl."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Impussibil vierzi il file \"%s\" pe scriture."
