<?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">"Umphathi wokulayisha"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Finyelela kumphathi wokulayisha"</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Ivuela insiza ukuthi ifinyelele izintweni ezijulile zomphathi wokulayisha. Izinsiza ezinobungozi zingakusebenzisa lokhu ukuphazamisa ukulayisha ziphinde zifinyelele emininingwaneni eyimfihlo."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Izici zomphathi wokulayisha othuthukisiwe."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Ivuela insiz ukuthi ifinyelele izinto ezijulile zomphathi wokulayisha. Izinsiza ezinobungozi zingakusebenzisa lokhu ukuphazamisa ukulayisha ziphinde zifinyelele emininingwaneni eyimfihlo."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Thumela izaziso zokulayisha"</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Ivumela insiza ukuthi ithumele izaziso yelana nokulayishwa okuqediwe. Izinsiza ezinobungozi zingakusebenzisa lokhu ukudida ezinye izinsiz ezilayisha amafayel."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Bona konke ukulanda kwisitoreji se-USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Bona konke ukulanda ekhadini le-SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Ivumela insiza ukuthi ibone konke okulayishiwe ekhadini le-SD ngale kokubona ukuthi iyiphi insiza ekulayishile."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Igcina isikhala ekulondolozeni kwesikhashana kokulanda"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Ivumela uhlelo lokusebenza ukulanda amafayela okulondoloza kwesikhashana angakwazi ukususwa ngokuzenzakalelayo lapho imeneja yokulanda idinga esikhala esengeziwe."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"landa amafayela ngaphandle kwesaziso"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Ivumela uhlelo lokusebenza ukulanda amafayela ngomeneja wokulanda ngaphandle kokuba isaziso siboniswe umsebenzisi."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Finyelela kuko konke ukulanda kwesistimu"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"vumela insiza ukuthi ibone iphinde iguqule konke okulayishiwe okuqalwe insiza ekwisistimu."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Akunasihloko&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Ukulayisha ungenisa kuqedile"</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Ukulayisha akuphumelelanga"</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Usayizi wokulanda udinga i-Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Kumisiwe okwesikhashana esizindeni"</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Ukulanda kukhulu kakhulu"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Kufanele usebenzise i-Wi-Fi ukuqedela lokhu <xliff:g id="SIZE">%s </xliff:g> kulayisha. "\n\n"Thinta Touch <xliff:g id="QUEUE_TEXT">%s </xliff:g> ukuqlisa lokhu  kulayisha esikhathini esizayo uxhuaniseke enethiwekhini ye-Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Linda ukulanda emva kwesikhathi?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Ukuqala lokhu kulanda <xliff:g id="SIZE">%s </xliff:g> manje kungenza impilo yebhethri yakho ibe mfishane noma kungadla ukusetshenziswa okweqile kwedatha yakho yokuxhumana okuholela ekukhokhisweni inkampani yakho yenethiwekhi kuncike esivumelwaneni senu sedatha. "\n\n" Thinta <xliff:g id="QUEUE_TEXT">%s</xliff:g> ukuqala lokhu kulayisha esikhathini esizayo uxhumaniseke enethiwekhini ye-Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Umugqa"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Khansela"</string>
    <string name="button_start_now" msgid="792123674007840864">"Qala manje"</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 ifayela elilandwayo"</item>
    <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> amafayela alandwayo"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 ifayela elilindiwe"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> amafayela alindile"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> esisele"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Ayikwazi ukuvula ifayela"</string>
</resources>
