<?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-verktøy"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Avslutt økt"</string>
    <string name="help" msgid="1290449694178547017">"Hjelp"</string>
    <string name="menu_back" msgid="7136697148453089659">"Tilbake"</string>
    <string name="service_name" msgid="6767598098497885828">"Tjenestenavn"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Ingen tjenester er tilgjengelig"</string>
    <string name="button_ok" msgid="7914432227722142434">"OK"</string>
    <string name="button_cancel" msgid="137404731092374681">"Avbryt"</string>
    <string name="button_yes" msgid="755426085739326674">"Ja"</string>
    <string name="button_no" msgid="564962410861983724">"Nei"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alfabeter"</string>
    <string name="digits" msgid="7391551783961486324">"Siffer (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Anrop underveis…"</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Samtalen settes opp"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Applikasjonstilstand"</string>
    <string name="enable_app" msgid="1980493713217690903">"Aktivert"</string>
    <string name="disable_app" msgid="2298201833946002357">"Slått av"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"Verktøykasse for SIM-kort"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Spiller av Tone"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Åpen kanal?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Sending av data"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Mottak av data"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Kanalen er stengt"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JA"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NO"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Sett inn SIM-kortet for å starte SIM Toolkit."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Mobiltjenestemeldinger"</string>
</resources>
