<?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="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 persoonlijke gegevens."</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 persoonlijke gegevens."</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">"U moet wifi gebruiken om deze download van <xliff:g id="SIZE">%s </xliff:g> te voltooien. "\n\n"Raak <xliff:g id="QUEUE_TEXT">%s </xliff:g> aan om deze download te starten wanneer u verbinding heeft 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 u deze download van <xliff:g id="SIZE">%s </xliff:g> nu start, kan dit de levensduur van de accu verkorten en/of leiden tot bovenmatig gebruik van uw mobiele gegevensverbinding. Uw provider kan hiervoor kosten rekenen."\n\n" Raak \'<xliff:g id="QUEUE_TEXT">%s</xliff:g>\' aan om deze download te starten wanneer u verbinding heeft 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>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
    <!-- no translation found for notif_summary_active:one (8475775855911967027) -->
    <!-- no translation found for notif_summary_active:other (9087228371320573153) -->
    <!-- no translation found for notif_summary_waiting:one (5537481763963544278) -->
    <!-- no translation found for notif_summary_waiting:other (549229034166062887) -->
    <!-- no translation found for download_no_application_title (7935659741162801699) -->
    <skip />
</resources>
