# Czech translations of gst-plugins-ugly.
# Copyright (C) 2007, 2008, 2009 the author(s) of gst-plugins-ugly.
# Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>.
# This file is put in the public domain.
# Miloslav Trmac <mitr@volny.cz>, 2004.
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly-0.10.10.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2013-08-28 16:56+0100\n"
"PO-Revision-Date: 2009-03-16 03:46+0100\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"

msgid "Could not read from CD."
msgstr "Nezdařilo se čtení z CD."

msgid "Could not open CD device for reading."
msgstr "Nezdařilo se otevření zařízení CD ke čtení."

msgid "Disc is not an Audio CD."
msgstr "Disk není zvukovým CD."

msgid "Could not open DVD"
msgstr "Nezdařilo se otevření DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Nezdařilo se otevření titulu DVD %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Nezdařil se přechod na kapitolu %d titulu DVD %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Nezdařilo se otevření titulu DVD %d. Interaktivní tituly nejsou tímto prvkem "
"podporovány"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "Nezdařilo se otevření DVD"

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Nezdařilo se nastavení kodéru TwoLAME. Je nutné zkontrolovat parametry "
"kódování."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""
"Požadovaný datový tok %d kilobitů za sekundu není u vlastnosti \"%s\" "
"povolen. Datový tok byl změněn na %d kilobitů za sekundu."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""
"Nezdařilo se nastavení kodéru TwoLAME. Je nutné zkontrolovat parametry "
"kódování."

msgid "This stream contains no data."
msgstr "Tento proud neobsahuje žádná data."

msgid "Internal data stream error."
msgstr "Interní chyba datového proudu."

#, fuzzy
#~ msgid ""
#~ "Failed to configure LAMEMP3ENC encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Nezdařilo se nastavení kodéru LAME. Je nutné zkontrolovat parametry "
#~ "kódování."

#~ msgid "Invalid title information on DVD."
#~ msgstr "Neplatná informace o titulu na DVD."

#~ msgid "Could not read title information for DVD."
#~ msgstr "Nezdařilo se čtení informace o titulu u DVD."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "Nezdařilo se otevření zařízení DVD \"%s\"."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "Nezdařilo se připravit hledání založené na PGC."
