# Polish translation for gst-plugins-ugly.
# This file is distributed under the same license as the gst-plugins-ugly package.
# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012.
#
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: 2012-11-28 19:34+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Could not read from CD."
msgstr "Odczyt z CD nie powiódł się."

msgid "Could not open CD device for reading."
msgstr "Nie udało się otworzyć urządzenia CD do odczytu."

msgid "Disc is not an Audio CD."
msgstr "Płyta nie jest płytą CD Audio."

msgid "Could not open DVD"
msgstr "Nie udało się otworzyć DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Nie udało się otworzyć tytułu DVD %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Nie udało się przemieścić do rozdziału %d tytułu DVD %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Nie udało się otworzyć tytułu DVD %d. Interaktywne tytułu nie są obsługiwane "
"przez ten element"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Nie udało się odczytać DVD. Powodem może być to, że płyta jest zaszyfrowana, "
"a biblioteka odszyfrowująca nie została zainstalowana."

msgid "Could not read DVD."
msgstr "Nie udało się odczytać DVD."

msgid "This stream contains no data."
msgstr "Ten strumień nie zawiera danych."

#~ msgid ""
#~ "Failed to configure LAME mp3 audio encoder. Check your encoding "
#~ "parameters."
#~ msgstr ""
#~ "Nie udało się skonfigurować kodera dźwięku mp3 LAME. Proszę sprawdzić "
#~ "parametry kodowania."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Żądana prędkość bitowa %d kbit/s dla właściwości '%s' nie jest dozwolona. "
#~ "Prędkość bitowa zmieniona na %d kbit/s."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Nie udało się skonfigurować kodera TwoLAME. Proszę sprawdzić parametry "
#~ "kodowania."

#~ msgid "Internal data stream error."
#~ msgstr "Błąd wewnętrzny strumienia danych."
