<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2015 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="phone_app_name" msgid="238824437273544459">"Утас"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Дуудлагаа гүйцээхийн тулд эхлээд утсаа Bluetooth-р дамжуулан машинтайгаа холбоно уу."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"Bluetooth боломжгүй байна."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Дуудлага хийх эсвэл хүлээн авахын тулд Bluetooth-г асаана уу."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Дуудлага хийх эсвэл хүлээн авахын тулд утсаа машинтай хослуулна уу."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Bluetooth-тэй холбогдох"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Яаралтай тусламж"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Яаралтай дуудлага"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"Энэ харилцагчийг устгасан байж болзошгүй."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Энэ дугаар руу залгах боломжгүй байна. Шалгаад дахин оролдоно уу."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"Утасны дуудлага хийх боломжгүй байна. Дараа дахин оролдоно уу."</string>
    <string name="decline_call" msgid="2505987200485272226">"Татгалзах"</string>
    <string name="answer_call" msgid="3272474440561548115">"Хариулах"</string>
    <string name="call_back" msgid="5745638356098600872">"Буцааж залгах"</string>
    <string name="audio_route_vehicle" msgid="6274519162997743620">"Тээврийн хэрэгслийн bluetooth"</string>
    <string name="audio_route_phone_speaker" msgid="407520293892557697">"Чанга яригчтай утас"</string>
    <string name="audio_route_handset" msgid="1100259514278439355">"Чихэвч"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Дугаар руу залгах"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Дуртай"</string>
    <string name="call_history_title" msgid="1495905524218923242">"Дуудлагын түүх"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Харилцагч"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Дугаар цуглуулах самбар"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Өнөөдөр"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Өчигдөр"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Хуучин"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Дуртай харилцагч нэмэх"</string>
    <string name="favorites_empty" msgid="6712416359691979975">"Та ямар нэгэн дуртай зүйл хараахан нэмээгүй байна"</string>
    <string name="search_title" msgid="5412680850141871664">"Харилцагч хайх"</string>
    <string name="search_hint" msgid="3099066132607042439">"Харилцагч хайх"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Олон"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Утасны дугаар сонгоно уу"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Нэг удаа"</string>
    <string name="select_number_dialog_always_button" msgid="6862338683635863764">"Байнга"</string>
    <string name="primary_number_description" msgid="7428950659304219592">"<xliff:g id="LABEL">%1$s</xliff:g>  - Өгөгдмөл"</string>
    <string name="favorite_number_description" msgid="6490014728613395653">"<xliff:g id="LABEL">%1$s</xliff:g>  - Дуртай"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Ирсэн дуудлагын мэдэгдэл"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Ирсэн дуудлага"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Аваагүй дуудлагын мэдэгдэл"</string>
    <string name="notification_missed_call" msgid="7127823385811396529">"Аваагүй дуудлага"</string>
    <string name="onhold_call_label" msgid="1937027519810985499">"Хүлээлгэнд байгаа"</string>
    <string name="setting_title" msgid="1296639422364732365">"Тохиргоо"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Дэлгэцийг эхлүүлэх"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Харилцагчийн захиалга"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Нэр"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Овог"</string>
</resources>
