<?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">"Allalaadimishaldur"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Juurdepääs allalaadimishaldurile."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"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="7103642833308809655">"Allalaadimishalduri täpsemad funktsioonid."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"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="945913803765675685">"Allalaadimisteatiste saatmine."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"USB allalaadimiste vaat."</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Vaadake kõiki allalaadimisi SD-kaardile"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Võimaldab rakendusel näha kõiki SD-kaardile salvestatud allalaadimisi sõltumata rakendusest, mis need alla laadis."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserveeri allalaadimiste vahemälus ruumi"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Võimaldab rakendusel laadida faile allalaadimise vahemällu, mida allalaadimishaldur ei saa ruumi vabastamiseks automaatselt kustutada."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"failide teatamata allalaadimine"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Võimaldab rakendusel allalaadimishalduri kaudu faile alla laadida kasutajale märguannet kuvamata."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Juurdepääs kõigile süsteemi allalaadimistele"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Võimaldab rakendusel vaadata ja muuta kõiki allalaadimisi, mille algatas süsteemis olev mis tahes rakendus."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Pealkirjata&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Allalaadimine on lõpetatud."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Allalaadimine ebaõnnestus."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Allalaad. on vaja WiFit."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Peatatud taustal."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Allalaadimine operaatori võrgu jaoks on liiga suur"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"<xliff:g id="SIZE">%s </xliff:g> suuruse allalaadimise jaoks tuleb kasutada WiFi-võrku."\n\n"Puudutage valikut <xliff:g id="QUEUE_TEXT">%s </xliff:g>, et alustada allalaadimisega järgmine kord, kui olete WiFi-võrguga ühenduses."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Kas lisada järjekorda hilisemaks allalaadimiseks?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"<xliff:g id="SIZE">%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">%s</xliff:g>, et laadida see alla siis, kui olete WiFi-võrgus."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Järjekord"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Tühista"</string>
    <string name="button_start_now" msgid="792123674007840864">"Alusta nüüd"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
    <!-- no translation found for notif_summary_active:one (8475775855911967027) -->
    <!-- no translation found for notif_summary_active:other (9087228371320573153) -->
    <!-- no translation found for notif_summary_waiting:one (5537481763963544278) -->
    <!-- no translation found for notif_summary_waiting:other (549229034166062887) -->
    <!-- no translation found for download_no_application_title (7935659741162801699) -->
    <skip />
</resources>
