<?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">"Afslut sessionen"</string>
    <string name="help" msgid="1290449694178547017">"Hjælp"</string>
    <string name="menu_back" msgid="7136697148453089659">"Tilbage"</string>
    <string name="service_name" msgid="6767598098497885828">"Tjenestens navn"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Der er ingen tilgængelig tjeneste"</string>
    <string name="button_ok" msgid="7914432227722142434">"OK"</string>
    <string name="button_cancel" msgid="137404731092374681">"Annuller"</string>
    <string name="button_yes" msgid="755426085739326674">"Ja"</string>
    <string name="button_no" msgid="564962410861983724">"Nej"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alfabeter"</string>
    <string name="digits" msgid="7391551783961486324">"Cifre (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Opkald i gang ..."</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Opkaldet konfigureres"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Programtilstand"</string>
    <string name="enable_app" msgid="1980493713217690903">"Aktiveret"</string>
    <string name="disable_app" msgid="2298201833946002357">"Deaktiveret"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM Toolkit"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Afspilningstone"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Vil du åbne kanalen?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Sender data"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Modtager data"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Kanalen er lukket"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JA"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NEJ"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Indsæt SIM-kort for at åbne SIM Toolkit."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Servicebeskeder på mobilen"</string>
</resources>
