<?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ávce stahování"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Získat přístup ke správci stahování."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Umožňuje aplikaci získat přístup do správce stahování a použít jej ke stahování souborů. Škodlivé aplikace mohou toto oprávnění použít k přerušení stahování a získání přístupu k soukromým údajům."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Pokročilé funkce správce stahování."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Umožňuje aplikaci získat přístup k pokročilým funkcím správce stahování. Škodlivé aplikace mohou toto oprávnění použít k přerušení stahování a získání přístupu k soukromým údajům."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Odeslat oznámení o stahování."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Umožňuje aplikaci odesílat oznámení o dokončení stahování. Škodlivé aplikace mohou pomocí těchto oprávnění zmást jiné aplikace, které stahují soubory."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Zobrazit stahování – USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Zobrazení všech položek stažených na kartu SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Umožňuje aplikaci zobrazit všechny soubory stažené na kartu SD bez ohledu na aplikaci, pomocí které byly staženy."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezervovat místo v mezipaměti stahování"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Umožňuje aplikaci stahovat soubory do mezipaměti stahování, kterou nelze automaticky vymazat, pokud správce stahování potřebuje více místa."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"stahování souborů bez upozornění"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Umožňuje aplikaci stahovat soubory prostřednictvím správce stahování bez oznámení uživateli."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Přístup ke všem systémovým stahováním"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Umožňuje aplikaci zobrazit a upravovat všechna stahování zahájená libovolnou aplikací v systému."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez názvu&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Stahování dokončeno."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Stahování bylo neúspěšné."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Vzhledem k velikosti stahovaného souboru je vyžadováno připojení Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pozastaveno na pozadí."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Stahovaný soubor je pro síť operátora příliš velký"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"K dokončení tohoto stahování o velikosti <xliff:g id="SIZE">%s </xliff:g> je třeba připojení Wi-Fi. "\n\n"Chcete-li stahování spustit při příštím připojení k síti Wi-Fi, dotkněte se možnosti <xliff:g id="QUEUE_TEXT">%s </xliff:g>."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Zařadit do fronty pro pozdější stažení?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Stahování (<xliff:g id="SIZE">%s </xliff:g>) může zkrátit výdrž baterie nebo příliš zatížit mobilní připojení a přivodit poplatky dle datového tarifu."\n\n" Chcete-li stahování spustit při dalším připojení k Wi-Fi, dotkněte se možnosti <xliff:g id="QUEUE_TEXT">%s</xliff:g>."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Fronta"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Zrušit"</string>
    <string name="button_start_now" msgid="792123674007840864">"Spustit"</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">"Stahuje se 1 soubor"</item>
    <item quantity="other" msgid="9087228371320573153">"Stahované soubory: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 čekající soubor"</item>
    <item quantity="other" msgid="549229034166062887">"Čekající soubory: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> do stažení"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Soubor nelze otevřít"</string>
</resources>
