<?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">"Aflaaibestuurder"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Kry toegang tot aflaaibestuurder."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"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 aflaaisels te ontwrig en toegang tot private inligting te kry."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Gevorderde aflaaibestuurder-funksies"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Laat die program toe om toegang te kry tot die aflaaibestuurder se gevorderde instellings. Kwaadwillige programme kan dit gebruik om aflaaisels te ontwrig en toegang tot private inligting te kry."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Stuur aflaaikennisgewings."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Laat die program toe om kennisgewings te stuur oor voltooide aflaaisels. Kwaadwillige programme kan dit gebruik om ander programme wat lêers aflaai, te verwar."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Sien alle aflaaisels na USB-berging"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Sien alle aflaaisels op SD-kaart"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Laat die program toe om alle aflaaisels na die SD-kaart te sien, ongeag deur watter program hulle afgelaai is."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserveer ruimte in die aflaaikas"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"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="8837971946078327262">"laai lêers af sonder kennisgewing"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"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="2436240495424393717">"Kry toegang tot alle stelselaflaaisels"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Laat die program toe om alle aflaaisels wat deur enige program op hierdie stelsel geïnisieer is, te sien en te wysig."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Ongetiteld&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Aflaai voltooi."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Aflaai onsuksesvol."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Aflaaiselgrootte vereis Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Laat wag op agtergrond."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Aflaaisel te groot vir bedryfsnetwerk"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Jy moet Wi-Fi gebruik om hierdie <xliff:g id="SIZE">%s </xliff:g>-aflaaisel te voltooi. "\n\n"Raak <xliff:g id="QUEUE_TEXT">%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="7441589306734687400">"Plaas in waglys om later af te laai?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"As jy nou hierdie <xliff:g id="SIZE">%s </xliff:g>-aflaaisel 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">%s</xliff:g> om hierdie aflaaisel te begin die volgende keer wat jy gekoppel is aan \'n Wi-Fi-netwerk."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Waglys"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Kanselleer"</string>
    <string name="button_start_now" msgid="792123674007840864">"Begin nou"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
  <plurals name="notif_summary_active">
    <item quantity="one" msgid="8475775855911967027">"1 leêr laai tans af"</item>
    <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> leêrs laai tans af"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 leêr wag tans"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> leêrs wag tans"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> oor"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Kan nie lêer oopmaak nie"</string>
</resources>
