# Slovenian translation for gst-plugins-ugly.
# Copyright (C) 2009 - 2011 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>, 2011.
#
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: 2012-11-21 00:14+0000\n"
"PO-Revision-Date: 2011-04-26 15:35+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"
"X-Poedit-Country: SLOVENIA\n"
"X-Poedit-Language: Slovenian\n"
"X-Poedit-SourceCharset: utf-8\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."

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Napaka med nastavljanjem kodirnika TwoLAME. Preverite parametre kodiranja."

#, c-format
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 "This stream contains no data."
msgstr "Pretok ne vsebuje podatkov."

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

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