# Translation of gst-plugins-bad to Croatian.
# This file is put in the public domain.
#
# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
# Božidar Putanec <bozidarp@yahoo.com>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.7.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-11-17 15:03+0200\n"
"PO-Revision-Date: 2016-05-27 12:45-0700\n"
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"Language: hr\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 2.0\n"

msgid "failed to draw pattern"
msgstr ""

msgid "A GL error occured"
msgstr ""

msgid "format wasn't negotiated before get function"
msgstr "format nije bio dogovoren prije ‘get’ funkcije"

msgid "OpenCV failed to load template image"
msgstr "OpenCV nije uspio učitati predložak slike"

msgid "Could not read title information for DVD."
msgstr "Iz naslova se ne mogu pročitati informacije o DVD-u"

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Nije uspjelo otvoriti DVD uređaj ‘%s’."

msgid "Failed to set PGC based seeking."
msgstr "Pretraga temeljena na PGC-u nije uspjela."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVD nije moguće pročitati. DVD je možda kriptiran, a biblioteka za "
"dekriptiranje DVD-a nije instalirana."

msgid "Could not read DVD."
msgstr "DVD nije moguće pročitati."

msgid "This file contains no playable streams."
msgstr ""
"Ova datoteka ne sadrži nijedan upotrebljivi stream (tok podataka koji bi se "
"mogao reproducirati)."

msgid "Could not open sndfile stream for reading."
msgstr "‘sndfile’ stream (tok podataka) nije moguće otvoriti za čitanje."

msgid "Could not establish connection to sndio"
msgstr "Spajanje na ‘sndio’ nije moguće uspostaviti"

msgid "Failed to query sndio capabilities"
msgstr "Nije uspjelo ispitati ‘sndio’ mogućnosti"

msgid "Could not configure sndio"
msgstr "‘sndio’ nije moguće konfigurirati"

msgid "Could not start sndio"
msgstr "‘sndio’ nije moguće pokrenuti"

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"U generiranoj datoteci priprema (preroll vrijeme) je duža od ukupnog "
"trajanja streama (toka podataka)"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Nedostaje element ‘%s’ - provjerite vašu GStreamer instalaciju."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr "Lokacija datoteke je prazna (NULL); navedite valjani naziv datoteke"

msgid "Digitalzoom element couldn't be created"
msgstr "Nije moguće napraviti (kreirati) element za Digitalzoom"

msgid "Subpicture format was not configured before data flow"
msgstr ""
"Format podslike (subpicture) nije bio konfiguriran prije protoka podataka"

msgid "Failed to get fragment URL."
msgstr "Nije uspjelo dobiti fragmente adrese URL-a."

msgid "Couldn't download fragments"
msgstr "Nije moguće preuzeti fragmente"

msgid "Internal data stream error."
msgstr "Interna greška toka (stream) podataka."

msgid "No file name specified for writing."
msgstr "Nedostaje naziv (nema ga) datoteke za pisanje."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Naziv datoteke „%s“ ne može se pretvoriti u lokalno kodirane naziva datoteka."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Datoteku „%s“ nije moguće otvoriti za pisanje."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Uređaj „%s“ ne postoji."

# http://whatis.techtarget.com/definition/front-end
#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Sučelje (frontend) uređaja „%s“ nije moguće otvoriti."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Od sučelja (frontend) uređaja „%s“ nije moguće dobiti postavke."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Dostavne sustave nije moguće nabrojati iz sučelja (frontend) uređaja „%s“."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Datoteku „%s“ nije moguće otvoriti za čitanje."

#, fuzzy
msgid "Couldn't find channel configuration file"
msgstr "Konfiguracijsku datoteku za DVB kanal nije moguće pronaći"

#, fuzzy, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Nije moguće učitati konfiguracijsku datoteku za DVB kanal: %s"

#, fuzzy, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći"

#, fuzzy, c-format
msgid "No properties for channel '%s'"
msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći"

#, fuzzy, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Pojedinosti za DVB kanal %s nije moguće pronaći"

#, fuzzy, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Konfiguracijsku datoteku za DVB kanal nije moguće pronaći"

#, fuzzy
msgid "Channel configuration file doesn't contain any channels"
msgstr "Konfiguracijska datoteka za DVB kanal ne sadrži nijedan kanal"

#~ msgid "Internal data flow error."
#~ msgstr "Interna greška u protoku podataka."

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Ne mogu pisati u datoteku „%s”."
