# Danish translation of gst-plugins-good.
# Copyright (C) 2013 gst.
# This file is distributed under the same license as the gst-plugins-good package.
#
# Mogens Jaeger <mogens@jaeger.tf>, 2007.
# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011, 2012, 2013.
#
# gain -> forhøjelse
# boost -> øgning?
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2014-02-08 12:24+0100\n"
"PO-Revision-Date: 2013-12-08 23:54+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"

msgid "Jack server not found"
msgstr "Jack-server blev ikke fundet"

msgid "Failed to decode JPEG image"
msgstr "Mislykkedes i at afkode JPEG-billede"

#. TRANSLATORS: 'song title' by 'artist name'
#, c-format
msgid "'%s' by '%s'"
msgstr "»%s« af »%s«"

msgid "Could not connect to server"
msgstr "Kunne ikke forbinde til server"

msgid "No URL set."
msgstr "Ingen adresse angivet."

msgid "Server does not support seeking."
msgstr "Server understøtter ikke søgning."

msgid "Could not resolve server name."
msgstr "Kunne ikke slå servernavn op."

msgid "Could not establish connection to server."
msgstr "Kunne ikke skabe kontakt til serveren."

msgid "Secure connection setup failed."
msgstr "Opsætning af sikker forbindelse mislykkedes."

msgid ""
"A network error occured, or the server closed the connection unexpectedly."
msgstr ""
"Der opstod en netværksfejl, eller serveren lukkede uventet forbindelsen."

msgid "Server sent bad data."
msgstr "Server sendte ugyldige data."

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

msgid "No or invalid input audio, AVI stream will be corrupt."
msgstr "Ingen eller defekt inddatalyd, AVI-sekvens vil blive ødelagt."

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

msgid "This file is invalid and cannot be played."
msgstr "Denne fil er ufuldstændig og kan ikke afspilles."

msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr "Kan ikke afspille strøm, da den er krypteret med PlayReady DRM."

msgid "This file is corrupt and cannot be played."
msgstr "Denne fil er ødelagt og kan ikke afspilles."

msgid "Invalid atom size."
msgstr "Ugyldig atomstørrelse."

msgid "This file is incomplete and cannot be played."
msgstr "Denne fil er ufuldstændig og kan ikke afspilles."

msgid "The video in this file might not play correctly."
msgstr "Videoen i denne fil afspilles måske ikke korrekt."

# hvad er %d i dette program? Umiddelbart ville jeg tro det skulle
# hedde, "Afpiller kun første %d" men det kommer selvfølgelig an på 
# sammenhængen.
#, c-format
msgid "This file contains too many streams. Only playing first %d"
msgstr "Denne fil indeholder for mange strømme. Afspil først kun %d"

msgid ""
"No supported stream was found. You might need to install a GStreamer RTSP "
"extension plugin for Real media streams."
msgstr ""
"Ingen understøttet strøm blev fundet. Du skal måske installere et "
"udvidelsesmodul for GStreamer RTSP til Real media-strømme."

msgid ""
"No supported stream was found. You might need to allow more transport "
"protocols or may otherwise be missing the right GStreamer RTSP extension "
"plugin."
msgstr ""
"Ingen understøttet strøm blev fundet. Du mangler måske at tillade yderligere "
"transportprotokoller eller mangler måske det korrekte udvidelsesmodul til "
"GStreamer RTSP."

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

msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
"Kunne ikke åbne lydenhed til afspilning. Enheden anvendes af et andet "
"program."

msgid ""
"Could not open audio device for playback. You don't have permission to open "
"the device."
msgstr ""
"Kunne ikke åbne lydenhed til afspilning. Du har ikke rettighed til at åbne "
"enheden."

msgid "Could not open audio device for playback."
msgstr "Kunne ikke åbne enhed til afspilning."

msgid ""
"Could not open audio device for playback. This version of the Open Sound "
"System is not supported by this element."
msgstr ""
"Kunne ikke åbne lydenhed til afspilning. Denne version af Open Sound System "
"er ikke understøttet af dette element."

msgid "Playback is not supported by this audio device."
msgstr "Afspilning er ikke understøttet af denne lydenhed."

msgid "Audio playback error."
msgstr "Fejl ved lydafspilning."

msgid "Recording is not supported by this audio device."
msgstr "Optagelse er ikke understøttet af denne lydenhed."

msgid "Error recording from audio device."
msgstr "Fejl ved optagelse fra lydenhed."

msgid ""
"Could not open audio device for recording. You don't have permission to open "
"the device."
msgstr ""
"Kunne ikke åbne lydenhed til optagelse. Du har ikke rettighed til at åbne "
"enheden."

msgid "Could not open audio device for recording."
msgstr "Kunne ikke åbne lydenhed til optagelse."

msgid "Record Source"
msgstr "Optagelseskilde"

msgid "Microphone"
msgstr "Mikrofon"

msgid "Line In"
msgstr "Linje ind"

msgid "Internal CD"
msgstr "Intern cd"

msgid "SPDIF In"
msgstr "SPDIF ind"

msgid "AUX 1 In"
msgstr "AUX 1 ind"

msgid "AUX 2 In"
msgstr "AUX 2 ind"

msgid "Codec Loopback"
msgstr "Codec-loopback"

msgid "SunVTS Loopback"
msgstr "SunVTS-loopback"

msgid "Volume"
msgstr "Lydstyrke"

msgid "Gain"
msgstr "Forhøjelse"

msgid "Monitor"
msgstr "Monitor"

msgid "Built-in Speaker"
msgstr "Indbygget højtaler"

msgid "Headphone"
msgstr "Hovedtelefon"

msgid "Line Out"
msgstr "Linje ud"

msgid "SPDIF Out"
msgstr "SPDIF ud"

