<?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">"Umphathi wokulayisha"</string>
    <string name="storage_description" msgid="169690279447532621">"Okulandiwe"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Finyelela kumphathi wokulayisha"</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Ivumela uhlelo lokusebenza lufinyelele isiphathi sokulandiwe namafayela alandiwe. Izinhlelo zokusebenza ezinobungozi zingakusebenzisa lokhu ukuphazamisa ukulanda ziphinde zifinyelele emininingwaneni eyimfihlo."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Izici zomphathi wokulayisha othuthukisiwe."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Ivumela uhlelo lokusebenza lufinyelele izinto ezijulile zesiphathi sokulayisha. Izinhlelo zokusebenza  ezinobungozi zingakusebenzisa lokhu ukuphazamisa ukulanda ziphinde zifinyelele emininingwaneni eyimfihlo."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Thumela izaziso zokulayisha"</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Ivumela uhlelo lokusebenza ukuthi ithumele izaziso yelana nokulayishwa okuqediwe. Izuhlelo lokusebenza ezinobungozi zingakusebenzisa lokhu ukudida ezinye izinsiz ezilayisha amafayel."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Igcina isikhala ekulondolozeni kwesikhashana kokulanda"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Ivumela uhlelo lokusebenza ukulanda amafayela okulondoloza kwesikhashana angakwazi ukususwa ngokuzenzakalelayo lapho imeneja yokulanda idinga esikhala esengeziwe."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"landa amafayela ngaphandle kwesaziso"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Ivumela uhlelo lokusebenza ukulanda amafayela ngomeneja wokulanda ngaphandle kokuba isaziso siboniswe umsebenzisi."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Finyelela kuko konke ukulanda kwesistimu"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Vumela uhlelo lokusebenza ukuthi libone liphinde liguqule konke okulandiwe okuqalwe uhlelo lwesistimu."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Akunasihloko&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Ukulayisha ungenisa kuqedile"</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Ukulayisha akuphumelelanga"</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Usayizi wokulanda udinga i-Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Kumisiwe okwesikhashana esizindeni"</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Ukulanda kukhulu kakhulu"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Kufanele usebenzise i-Wi-Fi ukuqedela lokhu <xliff:g id="SIZE">%1$s </xliff:g> kulayisha. \n\nThinta Touch <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> ukuqlisa lokhu  kulayisha esikhathini esizayo uxhuaniseke enethiwekhini ye-Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Linda ukulanda emva kwesikhathi?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Ukuqala lokhu kulanda <xliff:g id="SIZE">%1$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">%2$s</xliff:g> ukuqala lokhu kulayisha esikhathini esizayo uxhumaniseke enethiwekhini ye-Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Umugqa"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Khansela"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Qala manje"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> amafayela alandwayo</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> amafayela alandwayo</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> amafayela alindiwe</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> amafayela alindiwe</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"<xliff:g id="DURATION">%s</xliff:g> asele"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Ayikwazi ukuvula ifayela"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Okulandiwe"</string>
    <string name="download_queued" msgid="3383844741769045371">"Kusemugqeni"</string>
    <string name="download_running" msgid="774654178925442490">"kuyaqhubeka"</string>
    <string name="download_error" msgid="1857737890005386798">"Akuphumelelanga"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Iyaqhubeka, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
