<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2019 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="enable_cmas_extreme_threat_alerts_title" msgid="8511466399220042295">"Extrémní výstrahy"</string>
    <string name="enable_cmas_severe_threat_alerts_title" msgid="2271741871998936543">"Závažné výstrahy"</string>
    <string name="enable_cmas_test_alerts_title" msgid="6022925848643811044">"Testovací výstrahy"</string>
    <string name="enable_exercise_test_alerts_title" msgid="411880452689537935">"Cvičné výstrahy"</string>
    <string name="cmas_presidential_level_alert" msgid="3429191761649839884">"Vládní výstraha"</string>
    <string name="cmas_extreme_alert" msgid="3474352706075109113">"Extrémní výstraha"</string>
    <!-- no translation found for cmas_extreme_immediate_observed_alert (4385654808873824465) -->
    <skip />
    <!-- no translation found for cmas_extreme_immediate_likely_alert (1667218798350595295) -->
    <skip />
    <string name="cmas_severe_alert" msgid="6989950459525380066">"Závažná výstraha"</string>
    <string name="cmas_required_monthly_test" msgid="1226904101913162471">"Testovací výstraha"</string>
    <string name="cmas_exercise_alert" msgid="4540370572086918020">"Cvičná výstraha"</string>
    <string name="app_label" msgid="3863159788297913185">"Výstražné zprávy"</string>
    <string name="sms_cb_settings" msgid="4187131985831792308">"Výstražné zprávy"</string>
    <string name="enable_alerts_master_toggle_summary" msgid="805446672915814777">"Dostávat oznámení o výstražných zprávách"</string>
    <string name="enable_alert_speech_summary" msgid="5021926525240750702">"Přečíst výstražné zprávy pomocí převodu textu na řeč"</string>
    <string name="cmas_opt_out_dialog_text" msgid="1972978578760513449">"Aktuálně jste přihlášeni k odběru výstražných zpráv. Chcete je odebírat i nadále?"</string>
    <string name="emergency_alert_settings_title_watches" msgid="5299419351642118203">"Výstražné zprávy"</string>
    <string name="notification_cb_settings_changed_text" msgid="6861845802821634203">"Klepnutím zobrazíte nastavení výstražných zpráv"</string>
</resources>
