<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_label" msgid="3658948994665187911">"Downloadadministrator"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Få adgang til downloadadministrator."</string>
    <string name="permdesc_downloadManager" msgid="4240298564918160337">"Tillader, at programmet får adgang til downloadadministratoren og bruger det til at få adgang til downloadede filer. Ondsindede programmer kan bruge det til at afbryde downloads og få adgang til personlige oplysninger."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Avancerede funktioner for downloadadministrator."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="6985743912436565114">"Tillader, at programmet får adgang til de avancerede funktioner i downloadadministratoren. Ondsindede programmer kan bruge dette til at afbryde downloads og få adgang til personlige oplysninger."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Send downloadmeddelelser."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="8672701687104399228">"Tillader, at programmet sender meddelelser om afsluttede downloads. Ondsindede programmer kan bruge dette til at forvirre andre programmer, der downloader filer."</string>
    <string name="permlab_seeAllExternal" msgid="140058400609165726">"Se alle downloads til SD-kort"</string>
    <string name="permdesc_seeAllExternal" msgid="3298948060016417104">"Gør det muligt for programmet at se alle downloads til SD-kortet, uanset hvilket program, der downloadede dem."</string>
    <!-- no translation found for permlab_downloadCacheNonPurgeable (3069534308882047412) -->
    <skip />
    <!-- no translation found for permdesc_downloadCacheNonPurgeable (1089583021652571424) -->
    <skip />
    <!-- no translation found for permlab_downloadWithoutNotification (3650349274034807567) -->
    <skip />
    <!-- no translation found for permdesc_downloadWithoutNotification (5174806530123417020) -->
    <skip />
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Uden titel&gt;"</string>
    <string name="notification_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" og <xliff:g id="NUMBER">%d</xliff:g> mere"</string>
    <string name="notification_download_complete" msgid="840713937779273632">"Download afsluttet"</string>
    <string name="notification_download_failed" msgid="5343637375905111462">"Download mislykkedes"</string>
</resources>
