<?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>
    <!-- Default Application label used on home screen with an icon -->
    <string name="app_name">SIM Toolkit</string>
    <!-- Menu button option for ending current SIM session -->
    <string name="menu_end_session">End session</string>
    <!-- Menu button option for requesting additional help information -->
    <string name="help">Help</string>
    <!-- Menu button option to navigate back to the previous screen -->
    <string name="menu_back">Back</string>
    <!-- Settings entry which describes the current SIM Toolkit service on the device -->
    <string name="service_name">Service name</string>
    <!-- Default description for service_name when no STK service is available -->
    <string name="stk_no_service">No service available</string>
    <!-- OK button used to confirm a message dialog -->
    <string name="button_ok">OK</string>
    <!-- Cancel button used to dismiss a message dialog and terminate the current SIM session-->
    <string name="button_cancel">Cancel</string>
    <!-- Yes button, used on a Yes/No confirmation screen -->
    <string name="button_yes">Yes</string>
    <!-- No button, used on a Yes/No confirmation screen -->
    <string name="button_no">No</string>
    <!-- Description for the type of text allowed in a form: alphanumeric or digits only -->
    <string name="alphabet">Alphabets</string>
    <!-- Type of alphabet text allowed in a form: 0-9, *, #, + characters only -->
    <string name="digits">Digits (0-9, *, #, +)</string>
    <!-- Default transition message when launching a call -->
    <string name="default_call_setup_msg">Call in progress\u2026</string>

    <string name="stk_app_state">Application state</string>
    <string name="enable_app">Enabled</string>
    <string name="disable_app">Disabled</string>

    <!-- Title text used for system dialog from STK app -->
    <string name="stk_dialog_title">SIM ToolKit</string>
    <!-- Default message when no alpha in OPEN_CHANNEL -->
    <string name="default_open_channel_msg">Open Channel?</string>
    <!-- Default message when no alpha in SEND_DATA -->
    <string name="default_send_data_msg">Sending Data</string>
    <!-- Default message when no alpha in RECEIVE_DATA -->
    <string name="default_receive_data_msg">Receiving Data</string>
    <!-- Default message when no alpha in CLOSE_CHANNEL-->
    <string name="default_close_channel_msg">Channel Closed</string>
    <!-- Button texts used in STK dialog -->
    <string name="stk_dialog_accept">YES</string>
    <string name="stk_dialog_reject">NO</string>
</resources>
