<?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">"Điện thoại"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Để thực hiện cuộc gọi, trước tiên, hãy kết nối điện thoại với ô tô qua Bluetooth."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"Không có kết nối Bluetooth."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Để gọi điện hoặc nhận cuộc gọi, hãy bật Bluetooth."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Để gọi điện hoặc nhận cuộc gọi, hãy ghép nối điện thoại với ô tô."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Kết nối với Bluetooth"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Khẩn cấp"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Cuộc gọi khẩn cấp"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"Người liên hệ này có thể đã bị xóa."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Không thể gọi số điện thoại này. Hãy kiểm tra rồi thử lại."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"Bạn chưa thể gọi điện thoại. Vui lòng thử lại sau."</string>
    <string name="decline_call" msgid="2505987200485272226">"Từ chối"</string>
    <string name="answer_call" msgid="3272474440561548115">"Trả lời"</string>
    <string name="call_back" msgid="5745638356098600872">"Gọi lại"</string>
    <string name="audio_route_vehicle" msgid="6250361588960528769">"Loa ô tô"</string>
    <string name="audio_route_phone_speaker" msgid="4608904003558187244">"Loa điện thoại"</string>
    <string name="audio_route_handset" msgid="9133081623895172144">"Điện thoại"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Quay số"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Mục yêu thích"</string>
    <string name="call_history_title" msgid="7997887846276371553">"Nhật ký cuộc gọi gần đây"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Danh bạ"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Bàn phím số"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Hôm nay"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Hôm qua"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Cũ hơn"</string>
    <string name="call_logs_empty" msgid="3084720078894119049">"Không có nhật ký cuộc gọi nào gần đây"</string>
    <string name="contact_list_empty" msgid="4225504548491888138">"Không có người liên hệ nào"</string>
    <string name="available_after_sync" msgid="33765918799197782">"Bạn sẽ thấy thông tin xuất hiện sau khi đồng bộ hóa. Hãy nhớ cho phép chia sẻ danh bạ trên điện thoại của bạn."</string>
    <string name="favorites_empty" msgid="5794510741132758130">"Không có mục yêu thích nào"</string>
    <string name="no_favorites_added" msgid="2359050103464783907">"Bạn chưa thêm bất kỳ mục yêu thích nào"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Thêm một mục liên hệ yêu thích"</string>
    <string name="search_title" msgid="5412680850141871664">"Tìm kiếm trong danh bạ"</string>
    <string name="search_hint" msgid="3099066132607042439">"Tìm kiếm trong danh bạ"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Nhiều"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Chọn một số điện thoại"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Chỉ một lần"</string>
    <string name="select_number_dialog_always_button" msgid="6862338683635863764">"Luôn bật"</string>
    <string name="primary_number_description" msgid="1211198148918329509">"<xliff:g id="LABEL">%1$s</xliff:g> , mặc định"</string>
    <string name="favorite_number_description" msgid="8175362259853807385">"Số điện thoại yêu thích -  <xliff:g id="LABEL">%1$s</xliff:g>"</string>
    <string name="local_favorite_number_description" msgid="3723823871011997275">"Số của điểm đến ưa thích -  <xliff:g id="LABEL">%1$s</xliff:g>"</string>
    <string name="phone_favorites" msgid="2257447553252980575">"Các số điện thoại yêu thích"</string>
    <string name="local_favorites" msgid="4954852813126882412">"Số của các điểm đến ưa thích"</string>
    <string name="no_phone_numbers" msgid="8738691115921148445">"Không có số điện thoại"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Thông báo khi có cuộc gọi đến"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Cuộc gọi đến"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Thông báo cuộc gọi nhỡ"</string>
    <plurals name="notification_missed_call" formatted="false" msgid="1018870358427938752">
      <item quantity="other">Cuộc gọi nhỡ (<xliff:g id="NUMBER">%1$d</xliff:g>) </item>
      <item quantity="one">Cuộc gọi nhỡ</item>
    </plurals>
    <string name="onhold_call_label" msgid="1937027519810985499">"Đang giữ máy"</string>
    <string name="setting_title" msgid="1296639422364732365">"Cài đặt"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Màn hình bắt đầu"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Thứ tự danh bạ"</string>
    <string name="pref_connected_phone_title" msgid="5472866963149472593">"Điện thoại đã kết nối"</string>
    <string name="pref_no_incoming_call_hun_title" msgid="2314257779205958332">"Quyền riêng tư"</string>
    <string name="pref_no_incoming_call_hun_summary" msgid="8833377984331845097">"Chỉ hiển thị thông báo về cuộc gọi theo nhóm"</string>
    <string name="pref_no_fullscreen_active_call_ui_title" msgid="5306041252780754725">"Cuộc gọi đang diễn ra"</string>
    <string name="pref_no_fullscreen_active_call_ui_summary" msgid="2316908551231937870">"Hiển thị cuộc gọi đang diễn ra trong khi trả lời"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Tên"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Họ"</string>
    <string name="audio_route_dialog_title" msgid="2904553846970171054">"Chuyển âm thanh cuộc gọi sang:"</string>
    <string name="audio_route_dialog_subtitle" msgid="8780526104805330121"></string>
</resources>
