# Danish translation of gst-plugins-bad.
# Copyright (C) 2015 Mogens Jaeger og Joe Hansen.
# 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, 2011, 2013, 2014, 2015, 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-03 11:28+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\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 "kunne ikke tegne mønster"

msgid "A GL error occured"
msgstr "Der opstod en GL-fejl"

msgid "format wasn't negotiated before get function"
msgstr "format blev ikke forhandlet før hent funktion"

msgid "OpenCV failed to load template image"
msgstr "OpenCV mislykkedes i at indlæse skabelonaftryk"

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 ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Kunne ikke læse dvd. Dette kan være fordi dvd'en er krypteret og et dvd-"
"dekrypteringsbibliotek ikke er installeret."

msgid "Could not read DVD."
msgstr "Kunne ikke læse dvd."

msgid "This file contains no playable streams."
msgstr "Denne fil indeholder ingen spilbare strømme."

msgid "Could not open sndfile stream for reading."
msgstr "Kunne ikke åbne sndfile-strøm for læsning."

# pre-roll. The name of an online video commercial that appears prior to an online video,
# http://en.wiktionary.org/wiki/preroll
msgid "Generated file has a larger preroll time than its streams duration"
msgstr "Oprettet fil har en længere preroll-tid end strømmens varighed"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Manglende element »%s« - kontroller din GStreamer-installation."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr "Filplacering er sat til NULL, sæt den venligst til et gyldigt filnavn"

msgid "Digitalzoom element couldn't be created"
msgstr "Digitalzoom-element kunne ikke oprettes"

msgid "Subpicture format was not configured before data flow"
msgstr "Format for underbillede blev ikke konfigureret før datastrøm"

msgid "Failed to get fragment URL."
msgstr "Kunne ikke indhente fragmentadresse."

msgid "Couldn't download fragments"
msgstr "Kunne ikke hente fragmenter"

msgid "Internal data stream 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 "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Kunne opregne leveringssystemer fra forende-enheden »%s«."

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

msgid "Couldn't find channel configuration file"
msgstr "Kunne ikke finde kanalkonfigurationsfil"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Kunne ikke indlæse kanalkonfigurationsfilen: »%s«"

# måske om kanalen
#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Kunne ikke finde detaljer for kanalen »%s«"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Ingen egenskaber for kanalen »%s«"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Kunne ikke angive egenskaber for kanalen »%s«"

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Kunne ikke finde kanalkonfigurationsfilen: »%s«"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Kanalkonfigurationsfilen indeholder ikke nogen kanaler"

#~ msgid "Could not establish connection to sndio"
#~ msgstr "Kunne ikke etablere forbindelse til sndio"

#~ msgid "Failed to query sndio capabilities"
#~ msgstr "Kunne ikke forespørge sndio-funktioner"

#~ msgid "Could not configure sndio"
#~ msgstr "Kunne ikke konfigurere"

#~ msgid "Could not start sndio"
#~ msgstr "Kunne ikke starte sndio"

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

#~ msgid ""
#~ "Given file name \"%s\" can't be converted to local file name encoding."
#~ msgstr ""
#~ "Det angivne filnavn »%s« kan ikke konverteres til en lokal "
#~ "filnavnskodning."

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