<?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">"Aflaaibestuurder"</string>
    <string name="storage_description" msgid="169690279447532621">"Aflaaie"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Kry toegang tot aflaaibestuurder."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Laat die program toe om toegang te kry tot die aflaaibestuurder en dit te gebruik om lêers af te laai. Kwaadwillige programme kan dit gebruik om aflaaie te ontwrig en toegang tot private inligting te kry."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Gevorderde aflaaibestuurder-funksies"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Laat die program toe om toegang te kry tot die aflaaibestuurder se gevorderde instellings. Kwaadwillige programme kan dit gebruik om aflaaie te ontwrig en toegang tot private inligting te kry."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Stuur aflaaikennisgewings."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Laat die program toe om kennisgewings te stuur oor voltooide aflaaie. Kwaadwillige programme kan dit gebruik om ander programme wat lêers aflaai, te verwar."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Reserveer ruimte in die aflaaikas"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Laat die program toe om lêers af te laai na die aflaaikas, wat nie outomaties uitgevee kan word as die aflaaibestuurder meer spasie benodig nie."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"laai lêers af sonder kennisgewing"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Laat die program toe om lêers deur die aflaaibestuurder af te laai sonder enige kennisgewing wat aan die gebruiker gewys word."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Kry toegang tot alle stelselaflaaisels"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Laat die program toe om alle aflaaie wat deur enige program op hierdie stelsel geïnisieer is, te sien en te wysig."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Ongetiteld&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Aflaai voltooi."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Aflaai onsuksesvol."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Aflaaiselgrootte vereis Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Laat wag op agtergrond."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Aflaai te groot vir bedryfsnetwerk"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Jy moet Wi-Fi gebruik om hierdie <xliff:g id="SIZE">%1$s </xliff:g>-aflaai te voltooi. \n\nRaak <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> om hierdie aflaai te begin die volgende keer as jy gekoppel is aan \'n Wi-Fi-netwerk."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Plaas in waglys om later af te laai?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"As jy nou hierdie <xliff:g id="SIZE">%1$s </xliff:g>-aflaai gaan aflaai, kan dit jou batterylewe verkort en/of lei tot oormatige gebruik van jou selfoon se dataverbinding, wat kan lei tot kostes deur jou selfoondiensverskaffer, afhangende van jou dataplan.\n\n Raak <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> om hierdie aflaai te begin die volgende keer wat jy gekoppel is aan \'n Wi-Fi-netwerk."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Waglys"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Kanselleer"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Begin nou"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> lêers laai tans af</item>
      <item quantity="one">1 lêer laai tans af</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> lêers wag tans</item>
      <item quantity="one">1 lêer wag tans</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"<xliff:g id="DURATION">%s</xliff:g> oor"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Kan nie lêer oopmaak nie"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Aflaaie"</string>
    <string name="download_queued" msgid="3383844741769045371">"In waglys"</string>
    <string name="download_running" msgid="774654178925442490">"Besig"</string>
    <string name="download_error" msgid="1857737890005386798">"Onsuksesvol"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Nog besig, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
