<?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">"Telepon"</string>
    <string name="unknown" msgid="6878797917991465859">"Tidak diketahui"</string>
    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Panggilan tak terjawab"</string>
    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Panggilan tak terjawab"</string>
    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> panggilan tak terjawab"</string>
    <string name="notification_missedCallTicker" msgid="504686252427747209">"Panggilan tak terjawab dari <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Hubungi kembali"</string>
    <string name="notification_missedCall_message" msgid="3049928912736917988">"Pesan"</string>
    <string name="accessibility_call_muted" msgid="2776111226185342220">"Panggilan disenyapkan."</string>
    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Pengeras suara ponsel diaktifkan."</string>
    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Tak bisa bicara sekarang. Ada apa?"</string>
    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Saya segera telepon balik."</string>
    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nanti saya telepon balik."</string>
    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Tak bisa bicara skrg. Tlp lg nanti?"</string>
    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Tanggapan cepat"</string>
    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Edit tanggapan cepat"</string>
    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Tanggapan cepat"</string>
    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Setel ulang aplikasi default"</string>
    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Pesan dikirim ke <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
    <string name="phone_account_preferences_title" msgid="5042332049625236956">"Setelan akun ponsel"</string>
    <string name="default_outgoing_account_title" msgid="8261079649574578970">"Akun keluar default"</string>
    <string name="sim_call_manager_account" msgid="2559930293628077755">"Akun panggilan Wi-Fi"</string>
    <string name="account_ask_every_time" msgid="944077828070287407">"Tanyakan setiap kali"</string>
    <string name="do_not_use_sim_call_manager" msgid="5519252524007323694">"Jangan gunakan panggilan Wi-Fi"</string>
    <string name="outgoing_call_not_allowed" msgid="1434784869685645427">"Pengguna ini tidak diizinkan untuk membuat panggilan telepon non-darurat"</string>
</resources>
