<?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">"Ponsel"</string>
    <string name="no_hfp" msgid="7371139867234667691">"Untuk menyelesaikan panggilan telepon, terlebih dahulu hubungkan ponsel ke mobil melalui Bluetooth."</string>
    <string name="bluetooth_unavailable" msgid="5258854283739591569">"Bluetooth tidak tersedia."</string>
    <string name="bluetooth_disabled" msgid="1275246762067907843">"Untuk melakukan atau menerima panggilan telepon, aktifkan Bluetooth."</string>
    <string name="bluetooth_unpaired" msgid="1600552386483652892">"Untuk melakukan atau menerima panggilan telepon, sambungkan ponsel ke mobil."</string>
    <string name="connect_bluetooth_button_text" msgid="293188695227298042">"Hubungkan ke Bluetooth"</string>
    <string name="emergency_button_text" msgid="3467659545392931727">"Darurat"</string>
    <string name="emergency_call_description" msgid="6700161437750325693">"Panggilan darurat"</string>
    <string name="error_contact_deleted" msgid="6356539067659368396">"Kontak ini mungkin telah dihapus."</string>
    <string name="error_invalid_phone_number" msgid="5349049631580646136">"Tidak dapat memanggil nomor ini. Periksa dan coba lagi."</string>
    <string name="error_telephony_not_available" msgid="8715829862083386178">"Panggilan telepon tidak tersedia. Coba lagi nanti."</string>
    <string name="decline_call" msgid="2505987200485272226">"Tolak"</string>
    <string name="answer_call" msgid="3272474440561548115">"Jawab"</string>
    <string name="call_back" msgid="5745638356098600872">"Telepon balik"</string>
    <string name="audio_route_vehicle" msgid="6250361588960528769">"Speaker mobil"</string>
    <string name="audio_route_phone_speaker" msgid="4608904003558187244">"Speaker ponsel"</string>
    <string name="audio_route_handset" msgid="9133081623895172144">"Ponsel"</string>
    <string name="dial_a_number" msgid="7432322177412387160">"Panggil nomor"</string>
    <string name="favorites_title" msgid="4767723901530488145">"Favorit"</string>
    <string name="call_history_title" msgid="7997887846276371553">"Terbaru"</string>
    <string name="contacts_title" msgid="9201954388634537346">"Kontak"</string>
    <string name="dialpad_title" msgid="3746259645005208554">"Tombol nomor"</string>
    <string name="call_log_header_today" msgid="2069013936632793214">"Hari ini"</string>
    <string name="call_log_header_yesterday" msgid="4613686845163357847">"Kemarin"</string>
    <string name="call_log_header_older" msgid="3971634717537073179">"Lebih lama"</string>
    <string name="call_logs_empty" msgid="3084720078894119049">"Tidak ada yang terbaru"</string>
    <string name="contact_list_empty" msgid="4225504548491888138">"Tidak ada kontak"</string>
    <string name="available_after_sync" msgid="33765918799197782">"Tersedia setelah menyinkronkan. Pastikan Anda telah mengizinkan ponsel Anda untuk berbagi kontak."</string>
    <string name="favorites_empty" msgid="5794510741132758130">"Tidak ada favorit"</string>
    <string name="no_favorites_added" msgid="2359050103464783907">"Anda belum menambahkan favorit apa pun"</string>
    <string name="add_favorite_button" msgid="7914955940249767808">"Tambahkan favorit"</string>
    <string name="search_title" msgid="5412680850141871664">"Telusuri kontak"</string>
    <string name="search_hint" msgid="3099066132607042439">"Telusuri kontak"</string>
    <string name="type_multiple" msgid="3402949522797441236">"Beberapa"</string>
    <string name="select_number_dialog_title" msgid="5770700626013782205">"Pilih nomor telepon"</string>
    <string name="select_number_dialog_just_once_button" msgid="1814381354393374660">"Sekali ini saja"</string>
    <string name="select_number_dialog_always_button" msgid="6862338683635863764">"Selalu"</string>
    <string name="primary_number_description" msgid="1211198148918329509">"<xliff:g id="LABEL">%1$s</xliff:g> , default"</string>
    <string name="favorite_number_description" msgid="8175362259853807385">"Favorit -  <xliff:g id="LABEL">%1$s</xliff:g>"</string>
    <string name="local_favorite_number_description" msgid="3723823871011997275">"Favorit lokal -  <xliff:g id="LABEL">%1$s</xliff:g>"</string>
    <string name="phone_favorites" msgid="2257447553252980575">"Favorit"</string>
    <string name="local_favorites" msgid="4954852813126882412">"Favorit lokal"</string>
    <string name="no_phone_numbers" msgid="8738691115921148445">"Nomor telepon tidak ada"</string>
    <string name="in_call_notification_channel_name" msgid="1978093630512401778">"Notifikasi panggilan masuk"</string>
    <string name="notification_incoming_call" msgid="1722904631804432389">"Panggilan masuk"</string>
    <string name="missed_call_notification_channel_name" msgid="1135686963409691772">"Notifikasi panggilan tak terjawab"</string>
    <plurals name="notification_missed_call" formatted="false" msgid="1018870358427938752">
      <item quantity="other">Panggilan tak terjawab(<xliff:g id="NUMBER">%1$d</xliff:g>) </item>
      <item quantity="one">Panggilan tak terjawab</item>
    </plurals>
    <string name="onhold_call_label" msgid="1937027519810985499">"Harap Tunggu"</string>
    <string name="setting_title" msgid="1296639422364732365">"Setelan"</string>
    <string name="pref_start_page_title" msgid="1953465507368478503">"Layar awal"</string>
    <string name="sort_order_title" msgid="975104366728292702">"Urutan kontak"</string>
    <string name="pref_connected_phone_title" msgid="5472866963149472593">"Ponsel yang Terhubung"</string>
    <string name="pref_no_incoming_call_hun_title" msgid="2314257779205958332">"Privasi"</string>
    <string name="pref_no_incoming_call_hun_summary" msgid="8833377984331845097">"Hanya tampilkan notifikasi panggilan di kelompok"</string>
    <string name="pref_no_fullscreen_active_call_ui_title" msgid="5306041252780754725">"Panggilan Aktif"</string>
    <string name="pref_no_fullscreen_active_call_ui_summary" msgid="2316908551231937870">"Tampilkan tampilan panggilan aktif saat menjawab panggilan"</string>
    <string name="given_name_first_title" msgid="8072187841056104968">"Nama depan"</string>
    <string name="family_name_first_title" msgid="7721976826282427987">"Nama belakang"</string>
    <string name="audio_route_dialog_title" msgid="2904553846970171054">"Bunyikan audio panggilan telepon ke:"</string>
    <string name="audio_route_dialog_subtitle" msgid="8780526104805330121"></string>
</resources>
