<?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">"Kidhibiti Vipakuliwa"</string>
    <string name="storage_description" msgid="169690279447532621">"Vipakuliwa"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Fikia kidhibiti cha vipakuliwa."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Huruhusu programu kufikia kidhibiti vipakuliwa na kukitumia ili kupakua faili. Programu hasidi zinaweza kutumia hii ili kutatiza vipakuliwa na kufikia maelezo ya kibinafsi."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Hatua za kina zinazoweza kufanywa na kidhibiti vipakuliwa."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Huruhusu programu kufikia vitendaji mahiri vya kidhibiti vipakuliwa. Programu hasidi zinaweza kutumia hii ili kutatiza vipakuliwa na kufikia maelezo ya kibinafsi."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Tuma arifa za vipakuliwa."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Huruhusu programu kutuma notisi kuhusu vipakuliwa vilivyokamilika. Programu hasidi zinaweza kutumia hii kuchanganya programu zingine ambazo hupakua faili."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Weka nafasi katika akiba ya upakuaji"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Huruhusu programu kupakua faili hadi akiba ya vipakuliwa ambayo haiwezi kufutwa kiotomatiki wakati kidhibiti upakuaji kinahitaji nafasi zaidi."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"kupakua faili bila kutoa arifa"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Huruhusu programu kupakua faili kupitia kidhibiti vipakuliwa bila mtumiaji kuonyeshwa arifa yoyote."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Fikia vipakuliwa vyote vya mfumo"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Huruhusu programu kuona na kurekebisha vipakuliwa vyote vilivyoanzishwa na programu yoyote kwenye mfumo."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Haina Kichwa&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Upakuaji umekamilika"</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Kupakua hakukuwezekana."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Ukubwa wa kipakuzi uhitaji Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Imesitishwa katika usuli."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Kipakuzi ni kikubwa zaidi kwa mtandao wa mtoa huduma"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Lazima utumia Wi-Fi ili ukamilishe kipakuzi cha <xliff:g id="SIZE">%1$s </xliff:g>. \n\nGusa <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> ili kuanzisha upakuaji huu wakati utakapounganishwa tena kwenye mtandao wa Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Weka katika foleni ya kupakulia baadaye?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Kuanza kupakua kipakuzi hiki cha <xliff:g id="SIZE">%1$s </xliff:g> kunaweza kufupisha maisha ya betri yako na / au kusababisha matumizi makubwa ya muunganisho wa data wa simu yako ya mkononi, jambo ambalo linaweza kusababisha kutozwa na mtoa huduma wako wa simu ya mkononi kulingana na mpango wako wa data. \n \n Guza <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> ili kuanza kupakua wakati utakapokuwa umeunganishwa na mtandao wa Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Foleni"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Ghairi"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Anza sasa"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="other">Inapakua faili <xliff:g id="NUMBER">%d</xliff:g></item>
      <item quantity="one">Inapakua faili 1</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="other">Faili <xliff:g id="NUMBER">%d</xliff:g> zinasubiri</item>
      <item quantity="one">Faili 1 inasubiri</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"Zimesalia <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Imeshindwa kufungua faili"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Vipakuliwa"</string>
    <string name="download_queued" msgid="3383844741769045371">"Zilizowekwa kwenye foleni"</string>
    <string name="download_running" msgid="774654178925442490">"Unaendelea"</string>
    <string name="download_error" msgid="1857737890005386798">"Haijafanikiwa"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Inaendelea, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
