# Greek translation for gst-plugins-ugly package of GStreamer project.
# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 GStreamer core team
# This file is distributed under the same license as the gst-plugins-ugly package.
# Simos Xenitellis <simos.lists@googlemail.com>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2018-10-02 23:04+0100\n"
"PO-Revision-Date: 2012-03-18 01:04+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 "Could not read from CD."
msgstr "Δέν μπόρεσε να γινει ανάγνωση το CD."

msgid "Could not open CD device for reading."
msgstr "Δέν ήταν δυνατό το άνοιγμα της συσκευής CD για την ανάγνωση. "

msgid "Disc is not an Audio CD."
msgstr "Ο δίσκος δεν είναι ένα ακουστικό CD."

msgid "Could not open DVD"
msgstr "Δεν ήταν δυνατό το άνοιγμα του DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Δεν ήταν δυνατό το άνοιγμα του τίτλου DVD %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Αποτυχία μετάβασης στο κεφάλαιο %d του τίτλου του DVD %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Δεν ήταν δυνατό το άνοιγμα του τίτλου DVD %d. Οι διαδραστικοί τίτλοι δεν "
"υποστηρίζονται από αυτό το στοιχείο"

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 stream contains no data."
msgstr "Η ροή αυτή δεν περιέχει καθόλου δεδομένα."

#, fuzzy
#~ msgid ""
#~ "Failed to configure LAME mp3 audio encoder. Check your encoding "
#~ "parameters."
#~ msgstr ""
#~ "Αδυναμία ρύθμισης του κωδικοποιητή LAME. Ελέγξτε τις παραμέτρους "
#~ "κωδικοποίησης."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Ο αιτούμενος ρυθμός μετάδοσης %d kbit/s για την ιδιοκτησία '%s' δεν είναι "
#~ "επιτρεπτός.Ορυθμός μετάδοσης άλλαξε σε %d kbit/s."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Αδυναμία ρύθμισης του κωδικοποιητή TwoLAME. Ελέγξτε τις παραμέτρους "
#~ "κωδικοποίησης."

#~ msgid "Internal data stream error."
#~ msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
