<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="app_name" msgid="3369897473091780760">"SIM Toolkit"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Akhiri sesi"</string>
    <string name="help" msgid="1290449694178547017">"Bantuan"</string>
    <string name="menu_back" msgid="7136697148453089659">"Kembali"</string>
    <string name="service_name" msgid="6767598098497885828">"Nama layanan"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Layanan tidak tersedia"</string>
    <string name="button_ok" msgid="7914432227722142434">"Oke"</string>
    <string name="button_cancel" msgid="137404731092374681">"Batal"</string>
    <string name="button_yes" msgid="755426085739326674">"Ya"</string>
    <string name="button_no" msgid="564962410861983724">"Tidak"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alfabet"</string>
    <string name="digits" msgid="7391551783961486324">"Digit (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Panggilan sedang berlangsung..."</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Panggilan yang sedang disiapkan"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Status aplikasi"</string>
    <string name="enable_app" msgid="1980493713217690903">"Diaktifkan"</string>
    <string name="disable_app" msgid="2298201833946002357">"Nonaktif"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM ToolKit"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Memutar Nada"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Buka Saluran?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Mengirim Data"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Menerima Data"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Saluran Ditutup"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"YA"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"TIDAK"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Masukkan SIM untuk meluncurkan Perangkat SIM."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Pesan layanan seluler"</string>
</resources>