msgid "AUX 1 Out"
msgstr "AUX 1 ud"

msgid "AUX 2 Out"
msgstr "AUX 2 ud"

#, c-format
msgid "Error reading %d bytes from device '%s'."
msgstr "Fejl ved læsning af %d byte på enhed »%s«."

#, c-format
msgid "Failed to enumerate possible video formats device '%s' can work with"
msgstr ""
"Kunne ikke nummerere mulig videoformater som enhed »%s« kan fungere med"

#, c-format
msgid "Could not map buffers from device '%s'"
msgstr "Kunne ikke afbilde mellemlager fra enhed »%s«"

#, c-format
msgid "The driver of device '%s' does not support the IO method %d"
msgstr "Driveren til enhed »%s« understøtter ikke IO-metoden %d"

#, c-format
msgid "The driver of device '%s' does not support any known IO method."
msgstr "Driveren til enhed »%s« understøtter ingen kendt IO-metode."

#, c-format
msgid "Device '%s' does not support video capture"
msgstr "Enheden »%s« understøtter ikke videooptagelse"

#, c-format
msgid "Device '%s' is busy"
msgstr "Enheden »%s« er optaget"

#, c-format
msgid "Device '%s' cannot capture at %dx%d"
msgstr "Enheden »%s« kan ikke optage med %dx%d"

#, c-format
msgid "Device '%s' cannot capture in the specified format"
msgstr "Enheden »%s« kan ikke optage i det angivne format"

#, c-format
msgid "Could not get parameters on device '%s'"
msgstr "Kunne ikke hente parametre fra enhed »%s«"

msgid "Video device did not accept new frame rate setting."
msgstr "Videoenheden accepterede ikke ny indstilling for billedrate."

msgid "Video device could not create buffer pool."
msgstr "Videoenhed kunne ikke oprette mellemlagerkø."

#, c-format
msgid "Failed to get settings of tuner %d on device '%s'."
msgstr "Hentning af indstillinger for tuner %d på enhed »%s« fejlede."

#, c-format
msgid "Error getting capabilities for device '%s'."
msgstr "Fejl under hentning af kapaciteter for enhed »%s«."

#, c-format
msgid "Device '%s' is not a tuner."
msgstr "Enhed »%s« er ikke en tuner."

#, c-format
msgid "Failed to get radio input on device '%s'. "
msgstr "Kunne ikke hente radioinddata for enhed »%s«."

#, c-format
msgid "Failed to set input %d on device %s."
msgstr "Kunne ikke sætte inddata %d for enhed %s."

#, c-format
msgid "Failed to change mute state for device '%s'."
msgstr "Kunne ikke ændre tilstand for tænk/slut for enhed »%s«."

#, c-format
msgid "Cannot identify device '%s'."
msgstr "Kan ikke identificere enhed »%s«."

#, c-format
msgid ""
"Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
"it is a v4l1 driver."
msgstr ""
"Fejl ved hentning af egenskaber for enhed »%s«: Det er ikke en v412 driver. "
"Kontroller om det er en v411 driver."

#, c-format
msgid "Failed to query attributes of input %d in device %s"
msgstr "Listning af inddata-attributter for %d i enhed %s fejlede"

#, c-format
msgid "Failed to get setting of tuner %d on device '%s'."
msgstr "Hentning af indstillinger for tuner %d på enhed »%s« fejlede."

#, c-format
msgid "Failed to query norm on device '%s'."
msgstr "Listning af standard på enhed »%s« fejlede."

#, c-format
msgid "Failed getting controls attributes on device '%s'."
msgstr "Hentning af kontrolattributter for enhed »%s« fejlede."

#, c-format
msgid "This isn't a device '%s'."
msgstr "Dette er ikke en enheds »%s«."

#, c-format
msgid "Could not open device '%s' for reading and writing."
msgstr "Kunne ikke tilgå enhed »%s«."

#, c-format
msgid "Device '%s' is not a capture device."
msgstr "Enhed »%s« er ikke en optageenhed."

#, c-format
msgid "Device '%s' is not a output device."
msgstr "Enhed »%s« er ikke en uddataenhed."

#, c-format
msgid "Failed to set norm for device '%s'."
msgstr "Indstilling af standard for enhed »%s« fejlede."

#, c-format
msgid "Failed to get current tuner frequency for device '%s'."
msgstr "Kunne ikke hente nuværende tuner-frekvens for enhed »%s«."

#, c-format
msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
msgstr "Kunne ikke sætte nuværende tuner-frekvens for enhed »%s« til %lu Hz."

#, c-format
msgid "Failed to get signal strength for device '%s'."
msgstr "Kunne ikke hente signalstyrke for enhed »%s«."

#, c-format
msgid "Failed to get value for control %d on device '%s'."
msgstr "Kunne ikke hente værdi af kontrol %d for enhed »%s«."

#, c-format
msgid "Failed to set value %d for control %d on device '%s'."
msgstr "Kunne ikke sætte værdi %d på kontrol %d for enhed »%s«."

#, c-format
msgid "Failed to get current input on device '%s'. May be it is a radio device"
msgstr ""
"Kunne ikke hente nuværende inddata for enhed »%s«. Måske er det en radioenhed"

#, c-format
msgid ""
"Failed to get current output on device '%s'. May be it is a radio device"
msgstr ""
"Kunne ikke hente nuværende uddata for enhed »%s«. Måske er det en radioenhed"

#, c-format
msgid "Failed to set output %d on device %s."
msgstr "Kunne ikke sætte uddata %d for enhed %s."

msgid "Changing resolution at runtime is not yet supported."
msgstr "Ændring af opløsning under kørsel er endnu ikke understøttet."

msgid "Cannot operate without a clock"
msgstr "Kan ikke fungere uden et ur"
