# Polish translation for gst-plugins-bad.
# This file is distributed under the same license as the gst-plugins-bad package.
# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2016.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2016-11-01 20:53+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"
"X-Bugs: Report translation errors to the Language-Team address.\n"

msgid "failed to draw pattern"
msgstr "nie udało się narysować wzoru"

msgid "A GL error occured"
msgstr "Wystąpił błąd GL"

msgid "format wasn't negotiated before get function"
msgstr "format nie został wynegocjowany przed funkcją pobrania"

msgid "OpenCV failed to load template image"
msgstr "Odczyt obrazu wzorca przez OpenCV nie powiódł się"

msgid "Could not read title information for DVD."
msgstr "Nie udało się odczytać informacji o tytułach dla DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Nie udało się otworzyć urządzenia DVD '%s'."

msgid "Failed to set PGC based seeking."
msgstr "Nie udało się ustawić przewijania opartego na PGC."

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 file contains no playable streams."
msgstr "Ten plik nie zawiera strumieni do odtworzenia."

msgid "Could not open sndfile stream for reading."
msgstr "Nie udało się otworzyć strumienia sndfile do odczytu."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Wygenerowany plik ma dłuższy czas rozbiegówki niż czas trwania strumieni"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Brak elementu '%s' - proszę sprawdzić instalację GStreamera."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"Położenie pliku ustawiono na NULL, proszę ustawić na poprawną nazwę pliku"

msgid "Digitalzoom element couldn't be created"
msgstr "Nie udało się utworzyć elementu Digitalzoom"

msgid "Subpicture format was not configured before data flow"
msgstr "Format podobrazu nie został skonfigurowany przed przepływem danych"

msgid "Failed to get fragment URL."
msgstr "Nie udało się uzyskać URL-a fragmentu."

msgid "Couldn't download fragments"
msgstr "Nie udało się pobrać fragmentów"

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

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Urządzenie \"%s\" nie istnieje."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Nie udało się otworzyć urządzenia frontendu \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Nie udało się pobrać ustawień z urządzenia frontendu \"%s\"."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Nie można wyliczyć systemów dostarczania z urządzenia frontendu \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Nie udało się otworzyć pliku \"%s\" do odczytu."

msgid "Couldn't find channel configuration file"
msgstr "Nie udało się odnaleźć pliku konfiguracyjnego kanałów"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Nie udało się wczytać pliku konfiguracyjnego kanałów: '%s'"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Nie udało się odnaleźć szczegółów dla kanału '%s'"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Brak właściwości dla kanału '%s'"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Nie udało się ustawić właściwości dla kanału '%s'."

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Nie udało się odnaleźć pliku konfiguracyjnego kanałów: '%s'"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Plik konfiguracyjny kanałów nie zawiera żadnych kanałów"

#~ msgid "Could not establish connection to sndio"
#~ msgstr "Nie udało się ustanowić połączenia z sndio"

#~ msgid "Failed to query sndio capabilities"
#~ msgstr "Nie udało się odpytać o możliwości sndio"

#~ msgid "Could not configure sndio"
#~ msgstr "Nie udało się skonfigurować sndio"

#~ msgid "Could not start sndio"
#~ msgstr "Nie udało się uruchomić sndio"

#~ msgid "No file name specified for writing."
#~ msgstr "Nie określono nazwy pliku do zapisu."

#~ msgid ""
#~ "Given file name \"%s\" can't be converted to local file name encoding."
#~ msgstr ""
#~ "Podanej nazwy pliku \"%s\" nie można przekształcić do lokalnego kodowania "
#~ "nazw plików."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Nie udało się otworzyć pliku \"%s\" do zapisu."
