<?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-карту, щоб запустити SIM Toolkit."</string>
</resources>
