<?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">"Seansi lõpp"</string>
    <string name="help" msgid="1290449694178547017">"Abi"</string>
    <string name="menu_back" msgid="7136697148453089659">"Tagasi"</string>
    <string name="service_name" msgid="6767598098497885828">"Teenuse nimi"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Teenused pole kättesaadavad"</string>
    <string name="button_ok" msgid="7914432227722142434">"OK"</string>
    <string name="button_cancel" msgid="137404731092374681">"Tühista"</string>
    <string name="button_yes" msgid="755426085739326674">"Jah"</string>
    <string name="button_no" msgid="564962410861983724">"Ei"</string>
    <string name="alphabet" msgid="9068318253752197929">"Tähestikud"</string>
    <string name="digits" msgid="7391551783961486324">"Numbrid (0–9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Kõne on pooleli ..."</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Kõnet seadistatakse"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Rakenduse olek"</string>
    <string name="enable_app" msgid="1980493713217690903">"Lubatud"</string>
    <string name="disable_app" msgid="2298201833946002357">"Keelatud"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM-kaardi tööriistakomplekt"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Tooni esitamine"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Kas avada kanal?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Andmete saatmine"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Andmete vastuvõtmine"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Kanal suletud"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JAH"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"EI"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"SIM-kaardi tööriistakomplekti käivitamiseks sisestage SIM-kaart."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Mobiilsideteenuse sõnumid"</string>
</resources>
