<?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_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">%1$s </xliff:g> te voltooien. \n\nTik <xliff:g id="QUEUE_TEXT">%2$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">%1$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">%2$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">"<xliff:g id="DURATION">%s</xliff:g> resterend"</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>
