<?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="8396461461738434341">"SIM Toolkit"</string>
    <string name="menu_end_session" msgid="7368541737750982217">"Суултыг дуусгах"</string>
    <string name="help" msgid="9209980881219397319">"Тусламж"</string>
    <string name="menu_back" msgid="301227740977453364">"Буцах"</string>
    <string name="service_name" msgid="6860303747999592491">"Үйлчилгээний нэр"</string>
    <string name="stk_no_service" msgid="5427773116839809131">"Ашиглах боломжтой үйлчилгээ байхгүй"</string>
    <string name="button_ok" msgid="5760722312558549555">"OK"</string>
    <string name="button_cancel" msgid="1997847915560800261">"Цуцлах"</string>
    <string name="button_yes" msgid="624420260648337203">"Тийм"</string>
    <string name="button_no" msgid="1824959157582605627">"Үгүй"</string>
    <string name="alphabet" msgid="1583185545938805861">"Цагаан толгой"</string>
    <string name="digits" msgid="1746796679021682388">"Цифрүүд (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="7960194995759849940">"Дуудлага хийгдэж байна..."</string>
    <string name="default_setup_call_msg" msgid="6126904475461162162">"Дуудлага хийхийг тохируулж байна"</string>
    <string name="stk_app_state" msgid="18582277302584082">"Аппликешны байдал"</string>
    <string name="enable_app" msgid="3701224550936728203">"Идэвхжүүлсэн"</string>
    <string name="disable_app" msgid="6725081975611415214">"Идэвхгүйжүүлсэн"</string>
    <string name="stk_dialog_title" msgid="6954825385456886726">"SIM ToolKit"</string>
    <string name="default_open_channel_msg" msgid="2216070254100295924">"Сувгийг нээх үү?"</string>
    <string name="default_send_data_msg" msgid="6011219698689931272">"Дата илгээж байна"</string>
    <string name="default_receive_data_msg" msgid="618096941772010682">"Дата хүлээн авч байна"</string>
    <string name="default_close_channel_msg" msgid="765364262263839824">"Суваг хаагдсан"</string>
    <string name="stk_dialog_accept" msgid="8498901537508923727">"ТИЙМ"</string>
    <string name="stk_dialog_reject" msgid="921848059485746796">"ҮГҮЙ"</string>
    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SIM Toolkit-ийг ажиллуулахын тулд  SIM-ээ оруулах уу."</string>
</resources>
