<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2013 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="telecommAppLabel" product="default" msgid="3477737022166975496">"Telefon"</string>
    <string name="unknown" msgid="6878797917991465859">"Neznámý volající"</string>
    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Zmeškané hovory"</string>
    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>."</string>
    <string name="notification_missedCallTicker" msgid="504686252427747209">"Zmeškaný hovor od volajícího <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>."</string>
    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zavolat zpět"</string>
    <string name="notification_missedCall_message" msgid="3049928912736917988">"Zpráva"</string>
    <string name="accessibility_call_muted" msgid="2776111226185342220">"Hovor ztlumen."</string>
    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Reproduktor je zapnutý."</string>
    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Teď nemůžu telefonovat, o co jde?"</string>
    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Zavolám zpátky."</string>
    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zavolám později."</string>
    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nemůžu telefonovat, volejte jindy."</string>
    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Rychlé odpovědi"</string>
    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Upravit rychlé odpovědi"</string>
    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Rychlá odpověď"</string>
    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Resetovat výchozí aplikaci"</string>
    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Zpráva byla odeslána na číslo <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
    <string name="outgoing_call_not_allowed" msgid="1435394568102165287">"Vlastník zařízení povolil pouze tísňová volání."</string>
    <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Chcete-li uskutečnit hovor, zadejte platné telefonní číslo."</string>
    <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Hovor aktuálně nelze přidat."</string>
    <string name="no_vm_number" msgid="4164780423805688336">"Chybí číslo hlasové schránky"</string>
    <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM kartě není uloženo žádné číslo hlasové schránky."</string>
    <string name="add_vm_number_str" msgid="4676479471644687453">"Přidat číslo"</string>
</resources>
