<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2020 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="summary_separator" msgid="6533720408587140819">" / "</string>
    <string name="auto_connect_disable" msgid="1078319396240632542">"Automatické připojení je vypnuté"</string>
    <string name="saved_network" msgid="6241977554502802914">"Uloženo uživatelem <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="wifi_no_internet_no_reconnect" msgid="3089980800841926268">"Nelze se automaticky připojit"</string>
    <string name="wifi_no_internet" msgid="4461212237521310895">"Nejste připojeni k internetu"</string>
    <string name="wifi_disabled_password_failure" msgid="3015007143699702403">"Problém s ověřením"</string>
    <string name="wifi_check_password_try_again" msgid="2643230209986217827">"Zkontrolujte heslo a zkuste to znovu"</string>
    <string name="wifi_disabled_network_failure" msgid="6506742207778007439">"Selhání konfigurace protokolu IP"</string>
    <string name="wifi_disabled_generic" msgid="8307050327779256414">"Vypnuto"</string>
    <string name="wifi_ap_unable_to_handle_new_sta" msgid="6552198761671428871">"Přístupový bod je dočasně zaplněn"</string>
    <string name="wifi_disconnected" msgid="3720926757662831062">"Odpojeno"</string>
    <string name="wifi_remembered" msgid="5126903736498678708">"Uloženo"</string>
    <string name="wifi_metered_label" msgid="1362621600006544014">"Měřená"</string>
    <string name="wifi_unmetered_label" msgid="499466875639448350">"Neměřená"</string>
    <string name="connected_via_app" msgid="1818040967936972127">"Připojeno přes <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="available_via_app" msgid="9110324040292242769">"Dostupné přes <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer" msgid="209764314005159012">"Automaticky připojeno přes <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer_default" msgid="3084818437004202462">"Automaticky připojeno přes poskytovatele hodnocení sítí"</string>
    <string name="wifi_limited_connection" msgid="3646701342701276239">"Omezené připojení"</string>
    <string name="private_dns_broken" msgid="2212227512243587416">"Nelze získat přístup k soukromému serveru DNS"</string>
    <string name="wifi_connected_no_internet" msgid="7273909077465731259">"Nejste připojeni k internetu"</string>
    <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Nízká kvalita"</string>
    <string name="wifi_security_none" msgid="6680263031386719053">"Žádné"</string>
    <string name="wifi_passpoint_expired" msgid="3257021415099577815">"Platnost vypršela"</string>
    <string name="tap_to_sign_up" msgid="2409214576606918295">"Klepnutím se zaregistrujete"</string>
    <string name="tap_to_renew_subscription_and_connect" msgid="375976298920840105">"Klepnutím obnovíte předplatné a připojíte se"</string>
    <string name="osu_opening_provider" msgid="5633521771769175139">"Spouštění aplikace <xliff:g id="PASSPOINTPROVIDER">%1$s</xliff:g>"</string>
    <string name="osu_connect_failed" msgid="8503501619299851793">"Nelze se připojit"</string>
    <string name="osu_completing_sign_up" msgid="7188493241442946231">"Dokončování registrace…"</string>
    <string name="osu_sign_up_failed" msgid="2725057866968590279">"Registraci se nepodařilo dokončit. Klepnutím opakujte akci."</string>
    <string name="osu_sign_up_complete" msgid="7013805426618985953">"Registrace byla dokončena. Připojování…"</string>
    <string name="imsi_protection_warning" msgid="5231726821588271569">"Tato síť dostane identifikátor SIM karty, pomocí kterého lze sledovat polohu zařízení. "<annotation id="url">"Další informace"</annotation></string>
    <string name="speed_label_very_slow" msgid="2401582671941367179">"Velmi pomalá"</string>
    <string name="speed_label_slow" msgid="8410385703344502127">"Pomalá"</string>
    <string name="speed_label_okay" msgid="3741857805086997968">"OK"</string>
    <string name="speed_label_medium" msgid="3175703848952862009">"Střední"</string>
    <string name="speed_label_fast" msgid="8344116097613544322">"Rychlá"</string>
    <string name="speed_label_very_fast" msgid="1595806641512447877">"Velmi rychlá"</string>
</resources>
