<?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">"Downloadbeheer"</string>
    <string name="storage_description" msgid="7982444311558023664">"Downloads"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Downloadbeheer weergeven."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Hiermee heeft de app toegang tot downloadbeheer en kan de app via downloadbeheer bestanden downloaden. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonsgegevens."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Geavanceerde functies van de downloadbeheerder."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Hiermee heeft de app toegang tot de geavanceerde functies van downloadbeheer. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonsgegevens."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Downloadmeldingen verzenden."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Hiermee kan de app meldingen verzenden over voltooide downloads. Schadelijke apps kunnen dit gebruiken om andere apps die bestanden downloaden in verwarring te brengen."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Alle downloads naar USB-opslag bekijken"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Alle downloads naar SD-kaart weergeven"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Hiermee kan de app alle downloads op de SD-kaart zien, ongeacht welke app ze heeft gedownload."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Ruimte in de downloadcache reserveren"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Hiermee kan de app bestanden downloaden naar de downloadcache die niet automatisch kunnen worden verwijderd wanneer downloadbeheer meer ruimte nodig heeft."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"bestanden downloaden zonder melding"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Hiermee kan de app bestanden downloaden via downloadbeheer zonder dat de gebruiker een melding krijgt."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Toegang geven tot alle systeemdownloads"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Hiermee kan de app alle downloads bekijken en wijzigen die door een systeemapp zijn gestart."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Zonder titel&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Downloaden is voltooid."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Downloaden is mislukt."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Wifi nodig voor download"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Onderbr. op achtergrond."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download te groot voor providernetwerk"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Je moet wifi gebruiken om deze download van <xliff:g id="SIZE">%s </xliff:g> te voltooien. \n\nTik <xliff:g id="QUEUE_TEXT">%s </xliff:g> om deze download te starten wanneer je verbinding hebt met een wifi-netwerk."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"In wachtrij plaatsen voor later downloaden?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Als je deze download van <xliff:g id="SIZE">%s </xliff:g> nu start, kan dit de levensduur van de batterij verkorten en/of leiden tot bovenmatig gebruik van je mobiele gegevensverbinding. Je provider kan hiervoor kosten rekenen.\n\n Raak \'<xliff:g id="QUEUE_TEXT">%s</xliff:g>\' aan om deze download te starten wanneer je verbinding hebt met een wifi-netwerk."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Wachtrij"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Annuleren"</string>
    <string name="button_start_now" msgid="792123674007840864">"Nu starten"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other">Er worden <xliff:g id="NUMBER">%d</xliff:g> bestanden gedownload</item>
      <item quantity="one">Er wordt 1 bestand gedownload</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> bestanden in de wachtrij</item>
      <item quantity="one">1 bestand in de wachtrij</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Nog <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Kan bestand niet openen"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Downloads"</string>
    <string name="download_queued" msgid="3302638231377947451">"In wachtrij"</string>
    <string name="download_running" msgid="3925050393361158266">"In uitvoering"</string>
    <string name="download_error" msgid="5144180777324573236">"Mislukt"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Wordt uitgevoerd, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
