# Greek translation for gst-plugins-bad.
# This file is put in the public domain.
#
# Michael Kotsarinis <mk73628@gmail.com>, 2010.
# Simos Xenitellis <simos.lists@googlemail.com>, 2010.
# Savvas Radevic <vicedar@gmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-03-15 11:41+0200\n"
"PO-Revision-Date: 2012-05-05 19:17+0100\n"
"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"

msgid "format wasn't negotiated before get function"
msgstr ""

msgid "OpenCV failed to load template image"
msgstr ""

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 είναι "
"κρυπτογραφημένο και δεν έχει εγκατασταθεί μια βιβλιοθήκη αποκρυπτογράφησης "
"DVD."

msgid "Could not read DVD."
msgstr "Αδυναμία ανάγνωσης δίσκου DVD."

msgid "This file contains no playable streams."
msgstr ""

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Αδυναμία ανοίγματος αρχείου \"%s\" για ανάγνωση."

msgid "Could not establish connection to sndio"
msgstr ""

msgid "Failed to query sndio capabilities"
msgstr ""

#, fuzzy
msgid "Could not configure sndio"
msgstr "Αδυναμία ανοίγματος αρχείου \"%s\" για ανάγνωση."

#, fuzzy
msgid "Could not start sndio"
msgstr "Αδυναμία ανάγνωσης δίσκου DVD."

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

#, 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 "Αδυναμία ανοίγματος συσκευής frontend \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Αδυναμία λήψης ρυθμίσεων από τη συσκευή frontend \"%s\"."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Αδυναμία λήψης ρυθμίσεων από τη συσκευή frontend \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Αδυναμία ανοίγματος αρχείου \"%s\" για ανάγνωση."

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 write to file \"%s\"."
#~ msgstr "Αδυναμία εγγραφής στο αρχείο \"%s\"."
