<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2010 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="4847371117203587513">"Stahování"</string>
    <string name="download_title_sorted_by_date" msgid="6033509257480233878">"Stahování – Řazeno podle data"</string>
    <string name="download_title_sorted_by_size" msgid="2575551670173644253">"Stahování – Řazeno podle velikosti"</string>
    <string name="no_downloads" msgid="1654764193290918538">"Žádná stahování"</string>
    <string name="missing_title" msgid="3827247802608803753">"&lt;Neznámé&gt;"</string>
    <string name="button_sort_by_size" msgid="7952187121189086395">"Řadit podle velikosti"</string>
    <string name="button_sort_by_date" msgid="2064919145709585942">"Řadit podle data"</string>
    <string name="download_queued" msgid="4128038702528588781">"Ve frontě"</string>
    <string name="download_running" msgid="2046492059586594352">"Probíhá"</string>
    <string name="download_success" msgid="3895973294927323747">"Dokončeno"</string>
    <string name="download_error" msgid="6652902885480887230">"Neúspěšné"</string>
    <string name="dialog_title_not_available" msgid="7793272183758002416">"Stažení se nezdařilo."</string>
    <string name="dialog_failed_body" msgid="4538779125597383173">"Chcete tento soubor zkusit stáhnout později, nebo jej chcete odstranit z fronty?"</string>
    <string name="dialog_title_queued_body" msgid="7481231558376227012">"Soubor ve frontě"</string>
    <string name="dialog_queued_body" msgid="2374398802707010234">"Tento soubor je zařazen do fronty k budoucímu stažení, a není tedy zatím k dispozici."</string>
    <string name="dialog_file_missing_body" msgid="7896653198405160564">"Stažený soubor nelze nalézt."</string>
    <string name="dialog_insufficient_space_on_external" msgid="1847671628253287114">"Stahování nelze dokončit. V externím úložišti není dostatek místa."</string>
    <string name="dialog_insufficient_space_on_cache" msgid="703074452633529558">"Stahování nelze dokončit. V interním úložišti pro stahování není dostatek místa."</string>
    <string name="dialog_cannot_resume" msgid="3101433441301206866">"Stahování bylo přerušeno a nelze v něm pokračovat."</string>
    <string name="dialog_file_already_exists" msgid="6849168874901909994">"Nelze stáhnout. Cílový soubor již existuje."</string>
    <string name="dialog_media_not_found" msgid="7376030905821161865">"Nelze stáhnout. Externí médium není k dispozici."</string>
    <string name="download_no_application_title" msgid="1209223807604231431">"Soubor nelze otevřít"</string>
    <string name="remove_download" msgid="244394809285977300">"Odebrat"</string>
    <string name="delete_download" msgid="1861638125603383676">"Smazat"</string>
    <string name="keep_queued_download" msgid="6905870466259272973">"Zachovat"</string>
    <string name="cancel_running_download" msgid="8586888328847044473">"Zrušit"</string>
    <string name="retry_download" msgid="6957856437473044831">"Zkusit znovu"</string>
    <string name="start_now_download" msgid="1518778561803897734">"Spustit"</string>
    <string name="deselect_all" msgid="4673983454506880405">"Zrušit celý výběr"</string>
    <string name="select_all" msgid="7469093306474000460">"Vybrat vše"</string>
    <string name="selected_count" msgid="5876842902167894010">"Vybráno: <xliff:g id="NUMBER">%1$d</xliff:g> z <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
    <string name="download_share_dialog" msgid="5212760257251501969">"Sdílet pomocí"</string>
</resources>
