<?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="storage_description" msgid="7982444311558023664">"Stažené soubory"</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_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 oznámení"</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">%1$s </xliff:g> je třeba připojení Wi-Fi. \n\nChcete-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">%2$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">%1$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">%2$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>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="few">Stahují se <xliff:g id="NUMBER">%d</xliff:g> soubory</item>
      <item quantity="many">Stahuje se <xliff:g id="NUMBER">%d</xliff:g> souboru</item>
      <item quantity="other">Stahuje se <xliff:g id="NUMBER">%d</xliff:g> souborů</item>
      <item quantity="one">Stahuje se 1 soubor</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="few"><xliff:g id="NUMBER">%d</xliff:g> čekající soubory</item>
      <item quantity="many"><xliff:g id="NUMBER">%d</xliff:g> čekajícího souboru</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> čekajících souborů</item>
      <item quantity="one">1 čekající soubor</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>
    <string name="root_downloads" msgid="4098414876292351487">"Stahování"</string>
    <string name="download_queued" msgid="3302638231377947451">"Ve frontě"</string>
    <string name="download_running" msgid="3925050393361158266">"Probíhá"</string>
    <string name="download_error" msgid="5144180777324573236">"Neúspěšné"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Probíhá, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
