<?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">"Allalaadimishaldur"</string>
    <string name="storage_description" msgid="169690279447532621">"Allalaadimised"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Juurdepääs allalaadimishaldurile."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Võimaldab rakendusel pääseda allalaadimishalduri juurde ja selle abil faile alla laadida. Pahatahtlikud rakendused saavad selle abil allalaadimisi takistada ja privaatsete andmete juurde pääseda."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Allalaadimishalduri täpsemad funktsioonid."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Võimaldab rakendusel pääseda allalaadimishalduri täpsemate funktsioonide juurde. Pahatahtlikud rakendused võivad selle abil allalaadimisi takistada ja privaatsete andmete juurde pääseda."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Allalaadimisteatiste saatmine."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Võimaldab rakendusel saata märguandeid lõpulejõudnud allalaadimiste kohta. Pahatahtlikud rakendused võivad selle abil häirida teisi rakendusi, mis faile alla laadivad."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Reserveeri allalaadimiste vahemälus ruumi"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Võimaldab rakendusel laadida faile allalaadimise vahemällu, mida allalaadimishaldur ei saa ruumi vabastamiseks automaatselt kustutada."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"failide teatamata allalaadimine"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Võimaldab rakendusel allalaadimishalduri kaudu faile alla laadida kasutajale märguannet kuvamata."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Juurdepääs kõigile süsteemi allalaadimistele"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Võimaldab rakendusel vaadata ja muuta kõiki allalaadimisi, mille algatas süsteemis olev mis tahes rakendus."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Pealkirjata&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Allalaadimine on lõpetatud."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Allalaadimine ebaõnnestus."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Allalaad. on vaja WiFit."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Peatatud taustal."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Allalaadimine operaatori võrgu jaoks on liiga suur"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"<xliff:g id="SIZE">%1$s </xliff:g> suuruse allalaadimise jaoks tuleb kasutada WiFi-võrku.\n\nPuudutage valikut <xliff:g id="QUEUE_TEXT">%2$s </xliff:g>, et alustada allalaadimisega järgmine kord, kui olete WiFi-võrguga ühenduses."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Kas lisada järjekorda hilisemaks allalaadimiseks?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"<xliff:g id="SIZE">%1$s </xliff:g> allalaad. võib aku tööiga lüh. ja/või mob. andmemahtu koormata, mistõttu võib mob.operaator teilt sõltuvalt andmeplaanist tasu võtta.\n\n Puud. valikut <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>, et laadida see alla siis, kui olete WiFi-võrgus."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Järjekord"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Tühista"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Alusta nüüd"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> faili allalaadimine</item>
      <item quantity="one">1 faili allalaadimine</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> faili on ootel</item>
      <item quantity="one">1 fail on ootel</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"Jäänud: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Faili ei saa avada"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Allalaadimised"</string>
    <string name="download_queued" msgid="3383844741769045371">"Järjekorras"</string>
    <string name="download_running" msgid="774654178925442490">"Töötlemisel"</string>
    <string name="download_error" msgid="1857737890005386798">"Ebaõnnestus"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Pooleli, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
