<?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">"Správca preberania"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Získať prístup k správcovi preberania."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Umožňuje aplikácii pristupovať k správcovi preberania a použiť ho na preberanie súborov. Škodlivé aplikácie to môžu využiť a narušiť preberanie alebo získať prístup k súkromným informáciám."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Rozšírené funkcie správcu preberania."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Umožňuje aplikácii pristupovať k rozšíreným funkciám správcu preberania. Škodlivé aplikácie to môžu využiť a narušiť preberanie alebo získať prístup k súkromným informáciám."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Odoslať upozornenie o prevzatí."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Umožňuje aplikácii odosielať upozornenia na dokončenie preberania. Škodlivé aplikácie môžu pomocou tohto nastavenia zmiasť iné aplikácie, ktoré preberajú súbory."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Zobr. preber. do ukl. priestoru USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Zobrazenie všetkých položiek prevzatých na kartu SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Povolí aplikácii zobraziť všetky súbory prevzaté na kartu SD bez ohľadu na aplikáciu, pomocou ktorej boli prevzaté."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezervovať miesto vo vyrovnáv. pamäti preberania"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Umožňuje aplikácii preberať súbory do vyrovnávacej pamäte preberania, ktorú nie je možné automaticky odstrániť, keď správca preberania potrebuje viac miesta."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"preberať súbory bez upozornenia"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Umožňuje aplikácii preberať súbory prostredníctvom správcu preberania bez toho, aby sa používateľovi zobrazilo upozornenie."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Prístup ku všetkým systémovým prevzatiam"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Umožňuje aplikácii zobraziť a upravovať všetky preberania spustené ľubovoľnou aplikáciou v systéme."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez názvu&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Preberanie dokončené."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Preberanie bolo neúspešné."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Vzhľadom na veľkosť preberaného súboru sa vyžaduje pripojenie Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pozastavené na pozadí."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Preberaný súbor je pre sieť operátora príliš veľký"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Na dokončenie preberania tohto súboru s veľkosťou <xliff:g id="SIZE">%s </xliff:g> je potrebné pripojenie Wi-Fi. "\n\n"Ak chcete spustiť preberanie pri ďalšom pripojení k sieti Wi-Fi, dotknite sa možnosti <xliff:g id="QUEUE_TEXT">%s </xliff:g>."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Zaradiť do zoznamu na neskoršie prevzatie?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Preberanie (<xliff:g id="SIZE">%s </xliff:g>) môže skrátiť výdrž batérie alebo príliš zaťažiť mobilné pripojenie a viesť k účtovaniu poplatkov podľa dát. programu."\n\n" Dotykom možnosti <xliff:g id="QUEUE_TEXT">%s</xliff:g> spustíte preberanie pri ďalšom pripojení k Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Zoznam"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Zrušiť"</string>
    <string name="button_start_now" msgid="792123674007840864">"Spustiť"</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">"Preberá sa 1 súbor"</item>
    <item quantity="other" msgid="9087228371320573153">"Počet preberaných súborov: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 čakajúci súbor"</item>
    <item quantity="other" msgid="549229034166062887">"Počet čakajúcich súborov: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Zostáva: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Súbor sa nepodarilo otvoriť"</string>
</resources>
