# Swedish translation for gst-plugins-ugly.
# Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-ugly package.
# Daniel Nylander <po@danielnylander.se>, 2007, 2008, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.10.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2013-11-09 15:57+0100\n"
"PO-Revision-Date: 2009-03-10 16:12+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\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 "Kunde inte läsa från cd."

msgid "Could not open CD device for reading."
msgstr "Kunde inte öppna cd-enheten för läsning."

msgid "Disc is not an Audio CD."
msgstr "Skivan är inte en ljud-cd."

msgid "Could not open DVD"
msgstr "Kunde inte öppna dvd"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Kunde inte öppna dvd-titel %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Misslyckades med att gå till kapitel %d för dvd-titel %d"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Kunde inte öppna dvd-titel %d. Interaktiva titlar stöds inte av det här "
"elementet"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "Kunde inte öppna dvd"

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""
"Misslyckades med att konfigurera LAME-kodaren. Kontrollera dina "
"kodningsparametrar."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""
"Den begärda bitfrekvensen %d kbit/s för egenskapen \"%s\" tillåts inte. "
"Bitfrekvensen ändrades till %d kbit/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""
"Misslyckades med att konfigurera TwoLAME-kodaren. Kontrollera dina "
"kodningsparametrar."

msgid "This stream contains no data."
msgstr "Den här strömmen innehåller inget data."

msgid "Internal data stream error."
msgstr "Fel i intern dataström."

#~ msgid "Invalid title information on DVD."
#~ msgstr "Ogiltig titelinformation på dvd."

#~ msgid "Could not read title information for DVD."
#~ msgstr "Kunde inte läsa titelinformation för dvd."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "Misslyckades med att öppna dvd-enheten \"%s\"."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "Misslyckades med att ställa in PGC-baserad spolning."

#~ msgid "This file is encrypted and cannot be played."
#~ msgstr "Den här filen är krypterad och kan inte spelas upp."
