# Slovenian translation for gst-plugins-ugly.
# Copyright (C) 2009 - 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-ugly package.
# Matej Urbančič <matej.urban@gmail.com>, 2009.
# Klemen Košir <klemen.kosir@gmx.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2018-10-02 23:04+0100\n"
"PO-Revision-Date: 2012-03-26 22:48+0100\n"
"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"

msgid "Could not read from CD."
msgstr "S CD-ja ni mogoče brati."

msgid "Could not open CD device for reading."
msgstr "Naprave CD ni mogoče odpreti za branje."

msgid "Disc is not an Audio CD."
msgstr "Disk ni zvočni CD."

msgid "Could not open DVD"
msgstr "DVD-ja ni mogoče odpreti"

#, c-format
msgid "Could not open DVD title %d"
msgstr "DVD naslova %d ni mogoče odpreti."

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Napaka med odpiranjem poglavja %d DVD naslova %d."

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr "DVD naslova %d ni mogoče odpreti. Interaktivni naslovi niso podprti."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVD-ja ni mogoče prebrati. Verjetno je DVD šifriran, knjižnica za "
"dešifriranje pa ni nameščena."

msgid "Could not read DVD."
msgstr "DVD-ja ni mogoče prebrati."

msgid "This stream contains no data."
msgstr "Pretok ne vsebuje podatkov."

#~ msgid ""
#~ "Failed to configure LAME mp3 audio encoder. Check your encoding "
#~ "parameters."
#~ msgstr ""
#~ "Napaka med nastavljanjem zvočnega kodirnika mp3 LAME. Preverite parametre "
#~ "kodiranja."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Zahtevana bitna hitrost %d kbit/s za lastnost \"%s\" ni dovoljena. Bitna "
#~ "hitrost je bila spremenjena na %d kbit/s."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Napaka med nastavljanjem kodirnika TwoLAME. Preverite parametre kodiranja."

#~ msgid "Internal data stream error."
#~ msgstr "Notranja napaka pretoka podatkov."

#~ msgid "Failed to configure LAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Napaka med nastavljanjem kodirnika LAME. Preverite parametre kodiranja."
