<?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="5264040740662487684">"Downloadadministrator"</string>
    <string name="storage_description" msgid="169690279447532621">"Downloads"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Få adgang til downloadadministrator."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Tillader, at appen kan få adgang til downloadadministratoren og til at bruge den til at downloade filer. Ondsindede apps kan bruge dette til at afbryde downloads og få adgang til personlige oplysninger."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Avancerede funktioner for downloadadministrator."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Tillader, at appen kan få adgang til downloadadministrators avancerede funktioner. Ondsindede apps kan bruge dette til at afbryde downloads og få adgang til personlige oplysninger."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Send notifikationer om downloads."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Tillader, at appen kan sende meddelelser om fuldførte downloads. Ondsindede apps kan bruge dette til at forvirre andre apps, der downloader filer."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Reserver plads i downloadcache"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Tillader, at appen kan downloade filer til downloadcachen, som ikke automatisk kan slettes, når downloadadministratoren har brug for mere plads."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"downloade filer uden notifikation"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Tillader, at appen kan downloade filer via downloadadministratoren, uden at brugeren får besked."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Adgang til alle systemdownloads"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Tillader, at appen kan se og ændre alle downloads, der igangsættes af en app i systemet."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Uden titel&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Downloaden er fuldført."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Downloaden mislykkedes."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Downloaden kræver Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Standset i baggrunden."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Downloadfilen er for stor til mobilnetværk"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Du skal bruge Wi-Fi for at fuldføre denne download på <xliff:g id="SIZE">%1$s </xliff:g>. \n\nTryk på <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> for at starte denne download, næste gang du får forbindelse til et Wi-Fi-netværk."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"I kø til senere download?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Hvis downloaden på <xliff:g id="SIZE">%1$s </xliff:g> startes nu, kan batteriets levetid forkortes og/eller medføre overdreven brug af din mobildata, som kan koste ekstra hos dit mobilselskab afhængigt af dit dataabonnement.\n\n Tryk på <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> for at starte downloaden ved næste forbindelse til Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Kø"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Annuller"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Begynd nu"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> fil downloades</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer downloades</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> fil venter</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer venter</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"<xliff:g id="DURATION">%s</xliff:g> tilbage"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Filen kan ikke åbnes"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Downloads"</string>
    <string name="download_queued" msgid="3383844741769045371">"I kø"</string>
    <string name="download_running" msgid="774654178925442490">"I gang"</string>
    <string name="download_error" msgid="1857737890005386798">"Mislykkedes"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"I gang, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
