<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2011 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="2102435118079140813">"Testy zpráv Cell Broadcast"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Odeslat běžné vysílání systému ETWS"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"Odeslat stornovací vysílání ETWS"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"Odeslat testovací vysílání ETWS"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Odeslat prezidentské upozornění CMAS"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Odeslat extrémní upozornění CMAS"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Odeslat závažné upozornění CMAS"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Odeslat upozornění AMBER CMAS"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Odeslat testovací (měsíční) upozornění CMAS"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Odeslat testovací vysílání GSM (7bitové)"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Odeslat testovací vysílání UMTS (7bitové)"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Odeslat vysílání GSM (7bitové) plné délky"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Odeslat vysílání UMTS (7bitové) plné délky"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Odeslat vícestránkové vysílání GSM (7bitové)"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Odeslat vícestránkové vysílání UMTS (7bitové)"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Odeslat vysílání GSM (7bitové) s jazykem"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"Odeslat GSM 7 bitů s jazykem v těle zprávy"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Odeslat UMTS (7bitové) s jazykem"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Odeslat testovací vysílání GSM (UCS-2)"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Odeslat testovací vysílání UMTS (UCS-2)"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Odeslat vícestránkové vysílání UMTS (UCS-2)"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Odeslat GSM UCS-2 s jazykem"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Odeslat UMTS (UCS-2) s jazykem"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Před odesláním prodleva 5 sekund"</string>
    <string name="message_id_label" msgid="4365322663037110887">"ID zprávy:"</string>
</resources>
