<?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">"Телефон"</string>
    <!-- no translation found for unknown (6878797917991465859) -->
    <skip />
    <!-- no translation found for notification_missedCallTitle (7554385905572364535) -->
    <skip />
    <!-- no translation found for notification_missedCallsTitle (1361677948941502522) -->
    <skip />
    <!-- no translation found for notification_missedCallsMsg (4575787816055205600) -->
    <skip />
    <!-- no translation found for notification_missedCallTicker (504686252427747209) -->
    <skip />
    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Кайра чалуу"</string>
    <string name="notification_missedCall_message" msgid="3049928912736917988">"Билдирүү"</string>
    <string name="accessibility_call_muted" msgid="2776111226185342220">"Чалуу үнсүз тартипте."</string>
    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Динамик иштеп жатат."</string>
    <!-- no translation found for respond_via_sms_canned_response_1 (2461606462788380215) -->
    <skip />
    <!-- no translation found for respond_via_sms_canned_response_2 (4074450431532859214) -->
    <skip />
    <!-- no translation found for respond_via_sms_canned_response_3 (3496079065723960450) -->
    <skip />
    <!-- no translation found for respond_via_sms_canned_response_4 (1698989243040062190) -->
    <skip />
    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Тез жооптор"</string>
    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Тез жоопторду өзгөртүү"</string>
    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Тез жооп"</string>
    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Абалкы колдонмону өзгөртүү"</string>
    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<xliff:g id="PHONE_NUMBER">%s</xliff:g> номуруна билдирүү жөнөтүлдү."</string>
    <string name="phone_account_preferences_title" msgid="3932310998135189661">"Телефон каттоо эсебинин жеке жөндөөлөрү"</string>
    <string name="default_outgoing_account_title" msgid="8261079649574578970">"Демейки чыгуучу каттоо эсеби"</string>
    <string name="sim_call_manager_account" msgid="2559930293628077755">"Wi-Fi чалуу үчүн каттоо эсеби"</string>
    <string name="account_ask_every_time" msgid="944077828070287407">"Чалган сайын сурасын"</string>
    <string name="do_not_use_sim_call_manager" msgid="5519252524007323694">"Wi-Fi чалуу колдонулбасын"</string>
</resources>
