<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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_name" msgid="9095072584761066851">"Instalátor certifikátů"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Zvolit certifikát"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Extrahovat certifikát"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Extrahování..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Extrahovat z %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Zadejte název certifikátu"</string>
    <string name="credential_name" msgid="1974979771369744378">"Název certifikátu:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Chcete-li extrahovat certifikáty, zadejte heslo."</string>
    <string name="credential_info" msgid="2436768402308470397">"Balíček obsahuje:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certifikáty v repozitáři klíčů PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"klíč pro jednoho uživatele"</string>
    <string name="userkey_type" msgid="6214833257030657106">"Algoritmus:"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"certifikát pro jednoho uživatele"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"jeden certifikát CA"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d certifikátů CA"</string>
    <string name="password_error" msgid="2042471639556516356">"Zadejte správné heslo."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Zadejte heslo."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Zadejte název."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Zadejte název obsahující pouze písmena a čísla."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Certifikát nelze uložit. Úložiště pověření není aktivováno nebo není správně inicializováno."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Certifikát není nainstalován."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Nebyl nalezen žádný certifikát k instalaci."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Certifikát je neplatný."</string>
    <string name="action_missing_private_key" msgid="7543470057312920042">"K instalaci certifikátu je vyžadován soukromý klíč"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"K instalaci soukromého klíče je vyžadován certifikát"</string>
    <string name="cert_is_added" msgid="6996557598167000500">"Pověření <xliff:g id="CREDENTIAL">%s</xliff:g> bylo nainstalováno."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Instalace se nezdařila, protože je soubor certifikátu příliš velký."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Instalace se nezdařila, protože se soubor certifikátu nepodařilo najít."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Instalace se nezdařila, protože se soubor certifikátu nepodařilo přečíst."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Certifikáty může instalovat pouze majitel tohoto zařízení."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Použití pověření:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN a aplikace"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Poznámka: Vydavatel tohoto certifikátu může sledovat veškerou návštěvnost směřující do zařízení i z něj."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Profil Wi-Fi"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Podrobnosti pro %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Podrobnosti"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Instalovat"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Instalace"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Zrušit"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Zavřít"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Žádná"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Název: %1$s\nPlně kvalifikovaný název domény: %2$s\nRoamingová konsorcia: %3$s\nSféra: %4$s\nMetoda ověření: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Uživatelské jméno: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Klientský certifikát:\n%1$s\nKlíč: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Certifikát důvěry:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Identifikační údaje byly nainstalovány"</string>
    <string name="install_done" msgid="1522718684172097080">"Identifikační údaje uživatele <xliff:g id="NAME">%1$s</xliff:g> byly přidány k uloženým sítím Wi-Fi."</string>
    <string name="done_label" msgid="5597425930652904250">"HOTOVO"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Nainstalujte identifikační údaje sítí Wi-Fi, abyste se k sítím mohli připojovat jako uživatel <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Ve staženém soubory byly zjištěny problémy a nelze jej nainstalovat. Zkontrolujte, zda jste soubor stáhli ze správného zdroje."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Identifikační údaje k síti Wi-Fi nelze nainstalovat. Zkuste soubor stáhnout znovu."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Instalace byla zrušena"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Nelze nainstalovat"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Zapněte Wi-Fi a zkuste to znovu."</string>
</resources>
