# Danish translation of gst-plugins-bad.
# Copyright (C) 2009 gst.
# This file is distributed under the same license as the gst-plugins-bad package.
# Mogens Jaeger <mogens@jaeger.tf>, 2007.
# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad-0.10.13.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2010-05-11 18:23+0100\n"
"PO-Revision-Date: 2009-08-12 11:28+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Could not read title information for DVD."
msgstr "Kunne ikke læse titelinformation for dvd."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Kunne ikke åbne dvd-enhed »%s«."

msgid "Failed to set PGC based seeking."
msgstr "Kunne ikke indstille PGC-baseret søgning."

msgid "No file name specified for writing."
msgstr "Intet filnavn er angivet til skrivning."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Kunne ikke åbne filen »%s« til skrivning."

msgid "Internal data stream error."
msgstr "Intern datastrømfejl."

#, c-format
msgid "Could not write to file \"%s\"."
msgstr "Kunne ikke skrive til fil »%s«."

msgid "Internal data flow error."
msgstr "Intern datastrømfejl."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Enheden »%s« eksisterer ikke."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Kunne ikke åbne forende-enheden »%s«."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Kunne ikke hente indstillinger fra forende-enheden »%s«."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Kunne ikke åbne filen »%s« for læsning."

#~ msgid "%s %d"
#~ msgstr "%s %d"

#~ msgid "Internal clock error."
#~ msgstr "Intern urfejl."

#~ msgid "PCM 1"
#~ msgstr "PCM 1"

#~ msgid "PCM 2"
#~ msgstr "PCM 2"

#~ msgid "PCM 3"
#~ msgstr "PCM 3"

#~ msgid "PCM 4"
#~ msgstr "PCM 4"

#~ msgid "Green connector function"
#~ msgstr "Grøn forbindelsesfunktion"

#~ msgid "Green front panel connector function"
#~ msgstr "Grøn frontpanelforbindelsesfunktion"

#~ msgid "Pink connector function"
#~ msgstr "Lyserød forbindelsesfunktion"

#~ msgid "Pink front panel connector function"
#~ msgstr "Lyserød frontpanelforbindelsesfunktion"

#~ msgid "Blue connector function"
#~ msgstr "Blå forbindelsesfunktion"

#~ msgid "Blue front panel connector function"
#~ msgstr "Blå frontpanelforbindelsesfunktion"

#~ msgid "Orange connector function"
#~ msgstr "Orange forbindelsesfunktion"

#~ msgid "Orange front panel connector function"
#~ msgstr "Orange frontpanelforbindelsesfunktion"

#~ msgid "Black connector function"
#~ msgstr "Sort forbindelsesfunktion"

#~ msgid "Black front panel connector function"
#~ msgstr "Sort frontpanelforbindelsesfunktion"

#~ msgid "Gray connector function"
#~ msgstr "Grå forbindelsesfunktion"

#~ msgid "Gray front panel connector function"
#~ msgstr "Grå frontpanelforbindelsesfunktion"

#~ msgid "White connector function"
#~ msgstr "Hvid forbindelsesfunktion"

#~ msgid "White front panel connector function"
#~ msgstr "Hvid frontpanelforbindelsesfunktion"

#~ msgid "Red connector function"
#~ msgstr "Rød forbindelsesfunktion"

#~ msgid "Red front panel connector function"
#~ msgstr "Rød frontpanelforbindelsesfunktion"

#~ msgid "Yellow connector function"
#~ msgstr "Gul forbindelsesfunktion"

#~ msgid "Yellow front panel connector function"
#~ msgstr "Gul frontpanelforbindelsesfunktion"

#~ msgid "Virtual mixer channel configuration"
#~ msgstr "Virtuel mikserkanalkonfiguration"

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Mislykkedes i at konfigurere TwoLAME-koder. Undersøg dine "
#~ "kodningsparametre."

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Den anmodede bitrate %d kbit/s for egenskab »%s« er ikke tilladt. Bitraten "
#~ "blev ændret til %d kbit/s."

#~ msgid "This file is corrupt and cannot be played."
#~ msgstr "Denne fil er korrupt og kan ikke afspilles."

#~ msgid "This file is encrypted and cannot be played."
#~ msgstr "Denne fil er krypteret og kan ikke afspilles."
