# 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.
# Marek Černocký <marek@manet.cz>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-11-01 17:53+0200\n"
"PO-Revision-Date: 2013-09-07 07:06+0200\n"
"Last-Translator: Marek Černocký <marek@manet.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"
"X-Generator: Gtranslator 2.91.6\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řít zařízení CD pro čtení."

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

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

#, c-format
msgid "Could not open DVD title %d"
msgstr "Nezdařilo se otevřít titul 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řít titul 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 ""
"Nezdařilo se čtení DVD. To může být způsobeno tím, že je DVD šifrováno a "
"knihovna pro dešifrování DVD není nainstalována."

msgid "Could not read DVD."
msgstr "Nezdařilo se čtení DVD."

msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Selhalo nastavení zvukového kodéru LAME mp3. Zkontrolujte 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 kb/s za sekundu není u vlastnosti „%s“ povolen. "
"Datový tok byl změněn na %d kb/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr "Selhalo nastavení kodéru TwoLAME. Zkontrolujte 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."
