# 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: 2018-10-02 23:04+0100\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 "This stream contains no data."
msgstr "Tento proud neobsahuje žádná data."

#~ 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í."

#~ 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 "Internal data stream error."
#~ msgstr "Interní chyba datového proudu."
